Currently working as a consultant I have extensive experience working with OpenEmbedded, Yocto, build systems, Linux kernel programming and Linux userspace development.
Director and consultant at Tuxable Ltd.
Arsenal 1 and Arsenal 2/2 Pro Development (https://witharsenal.com) - 2017 - 2022
- Yocto/OpenEmbedded based BSP and distributions for factory testing/development and production images
- Mainline Linux kernels with ported vendor drivers for Allwinner A83T/H8 and Rockchip RK3288/RK3399
- Mainline uboot bootloaders with custom board integrations for Allwinner A83T/H8 and Rockchip RK3288/RK3399
- Factory Testing and validation scripts
- CI and deterministic image building design and implementation
- Developer workflow setup and helper scripts for efficient development
- Design and implementation of update/rollback/recovery system for in field updates
- Yocto/OpenEmbedded in house training for developers
- Yocto/OpenEmbedded release management tooling and easy user/CI/developer setup scripts
- Linux Kernel driver development for custom GPIO and Interrupt Controller FPGA IP
- Yocto/OpenEmbedded BSP for NXP QorIQ platforms with custom kernel, drivers and images
- Kernel driver for real-time sensor readings on ARM Linux platform (I2C/SPI)
- Userspace development in C for a wearable camera device (Posix Message Queues/pthreads/ioctl/time-sensitive/gstreamer)
- Yocto/Openembedded BSP for nVidia Tegra TK1 platform (github:meta-tegra)
- Specifying and evaluating hardware platforms for low-cost Linux camera based product (iMX.6/Atmel/Rockchip/Allwinner)
- Prototyping Android sensor and camera application
- Yocto/Openembedded BSP for GStreamer/Ducati OMAP4 platform
- Linux Distribution designs encompassing security, in-field upgradability and performance
- General consultations on available open-source software and it's effective use in projects
Mainly working on the OpenEmbedded build system, custom in-house build system, Linux kernel and Vectastar control applications which covers the whole of the CBNL product range. I assist the radio hardware team with the Embedded STM32 microchip design and coding on our software assisted radios and perform and write unit tests to analyse radio performance and check for regressions.
Notable Work
- Converted the legacy OpenEmbedded Classic build system to the current OpenEmbedded Core
- Rewrote the custom, in house build system which manages building the VectaStar applications and libraries
- Pruned application and libraries of legacy functions and features
- Implemented new TDM features for carrying and configuring E1 services in the VectaStar applications and daemons
- Linux Kernel debugging, bug fixing and code quality improvements to custom hardware drivers
- Performance enhancements and bring-up of new SBC's
- Improved compile and link time code checks and quality assurance
- Working with the hardware, test and software teams to orchestrate unit testing of radio hardware
- Took over the Embedded STM32 radio code from our lead radio designer on his departure
- Re-created and manage our new virtual buildhost infrastructure to allow for more deterministic builds and to have a tighter control over the build environment
While at dB Broadcast I worked on the MERlin DVB-T/T2 monitoring receiver which was released in 2011 and I made additions and upgrades to further revisions of the product.
I designed and implemented a new range of products harnessing the power of Embedded Linux and the OpenEmbedded/Yocto build framework.
During my time at Credativ I was required to undertake a variety of projects, I worked on internal company infrastructure managing network configuration and maintaining hardware and software. I was part of a project developing custom modules for an Open-source ERP system and packaging and testing development versions of the software to ensure stability.
Testing was a large part of my responsibility and I would be required to test my own code, my fellow employees code and also find, fix and report bugs in software that we used. I would regularly speak to clients answering questions, providing support and occasionally travel to provide on-site assistance and set-up.
Whilst at Credativ I learned many new skills which were usually self-taught with minimal assistance, I was required to get to grips with many new programming languages such as Perl, Python and Ruby along with being able to understand new frameworks and maintain and update past projects. We used 'git' for our source code management and would often work on projects as a team all contributing to the source code to develop efficient stable code. I was required to keep work logs, document all my code and provide information about my work on an internal company wiki.
Embedded Systems Engineering, 2:1
Electronic Product Design, Transferred
This CV is derived from github.com/jackmitch/cv, please check for recent updates. A generated PDF version is available here.