Shakes Wang / Electronics & Computer Science

Electrical engineering.
Analytical thinking.

I’m Shakes Wang, an MEng Electronics & Computer Science graduate from the University of Edinburgh. I’m seeking graduate opportunities in electrical and electronics engineering, with strengths in data analysis, structured problem-solving and technical communication.

Electrical & electronics firstAnalysis · Systems thinking · Communication
University of Edinburgh · MEng, Upper 2:1Analogue & digital electronicsEmbedded systems & softwareQuantitative research

A clear starting point

Engineering depth.
Broader perspective.

Start with my engineering work, then explore the analytical and people skills I bring to a team.

Browse all projects ↗
01

Electrical & electronics

Circuit design, PCB development, embedded systems, control and practical testing. My primary focus for graduate roles.

View engineering work
02

Data & analysis

Python, R and MATLAB applied to research, modelling and machine learning. Turning complex evidence into findings that can be explained.

View analytical work
03

Systems & communication

Requirements analysis, engineering context and peer-learning leadership. Experience relevant to technical and analytical consulting.

Explore consulting skills

01 / Selected work

Engineering first. Evidence throughout.

Electrical and electronics projects lead the selection below, followed by data analysis, research and software. Use the filters to go straight to the work most relevant to you.

Original third-order delta-sigma modulator architecture in Simulink

Original Simulink architecture · assignment report

02Mixed-signal modelling · 2025

Delta-sigma ADC

Designed and evaluated a third-order CRFF modulator for an audio-band ADC, investigating how architecture and non-ideal behaviour affect signal quality.

3-bit / 128×Quantisation / oversampling ratio

MATLAB / Simulink / Delta-Sigma Toolbox

Case study & media

My contribution

Synthesised and scaled loop coefficients, modelled the modulator and assessed SQNR, harmonic distortion, stability, integrator gain and mismatch.

Results & limitations

The ideal-case simulation reported 115.4 dB SQNR against a 105 dB target. Non-ideal cases degraded performance. This is a simulation result, not a measurement from a fabricated ADC. The report contains inconsistent dither labels, so no dither setting is assigned to that figure here.

Ideal-case delta-sigma modulator output spectrum
Ideal-case simulated spectrum · Simulink assignment report

Architecture and evaluation

Used a third-order cascade-of-resonators feed-forward architecture with a 3-bit quantiser and OSR of 128. Compared design options and synthesised coefficients with the Delta-Sigma Toolbox before scaling the loop and evaluating the Simulink model.

Test programme

Examined spectra and signal quality across input conditions, then varied finite integrator gain, loop-coefficient mismatch, DAC mismatch and dither. These experiments distinguish an ideal noise-shaping baseline from sensitivity to implementation non-idealities.

What the figures demonstrate

The block diagram explains the chosen architecture. The output spectrum shows the ideal-case noise-shaping behaviour. A strong ideal result does not establish that every non-ideal case meets the target, or that a physical converter would reproduce it.

Measured motor step response after PID adjustment
Original control-lab response · Figure 25 Open full size ↗
03Control & instrumentation · Laboratory work

Motor modelling & PID control

Identified motor behaviour from measured step responses, compared models with experiments and tuned feedback control.

Model → test → tuneSystem identification and controller trade-offs

Transfer functions / PID / Stability analysis

Case study & media

Approach

Estimated transfer-function parameters from step-response measurements, investigated frequency response and stability, and applied Ziegler–Nichols tuning followed by practical adjustment.

Reported outcome

The lab report describes reducing overshoot below 20% while retaining zero steady-state error. The exercise demonstrated the trade-off between response speed, overshoot and stability in the tested setup.

System identification

Used measured step responses to estimate steady-state gain and time constants, then compared an empirical motor model with a model derived from the motor’s physical relationships.

Control design

Explored open-loop and closed-loop behaviour, frequency response and stability. Used Ziegler–Nichols methods as an initial tuning point, then adjusted proportional, integral and derivative parameters to manage overshoot and response speed.

