I am an MEng Electronics and Electrical Engineering student at the University of Edinburgh, with practical experience across embedded systems, FPGA development, digital hardware design, analogue electronics, RF engineering, power systems, control, signal processing and engineering applications of machine learning.
My GitHub currently focuses primarily on the software and programmable-hardware side of my engineering portfolio, including embedded C, Python, Verilog, FPGA development and hardware–software integration.
- Embedded C programming
- FPGA-based embedded systems
- Xilinx MicroBlaze development
- Verilog and RTL design
- Digital-system implementation
- Hardware–software co-design
- Python programming and technical computing
- Debugging, testing and laboratory validation
A modular implementation of the classic Snake game developed in Verilog and deployed on the Digilent Basys 3 FPGA using Xilinx Vivado.
The design combines reusable RTL modules, finite-state machines, counters, shift registers, pseudo-random target generation, VGA timing, seven-segment display control, collision detection and real-time user input.
Key areas demonstrated:
- Verilog and RTL design
- Modular digital-system architecture
- Finite-state machines
- VGA display generation
- Clocked counters and timing logic
- Linear-feedback shift registers
- FPGA synthesis and implementation
- Hardware testing on the Basys 3
View the FPGA Verilog Snake Game repository
A portfolio of embedded C applications developed for the Digilent Basys 3 FPGA using the Xilinx MicroBlaze soft processor, Xilinx Vivado and Xilinx SDK.
The repository documents a hardware–software co-design workflow in which FPGA hardware platforms were created in Vivado, exported to Xilinx SDK, and controlled using embedded C applications running on MicroBlaze.
The laboratory applications cover:
- UART communication
- GPIO peripheral control
- Switch and LED interfaces
- Timer interrupts
- Interrupt service routines
- Seven-segment display multiplexing
- Arrays and pointers
- Modular C programming
- VGA region and colour control
- Hardware debugging and validation
Most of the application-level development was completed in embedded C, while VHDL and Verilog files provide the supporting FPGA hardware platform.
View the FPGA Embedded C MicroBlaze repository
A collection of Python exercises, programming tasks and small applications developed to strengthen my software-development and computational problem-solving skills.
The repository contains practical work covering core Python programming concepts and provides a foundation for later work in engineering analysis, data processing and machine learning.
Areas covered include:
- Variables and data types
- Conditional statements
- Loops
- Functions
- Lists, tuples and dictionaries
- File handling
- Data processing
- Debugging
- Modular programming
- General problem solving
View the Python Practice Laboratory repository
Although my current GitHub repositories concentrate on coding and FPGA work, my wider engineering experience includes:
- Analogue and mixed-signal circuit design
- PCB schematic capture and layout
- Transimpedance optical-receiver design
- MATLAB and Simulink modelling
- Sigma-delta data-converter design
- STM32 embedded systems
- RF and microwave engineering
- Antenna design and measurement
- Power-system planning and analysis
- Power electronics
- Control-system modelling and PID design
- Sensors and instrumentation
- Machine-learning applications in Python
Selected work has involved circuit simulation, PCB implementation, FPGA programming, microcontroller development, laboratory measurement, system modelling, technical reporting and presentation.
- C
- Python
- Verilog
- VHDL
- MATLAB
- Embedded software development
- RTL design
- Finite-state machines
- Interrupt-driven programming
- Memory-mapped I/O
- Hardware–software co-design
- Digilent Basys 3
- Xilinx Artix-7
- Xilinx MicroBlaze
- STM32 Nucleo
- Xilinx Vivado
- Xilinx SDK
- STM32CubeIDE
- Altium Designer
- LTspice
- Cadence Virtuoso
- MATLAB and Simulink
- PowerWorld
- Analogue circuit design
- PCB design
- Mixed-signal systems
- RF and microwave circuits
- Power-system analysis
- Oscilloscopes
- Vector network analysers
- Bench power supplies
- Digital multimeters
- Signal generators
- PCB assembly and soldering
- Hardware debugging
- FPGA validation
- Embedded-system testing
My broader project experience includes:
- Optical receiver PCB design, simulation, manufacture and laboratory validation
- Third-order sigma-delta ADC modelling and non-ideality analysis in MATLAB and Simulink
- FPGA Snake game with VGA output and seven-segment score display
- Embedded C applications running on a MicroBlaze soft processor
- STM32-based audio acquisition and analogue signal-conditioning system
- DC motor modelling and PID control
- National power-system expansion planning
- Natural-gas combined-cycle generation with carbon capture analysis
- RF antenna design and VNA-based characterisation
Additional repositories may be added as I continue organising and documenting my technical work.
MEng Electronics and Electrical Engineering
University of Edinburgh
My studies cover analogue and digital electronics, microelectronics, embedded systems, RF engineering, power systems, power electronics, signal processing, control, instrumentation and engineering software development.
- Analogue and mixed-signal electronics
- Semiconductor and microelectronic design
- Embedded systems
- FPGA and RTL development
- Digital verification
- RF and microwave engineering
- Sensors and optical systems
- Power electronics
- Engineering software and automation
I am interested in engineering placements, internships and graduate opportunities involving electronics, embedded systems, FPGA development, semiconductor design, verification, RF systems and related technical roles.