Contact Info
- Email:
- [email protected]
- GitHub:
- Jack-Punter
- LinkedIn:
- linkedin.com/in/jack-punter-b41776183
About Me
Work Experience
BladeBUG: Robotics Software Engineer (September 2023 - Present)
- Robotics Platform Upgrade: Leading the design and implementation of the next-generation software stack for the robot based on ROS 2. This involved redesigning the software architecture based on known limitations of the ROS 1 codebase and changes to fundemental ROS systems such as ros2 control.
- Robotics Software Development: Quickly learning and taking ownership of a robotic software stack built on ROS Noetic for a hexapod wind turbine maintenance robot. This involved maintenance and development covering everything from hardware interfacing code to motion planning and a user interface. The stack is written in a C++ and Python. Development is focused on improving the reliability and robustness of the robot, and adding mission-critical functionality for customer projects.
- Embedded System Design: Designing and protoyping an embedded system for an upgraded robot architecture using an STM32 microcontroller and communication protocols such as I2C, CAN and SPI.
- Point Cloud Processing: Developing an optimised point cloud filtering algorithm to remove the robot from depth camera point clouds. This included the development of debugging visuals of dynamic collision geometries.
- Controller Architecture Design: Developing the robot's controller architecture to reduce the complexity of the software stack and improve robot reliability. This involved redesigning key control loops so that they operate asynchronously in order to reuse error recovery logic between different operating modes.
Automata: Embedded Firmware Engineer (July 2022 - August 2023)
- Embedded Development: Developing an embedded framework for code/interface reuse between multiple platforms and OS targets as part of a small team of two senior and two recent graduate engineers. Targets ranged from bare-metal Arm microcontrollers to real-time Linux devices.
- PCB Development: Designing PCBs using Altium Designer involving both voltage regulation and signal filtering.
- Developer Tooling: Developing tools to aid in the process of training robots, such as jogging utilties (moving robots with a keyboard) and system visualisation, enabling the development of customer workflows.
Arm Ltd.: Software Engineering Part Time Undergraduate (July 2021 - March 2022)
- Simulation Software: Developing a model for an I2C controller device in Arm's FastSim simulation technology.
- Term-time: Writing documentation of summer placement work and personal development.
Abaco Systems: Software Engineering Intern (July 2019 - July 2020)
- Device Drivers: Development and maintenance of kernel device drivers for various hardware platforms based on Power PC and Intel CPU architectures, using the VxWorks operating system.
- Automated Testing: Configuration of automated testing of both specific device drivers and large-scale board support packages, running on various hardware platforms.
- Continuous Integration: Collaboratively redesigning the continuous integration system used by the team, to increase ease of use and reduce test cycle time.
Bath ASU: Administrative Assistant (University Holidays 2018 - 2019)
- Data Entry: Data entry for pharmaceutical records, requiring a high level of attention to detail to ensure the accuracy of the data.
- Communication: Answering telephone calls from customers and suppliers, to ensure products are successfully procured and paid for.
Education
Loughborough University: MEng Electronic and Computer Systems Engineering 2:1 (2017 - 2022)
- Primarily electronic engineering and embedded systems.
- Opted for FPGA design, computer architecture, and multicore systems in later years.
- Completed a year-long industry placement developing RTOS device drivers.
- Final year project was porting Mbed OS to a custom soft-core Arm-based Network-on-Chip Architecture.
The Corsham School: A-Levels (2015 - 2017)
- Mathematics: B
- Computer Science: B
- Physics: C
Skills Summary
- C
- C++
- Python
- Assembler
- VHDL
- Git
- CMake
- Visual Studio
- Docker
- Perforce Helix
- Linux
- ROS
- FreeRTOS
- Windows
- VxWorks
- Collaborative software development
- Working within an Agile environment
- Working remotely in a small team
- Communicating across disciplines
- Confident sharing ideas, defending suggestions and discussing proposals in one-to-one and group settings
- Good analytical and problem-solving skills
Extra Curricular
Investment Tracker Project
A personal web-development project to track personal finance investments. Built using Go and other web technologies.
Handmade Network
A network of programmers, dedicated to understanding software problems from first principles. The community aims to produce high-performance, robust software by questioning conventional assumptions.
OLC Codejam 2020
A week-long codejam, for which I created a simple logic gate puzzle game in C++. I placed 12th out of 108 entries. (Available on Itch.io and GitHub)
IRC Client for Twitch.tv
IRC Client for Twitch which includes concurrent processing and web API calls.
MIT Mystery Hunt
A puzzle-solving competition which involves lots of team work (teams of 50+ members) and global communication.