What changed in testing

The report records reducing proportional gain and increasing derivative time during final adjustment. The response plot below shows the tested setup approaching its setpoint with reduced oscillation; the reported sub-20% overshoot result is specific to that laboratory exercise.

Measured motor step response after PID parameter adjustment
Original control-lab report, Figure 25: final adjusted response. Source image resolution is limited. Open full size ↗
Original audio amplifier breadboard connected for STM32 recording
Original STM32 audio-recording report · breadboard Open full size ↗
04Embedded audio · Laboratory project

STM32 audio recording

Built a microphone amplifier, digitised audio using an STM32 microcontroller and reconstructed the recorded signal in MATLAB.

Analogue → digital → audioSignal conditioning, sampling and reconstruction

LTspice / STM32 / MATLAB / Breadboard testing

Case study & media

The signal chain

Designed the amplifier in LTspice, built it on breadboard, substituted available components and added decoupling, power indication and a measurement path. The microphone signal was digitised by the STM32, transferred as sample values and converted to a waveform and WAV file in MATLAB.

Supporting microcontroller work

My accompanying STM32 labbook also documents LED duty-cycle experiments, UART communication with a terminal, and conversion of 12-bit ADC samples back into voltage values. These exercises connect firmware configuration with observable outputs and support the later audio-recording work.

Testing the analogue front end

Checked DC bias and used a signal generator to investigate gain and cut-off behaviour. Practical component substitutions produced differences from the intended filter response, which the report compared with simulation.

Result and limitations

The recording was quiet and its observed duration differed from the expected sample count and rate. The report discusses possible microphone/input-level causes, but does not establish a single confirmed root cause. This is a useful example of connecting analogue measurements with digital-sampling checks.

LTspice circuit schematic of the audio amplifier
Original report, Figure 1: amplifier simulation circuit. Open full size ↗
MATLAB waveform reconstructed from the recorded STM32 samples
Original report, Figure 2: reconstructed audio waveform. The low amplitude and duration discrepancy are discussed in the report. Open full size ↗
Original simulated input clock and four shift-register outputs
Original digital-systems daybook · simulated shift-register outputs
05Digital systems laboratory · 2023

Digital logic & timing

Investigated combinational and sequential logic through circuit construction, LTspice simulation and waveform analysis.

Logic → timing → sequenceAdders, latches, flip-flops and a four-stage shift register

LTspice / CD4000-series logic / Timing analysis

Case study & media

From truth tables to sequential behaviour

My digital-systems daybook documents a half-adder using NAND and XOR logic, followed by D-latch, flip-flop and shift-register experiments. Truth tables connect the gate-level circuit with its expected outputs.

A four-stage shift register

Connected four CD4013 flip-flop stages in simulation to a common clock. The recorded outputs show the active bit progressing through 0001 → 0010 → 0100 → 1000 across successive clock periods.

Original LTspice schematic of four cascaded CD4013 flip-flops
Original daybook, Figure 12: four-stage shift-register simulation schematic.

Interpreting timing measurements

Used clock and data transitions to investigate propagation delay, setup time and hold time. The report compares observations with datasheet values and identifies a discrepancy in the hold-time estimate, considering stimulus settings and manual observation as possible causes.

These figures document discrete-logic circuit simulations. The FPGA and Verilog work is described separately.

06Digital systems · Laboratory work

FPGA digital design

Designed, simulated and implemented digital logic in Verilog, applying finite-state machines and timing concepts.

Logic → hardwareImplementation and practical debugging

Verilog / FPGA / Finite-state machines

Read project overview

Practical work

Implemented and tested FPGA-based logic, including an LED-control application, and investigated hardware behaviour while applying digital-system concepts.

Design approach

Applied digital-logic concepts through simulation and implementation in Verilog, including finite-state machines and timing. Hardware testing helped connect expected logic behaviour with what the FPGA actually did.

