Pod Point

EVSE manufacturer

  1. -

    Senior Embedded Engineer

    • Designing, implementing, and testing new features for Pod Point's EV charger
    • Working across different hardware revisions (TI C2000 / STM32 / ESP32)
    • Writing low level code to interface with hardware directly
    • Writing high level code to communicate with Pod Point management servers. Worked on designing and implementing the migration from a proprietary protocol to OCPP (Websockets / mTLS)
    • Introducing cloud based automated reproducible builds for firmware (Github Actions)
    • Introducing Unit Testing to firmware repositories
    • Bringing up a Yocto based Linux distribution on iMX6ULL based hardware
    • Configuring system services to set up required interfaces and software
    • Design and implement device specific apps in Rust that communicate with the EV Charging software (EVerest via MQTT)
    • Work with Dev Ops teams to set up automated cloud builds and custom certificate bundles
    • Develop a novel way to flash a bmap sparse image via TFTP
    • Implemented cmocka or pytest for all active projects in the Hardware team
    • Set up automated testing in Github actions
    • Set up automated builds for STM32 and ESP32 projects
    • Designed and implemented the migration from a proprietary HTTP REST API to using a industry standard protocol over Websockets (OCPP)
    • Implement certificate management and mTLS connection using lwIP and mbedTLS on an ESP32
    • General embedded development to add features and maintain existing firmware on STM32/ESP32
  2. -

    Embedded Engineer

Sam Kent LTD

Contractor working on various projects

  1. -

    Microbit Education Foundation

    • Various contracts with the foundation working on software and hardware for the BBC micro:bit and it's ecosystem.
    • Supporting the development of the DAL/CODAL Hardware Abstraction Library for the Microbit Educational Foundation (nRF51/nRF52)
    • Designing and implementing a custom BLE bootloader for the micro:bit (nRF51/nRF52)
    • Developing and testing hardware for micro:bit v1.5 and micro:bit v2
    • Speaker / Microphone analysis
    • Hardware verification of new product
    • Driver development for various peripherals
    • Implemented a compatibility layer for micro:bit V2 to interface with existing mbed libraries
    • Created an open source reference design for the micro:bit v2 in KiCAD
    • Adding WebUSB support to the micro:bit’s Python Editor
    • Examples of work can be found on GitHub: https://github.com/microbit-sam
  2. -

    Octotech

    • Linux
    • STM32
    • ESP32
  3. -

    Remidi Pro

    • Developing firmware for a USB MIDI keyboard (Extra Deluxe Mfg. “The Sixty-One”)
    • Working with a company based in Austin, Texas implementing drivers for the controls, a composite USB HID & MIDI class, and debugging their hardware over video calls
  4. -

    FFT

    • Developing bespoke USB MIDI (STM32 based) device
    • Designing and manufacturing a modular set of I2C daughter-boards that can be reused in other devices
    • Developed a WebMIDI interface to configure the controller
  5. -

    OnlineMortgages.co.uk

    • Developed an online mortgage application system for a mortgage broker (Laravel/MySQL)
  6. -

    SplaatMedia

    • Building a photo management system for an event photographer (CakePHP/MySQL)
  7. -

    Boss Controls LTD

    • Developing an online engineer reporting system (React/PHP/MySQL), plus companion mobile apps (React Native) for a company specialising in Building Management Systems
  8. -

    Other short term contract work

    • Debugging and fixing amplifiers, guitar pedals, mixers, any other electronic hardware
    • Web development, server management, technical assistance

ARM

14 months working at Arm in Cambridge between the undergraduate and MEng year of my degree

  1. -

    Demonstrations Engineer (Intern)

    • Building demonstrations using ARM technology
    • Discussing features and implementations of demos at events/trade shows such as ARM Tech Con and Embedded World
    • Developing software to run on embedded systems
    • Designing and building embedded system projects