Please Wait...

CV

Experience

August 2020 - Present

Slipstream Engineering Design Ltd Slipstream Engineering Design Ltd: https://www.slipstream-design.co.uk/

Embedded C/C++ software developer for RF systems in commercial and military applications

Zynq UltraScale+ RFSoC Custom Transmit Receive Module

  • Modified PetaLinux software platform using Yocto, device tree and driver changes with custom bootloader for dual parallel QSPI
  • Linux application code to manage system and communicate to FPGA via custom AXI peripheral
  • SG DMA transfer of RF IQ data streams from PS-PL DMA DDR4 to high speed fibre optic SFP communication
  • Multi-tile and multi-board synchronisation
  • GUI for RF and system engineers to easily control device

100W High Power RF Amplifier

  • FreeRTOS 10 to manage high speed high speed 3.75Mbps DMA UART customer command interface and background functions
  • STM32 HAL library used for configuring and using perfierals
  • C# GUI developed for use by RF/electrical engineers to test and control board over USB interface
  • System level tests done using NI TestStand

CERN White Rabbit – <100 picosecond synchronisation over SFP fibre optics

  • Custom implementation based on Simple PCIe FMC carrier (SPEC)
  • The system allows synchronisation between many end nodes by using an extended IEEE1588 Precision Time Protocol over fibre optics
  • A Xilinx Spartan 6 FPGA with open source White Rabbit PTP Core is the core of this design
  • Software using LM32 softcore adapted from SPEC design
  • User configurable clock synthesiser phase synchronised with 1pps
Technologies used

December 2017 - August 2020

QuantuMDx Group Ltd QuantuMDx Group Ltd: https://quantumdx.com/

Embedded C/C++ software developer for portable PCR and QPCR medical diagnostics device

Low Level Controller - Fluid heating and shuttling, cassette handling plus other controls

  • Atmel SAMV71 ATSAMV71Q21 ARM Cortex M-7 Atmel Studio 7 with FreeRTOS V10.0.1, FFF(fake function framework) testing
  • Lots of peripherals, driven by SPI and I2C etc, C# PC control before port to C with FreeRTOS

Heater Board - QPCR/PCR Temperature Zone Management

  • Cypress PSoC 61 CY8C6136BZI-F14 Cortex-M4 PsoC Creator, FFF(fake function framework)
  • PWM and ADCs for controlling heater zones with ±0.5° accuracy
  • Developed interactive terminal interface over UART for use by electronic engineers

Worked on a variety of embedded platforms writing C/C++ for embedded applications ranging from small 8-bit AVR bare metal to 32-bit ARM with FreeRTOS and embedded Linux. Frequently liaison with electronic engineers, providing software support, schematic design feedback and tight integration between both teams.

Adept writing firmware for assay sequencing, controlling heaters, fluid movement and cassette clamping among others. Final marketable device, work is still in progress. Software written to comply in accordance with IEC 62304.

Technologies used

August 2015 - December 2017

EnAppSys EnAppSys Ltd: https://www.enappsys.com/

Java software developer providing energy market analytics for energy traders

Port and migration of self hosted monolithic system into more extensible microservice architecture for AWS. This included change from OpenSUSE operating system to dynamic scaling EC2 instances and change from Postgres database to NoSQL DynamoDB. Helped move from Ant build system to the more flexible Gradle

Full stack web development, helping extend interactive frontend in GWT (Google Web Toolkit) both client and server side.

Realtime processing Tibco messages from Elexon, multiple destinations of data inlcluding database for historical access and directly to realtime traders GWT client.

Verification and validation of newly deployed systems, fall back and redundancy is critical for 99.9% up time. Operating directly with big parties such as National Grid and Elexon while upholding governmental industry regulations. Some projects had requirements for out of hours support.

Technologies used


Skills

Languages
Embedded C(11), C++(14), C#, Java, VHDL, JavaScript, Pascal
Hardware
CPU:
ARM Cortex-M3/M4/M7/A5/A53, Atmel AVR, Intel Galileo x86
Comms:
UART, USART, I2C, SPI, CAN, Atmel SSC
IC:
Trinamic (TMC5041, TMCM-1110) stepper controllers, Analog Devices (AD7176, AD7768) High Speed High Resolution 24bit ADC plus many more...
Hardware:
PCB bring-up and SMD soldering, 0201 passives, QFP, QFN and SOIC packages
Stepper motors (micro-fluidic movement), IR & RPM Sensors, Pololu 3pi
Software
Libraries:
STM32 HAL, Microchip ASF, Mosquito MQTT, Google Web Toolkit (GWT)
Platform:
Yocto, Buildroot, Jenkins
VCS:
Git, SVN, Bitbucket, Jira
Build:
CMake, Gradle
AWS:
Amazon Web Services (Lambda, EC2, SQS, DynamoDB, Elastic Load Balancing)
Databases:
MySQL, PostgreSQL, DynamoDB
Concepts
Object-oriented Programming and Design, Real-time Operating Systems, Networking and Sockets, Multi-threaded and Multi-process Applications, Asynchronous Programming, Microservices, High Availability
Systems
Windows, FreeRTOS, GNU/Linux (Embedded, Yocto, Debian, OpenSUSE & Amazon Linux AMI), FreeBSD.
QMS
Q-Pulse
Transport
Clean UK driver's licence (category B)


Education

2011 - 2015

University of York University of York: https://www.york.ac.uk/

Computer Science B.Eng 2:1

Key Modules: Embedded systems design & implementation, programming of micro-controllers and real-time operating systems, introduction to analogue and digital circuits.

2008 - 2011

Hartlepool Sixth Form_College Hartlepool Sixth Form College: https://www.hartlepoolsixth.ac.uk/

A-Levels

Computing (A), Mathematics(B), Business Studies(B), AS-level Physics.