Dual-arm robot and cube beside a red obstacle in the original PyBullet simulation recording
Original ARO team recording · 76-second video inside
07Advanced robotics · Team coursework

Dual-arm robot motion planning

A team robotics project connecting two-hand grasp configurations, sampling-based path planning and inverse-dynamics control in simulation.

Geometry → planning → controlFrom cube poses to simulated robot motion

Python / Pinocchio / NumPy / Meshcat / PyBullet

Case study & video

The task

Move a cube between initial and target poses with a dual-arm robot while accounting for an obstacle. The WANG_ULLAH submission brings together grasp geometry, motion planning, trajectory generation and torque control using the course’s simulation framework.

My contribution

My teammate and I worked together across the project, jointly developing and debugging the geometry, planning and control stages.

Grasp configurations

The inverse-geometry routine stacks the two hand-pose errors and Jacobians, uses a pseudoinverse update with a posture-bias term, and projects configurations to joint limits. Collision checks are used while searching for configurations that align both hands with the cube’s hooks.

Planning a route

The RRT-style planner samples cube poses, solves for corresponding grasp configurations and grows a tree through local interpolations. Candidate connections include collision and obstacle-distance checks. A shortcut stage attempts to remove intermediate nodes through checked connections.

From path to motion

The control code densifies the joint path and constructs a Bézier trajectory with position, velocity and acceleration references. Inverse-dynamics tracking is combined with Cartesian spring forces at the grasp points, mapped into joint torques through the hand Jacobians.

Watch the original simulation

The original team screen recording shows the Meshcat planning view, terminal output and PyBullet simulation. The full 76-second sequence is retained at its original speed, including setup and transitions. Silent recording.

Original recording compressed for the web · approximately 1.3 MB · no autoplay.

Scope of the evidence

This is team coursework built on a supplied robotics framework. The recording illustrates the implementation in simulation; it does not establish physical-robot performance or continuous collision clearance after trajectory smoothing.

Aggregate predicted and observed GHQ trajectory plot
Original Year 5 research diagnostic Open full size ↗
08Two-year dissertation · 2024–2026

Mental-health trajectories

Investigated longitudinal UK survey data, extending an existing research codebase and connecting data preparation with statistical modelling and interpretation.

14 wavesMain-survey analysis in the Year 5 study

R / Data harmonisation / Statistical modelling

Case study & media

Year 4: pandemic analysis

Built on supervisor-provided data and base R scripts. Standardised categorical variables, checked missingness, improved visualisations and extended models with sociodemographic predictors.

Year 5: longer-term trajectories

Extended the work to 14 main-survey waves with spline-based longitudinal analysis and complementary survey-weighted logistic regressions. The two dissertation stages used different survey datasets.

What I learned

Consistent variable definitions, careful model interpretation and clear attribution matter as much as producing a plot. This overview focuses on methods and contribution; respondent-level survey data is not distributed here.

From inconsistent data to analysable variables

Worked on consistent coding across waves, categorical-variable definitions, missingness summaries and comparison plots. This preparation was necessary before extending the statistical models or interpreting group differences.

Two complementary modelling views

Used spline-based longitudinal analysis to explore changing continuous scores, alongside wave-level survey-weighted logistic regressions for binary caseness. These analyses answer related questions but have different weighting and interpretation requirements.

Checking the model against observations

Compared predicted and observed aggregate trajectories as a diagnostic. Close agreement in a plot is not proof of causation or sufficient validation on its own. Complete-case selection and differences in survey-weight handling remain important limitations.

Predicted and observed aggregate GHQ trajectories across survey waves
Original aggregate diagnostic plot from the Year 5 project. No respondent-level records are displayed. Open full size ↗
Semi-supervised learning selection strategy comparison
Original ML team experiment figure Open full size ↗
09Machine Learning Practical · Group G022

Learning with limited labels

Extended a team semi-supervised learning baseline with FixMatch training, sample-selection strategies and label-allocation experiments on VisDA-2017.

VisDA-2017Semi-supervised domain adaptation

Python / PyTorch / FixMatch / ResNet-50

Case study & media

My contribution

I extended the team’s baseline with a FixMatch training pipeline, weak/strong data augmentation and active-sampling strategies. I added label-allocation options, configured experiment sweeps, produced comparison plots and documented how teammates could run the experiments.

Working within a team

A teammate established the initial working SSDA baseline. I built on that foundation; the model, final submission and reported experiment results form part of our group study.

Scope & limitations

Experiments used a single random seed and limited training duration. Observed rankings are study-specific, rather than evidence that one strategy is universally best.

Research question

When only a small fraction of real target images can be labelled, does performance depend more on the training method, the examples selected, the allocation of labels across classes, or the total budget?

Training pipeline

Used a ResNet-50 backbone with a bottleneck head. Weakly augmented unlabelled images generated confidence-filtered pseudo-labels, while a strongly augmented view supplied the consistency-training loss. An exponential moving average of model weights was used for evaluation.

Experimental comparisons

Compared random, uncertainty, diversity and hybrid selection; proportional, equal and difficulty-based allocation; and budgets from 0.5% to 5%. The selection figure holds the nominal budget at 1%.

Interpreting the result responsibly

The source-pretrained model provided the selection signal before target adaptation. Rankings could depend on this choice. Experiments used one seed and limited epochs. The baseline and FixMatch training recipes also differ in optimiser and duration, so their comparison does not isolate the loss function alone.

Training accuracy, loss and best-accuracy comparison for four target-sample selection strategies
Original G022 team report, Figure 1. Single-seed selection sweep at a 1% labelled target budget. Open full size ↗
Per-class accuracy for target selection strategies
Original G022 team report, Figure 2: class-level differences underlying the aggregate result. Open full size ↗

Selection and label allocation

I extended the sampler to control two separate decisions: which images to label, and how many labels to allocate to each class. The implementation supports random, uncertainty, diversity and hybrid selection with proportional, equal or difficulty-based allocation.

Making experiments repeatable

I connected strategy, budget and allocation settings to environment-controlled SLURM jobs, organised sweep results and improved plot labels. Cluster-run fixes included checking that scratch-data copies existed before training, so a failed copy would stop clearly instead of failing later.

Reading the experiment figures

The three sweeps ask different questions. Selection compares which examples to label; budget varies the total labelled fraction; allocation distributes a fixed budget across classes. Each figure includes training curves and the best observed accuracy from that particular run.

Target accuracy and training curves across 0.5, 1, 2 and 5 percent label budgets
Original repository plot: label-budget sweep with random selection and proportional allocation. Single-seed experimental results. Open full size ↗
Target accuracy and training curves comparing proportional equal and difficulty based allocation
Original repository plot: allocation sweep at a 1% labelled target budget. Single-seed experimental results. Open full size ↗
Delivery-path plot rendered from the original saved PizzaDronz GeoJSON output
Rendered from original saved GeoJSON · coursework simulation
11Java software · Coursework · 2023

PizzaDronz

Connected REST API data, order validation and a weighted A*-style route planner, exporting delivery summaries, movement records and GeoJSON flight paths.

Validate → plan → exportFrom order rules to inspectable route outputs

Java / Spring Boot / REST APIs / GeoJSON / Pathfinding

Case study & media

The engineering problem

Turn a day’s coursework delivery orders into validated delivery records and planned drone movements. Restaurant menus, orders, no-fly regions and the central area were supplied through REST endpoints.

How I structured the application

Separated data retrieval, shared application data, order validation, geometry, route search and output writing. The main application loaded the endpoint data and passed it to the delivery-processing stage.

Order validation

Implemented checks for payment-field formats and expiry, pizza count, menu membership, a single supplying restaurant, opening day and total price including the delivery charge. Validation codes describe why an order cannot proceed; these are coursework rules rather than a production payment-processing system.

Geometry and route search

The geometry helper provides coordinate-distance, next-position and polygon-membership operations. The planner expands 16 headings in 22.5° increments, keeps a priority queue of candidate cells and uses parent links to reconstruct a route.

The search score is weighted as f = g + 3h, where g represents accumulated movement cost and h estimates distance to the goal. This prioritises progress toward the goal; it does not establish a globally shortest route. Candidate positions are checked against no-fly polygons.

Outputs that can be inspected

The delivery stage writes a delivery-summary JSON file, movement-by-movement flight-path records, and a GeoJSON LineString combining the saved route coordinates. The figure uses the 4,791 coordinate entries in a saved coursework output, rather than an invented demonstration path.

Original saved route coordinates plotted in a local east and north coordinate frame
Original saved GeoJSON rendered as a new figure. Positions are projected into a local metric frame for display. Open full size ↗

What the figure establishes

The saved output demonstrates route generation and export. It is not a physical-flight recording or independent verification of shortest-path optimality, full obstacle clearance or every order-validation edge case. No new live service call or drone flight was performed to create this portfolio figure.

Reconstructed overview of parsing, semantic analysis and optimisation coursework
Explanatory overview reconstructed from the implementation
12Compiler coursework · 2025

Compiler construction

Worked across parsing, semantic analysis and optimisation in a Python-based ChocoPy compiler framework.

Parse → analyse → simplifyLanguage structure, typing and intermediate-representation rewrites

Python / ChocoPy / xDSL

Case study & media

Building on a compiler framework

Across three coursework repositories, I worked on parser implementation, type checking, dead-code warnings and optimisation passes. The projects used supplied compiler infrastructure, with my changes recorded in the repository history.

Semantic analysis

The implementation builds typing environments, checks assignment compatibility and traverses the program structure. A separate visitor tracks variable use to report dead-code conditions, connecting syntax with the meaning and use of program values.

Local optimisation

Pattern-rewrite passes fold integer constant expressions, apply selected algebraic simplifications and remove unused literal or binary-expression results. The dead-code pass retains division operations, illustrating why removing an unused result also requires attention to observable behaviour.

What this demonstrates

Experience reading a larger codebase, traversing syntax trees and expressing transformations over an intermediate representation. The diagram summarises the coursework stages; it is not a performance benchmark or a claim of complete language coverage.

02 / About me

Curious about how
things actually work.

My background combines electronic engineering with software and quantitative analysis. At Edinburgh, I worked across analogue and mixed-signal electronics, embedded systems, digital design, control and instrumentation.

I like working through a problem from modelling to building and testing, discussing ideas with others and learning from what the results reveal. Research and peer-learning roles have also shaped how I check evidence and explain technical ideas.

Electronics & prototyping

Altium Designer, LTspice/PSpice, schematic capture, PCB layout, breadboard prototyping, soldering, testing and fault diagnosis.

Digital & embedded

Verilog, FPGA, finite-state machines, C, STM32 and STM32CubeIDE.

Modelling, software & data

MATLAB/Simulink, Python, R, Java, statistical modelling and data visualisation.

Everyday professional tools

Present. Document. Collaborate.

Proficient in Microsoft Office and collaboration tools, alongside LaTeX for technical writing.

PowerPoint
Presentations and communicating technical ideas.
Word & LaTeX
Reports, structured documents and technical writing.
Excel
Spreadsheets, organising data and everyday analysis.
Teams & Outlook
Team collaboration, meetings, email and scheduling.

03 / A wider perspective

Systems thinking & communication.

Consulting-relevant experience: defining requirements, evaluating context, explaining evidence and working with others. These academic studies sit alongside my peer-learning and engineering internship experience below.

Systems requirements · Individual coursework

Vaccine delivery in Uganda

Analysed the external interfaces and operating context of a proposed vaccine-delivery system using PESTLE. Considered infrastructure, cold-chain logistics, stakeholders and information requirements.

A systems requirements exercise, rather than a deployed healthcare service.

Original system-of-systems diagram for a proposed drone vaccine-delivery system
Original individual coursework diagram: delivery hub, monitoring, cold chain and healthcare interfaces. Open full size ↗
Read the study

Requirements before technology

Identified stakeholders and external interfaces, then classified requirements by function, performance, operation, environment and cost. This connects proposed technical capabilities with the needs of delivery operators, healthcare workers and communities.

Comparing alternatives

Compared a central drone-distribution concept with motorbike transport, considering remote access, cost, charging, temperature-controlled payloads, security and last-mile handling. The trade-off analysis is a design exercise, not evidence of field deployment.

System boundary

The diagram connects supply and distribution with monitoring, temperature control, delivery and healthcare hand-off. It makes interfaces and dependencies visible rather than treating the drone as a standalone solution.

Interdisciplinary poster · 2024

AI translation & culture

Explored AI translation of Chinese online fiction and culturally specific expressions, bringing technical translation evaluation into conversation with reader interpretation.

The poster connects Python/NLTK-based BLEU comparisons with focus-group material and discussion of cultural meaning.

Method summary connecting technical translation comparison with reader interpretation
Explanatory method summary reconstructed from the original poster; not an experimental result chart. Open full size ↗
Read the study

The question

How do AI translations of culturally specific Chinese online-fiction expressions relate to the way readers understand them? The poster brings an engineering evaluation method together with a cultural-communication question.

Methods described in the poster

The poster discusses Python/NLTK-based BLEU comparisons and focus-group material from nine readers in three groups. The quantitative and qualitative elements were used to examine different aspects of translation interpretation.

Limits of the evidence

BLEU measures overlap with a reference translation and is sensitive to the chosen reference. It is not a standalone measure of cultural accuracy. This was a small academic poster study, not a new translation model or broad benchmark.

04 / Experience & education

Learning through doing.

Dissertation research

School of Informatics · University of Edinburgh

Two-year quantitative research project using longitudinal survey data. Extended analysis code, prepared data, evaluated models and communicated methodological choices.

EngPAL Leader

Edinburgh University Students’ Association

Led peer-assisted engineering sessions, explained technical concepts and supported collaborative problem-solving.

Engineering Intern

China Railway Construction Co., Ltd.

Compared engineering drawings with site conditions, identified discrepancies and supported project documentation.

Global Buddies Leader

Edinburgh University Students’ Association

Supported international student engagement and communication through the University’s Global Buddies programme.

MEng Electronics & Computer Science

University of Edinburgh · Upper 2:1

Study across electronics, computer science, signal analysis, control, instrumentation and embedded systems.

Foundation Studies

Trinity College · University of Melbourne

GPA 91/100. High Achievement Certificate in History of Ideas (top 3%).

Hobbies & interests

Dubbing

I enjoy dubbing and exploring expression through voice performance.

Driving

Driving is another interest of mine. I hold a full UK driving licence.

Poetry

I write poetry as a personal creative outlet. Halloween is a poem I wrote in November 2020.

Read “Halloween”Shakes Wang · 1 November 2020
Ivory lilies and drifting paper beneath a crescent moon on a deep green background
Illustration inspired by “Halloween” · AI-generated

Tis the third Halloween that I am taking
Still, I am ruminating
On thy stuff of that girl, that I am whispering
Thousands of sheets were torn, flying
Bunches and bunches of lilies, covering
On thy stuff of my girl, sighing

Last Halloween, thy boy was praying
Thou never present, despairing
Hesitating with little hope, that I was anticipating
Doth my mere fire smother? Or still shing?
God mercy my destiny, letting
Thou arrive here temporarily, smiling
Blown by the wind, frozen,
But smashed by the truth, that I was awaking
Then farewell, my darling

05 / Get in touch

Let’s talk engineering.

I’m exploring UK graduate roles in electrical and electronics engineering, alongside analytical and technical consulting opportunities. If my skills fit your team, I’d welcome a conversation.

Shakeswang@outlook.com  ·  LinkedIn ↗

Email me ↗