Automated Web App Testing with Deep RL
Developed and trained an RL (Soft Actor Critic + CNN) agentic system which would learn to independently explore web app UIs to uncover bugs without the need of hand-written test scripts.
Let's build something
I ship machine learning, build companies, and fly planes.
I'm a software engineer and entrepreneur currently based in Hamburg. I lead engineering and e-commerce operations at Villa Schmidt — a ~20 person company I run as Managing Director / CTO — where I modernised the stack onto open-source, cut SaaS spend by 80% while allowing our team to ship ten times faster.
Before that I graduated from Imperial College London (MEng, First Class), with a thesis on deep reinforcement learning for automated web testing. Along the way I've co-founded two companies and worked at an AI lab (Humanising Autonomy) where I trained GANs to synthesise training data to improve the performance of advanced driver assistance systems (ADAS) in adverse weather conditions.
When I'm not in front of a laptop, I'm usually in a cockpit. Flying is a long-running passion — I'm a licensed private pilot for aeroplanes, working toward a commercial license and instrument rating, and I passed the 13 ATPL theoretical exams in early 2026 (highest level of aviation theory exams; prerequisite to fly large commercial jets). At the moment, I love flying a 1978 Cessna 172 to cool destinations across Europe.
Developed and trained an RL (Soft Actor Critic + CNN) agentic system which would learn to independently explore web app UIs to uncover bugs without the need of hand-written test scripts.
Trained and deployed generative adversarial networks to synthesise rare training data of adverse weather conditions, hardening pedestrian-detection models for automotive safety.
Led the replatforming of a legacy shop onto a headless, open-source stack. Cut SaaS costs by 80% and drove a 30% revenue increase in one year against the macro headwind.
Data migration, process mapping, and integrations with complex store and product databases. Replaced a tangle of SaaS tools with a single self-hosted ERPNext deployment.
An interactive 2D simulator for practising IFR holding entries and tracking, built entirely in a single self-contained HTML file with vanilla JavaScript and the Canvas API. It draws the published holding pattern north-up like an approach chart, with a flyable aircraft you steer via a draggable heading bug while a power lever sets airspeed. A realistic VOR/OBS head (including authentic reverse sensing), a heading indicator, and 7-segment DME and timer displays let you fly the hold purely on instruments. Wind is modelled as a proper drift vector, and the trainer computes the correct Direct/Parallel/Teardrop entry, overlays the coloured entry zones, and reveals clock-code wind-correction angles and outbound timing. Runs on desktop and mobile, touch-friendly throughout.
When the first UK headlines of COVID-19 made the news, many international students left the UK, thinking they would soon return as it was only a temporary outbreak. That was of course not the case — university went fully online and returning to England was not possible or practical for many overseas students. At the same time, most still had their flats or student accommodation with their belongings left behind, and no way of moving out. So I set up a company offering a remote student moving-out service, with storage and shipping of personal belongings. The service was fully bookable online and was even selected as the officially recommended service by Imperial College Halls. It ran under my company WAQUA Ltd, and I worked with a removals company to organise the logistics. It was a great success — I enabled many students to organise their move-out easily from overseas, saving them from travelling back to London or paying rent on an apartment they couldn't use.
When a friend from Germany and I studied at a boarding school in the UK, we were surprised the country had no circular bottle deposit and recycling scheme like the one we were used to back home. In our school alone, there was a vast amount of non-recycled plastic waste from single-use beverage bottles, most of which just ended up in landfill. At the same time we saw high demand for bottled water, as many international students weren't used to drinking UK tap water. We saw a business opportunity and incorporated the sustainable beverage and snack supplier WAQUA Ltd in 2018. The concept was an easy-to-use subscription for water and other beverages, where the bottles entered a fully circular recycling system with no plastic going to landfill. We also donated a fixed percentage of income to the Sea Turtle Rescue Society of Greece, supporting endangered species harmed by ocean plastic pollution. I was fully in charge of designing and building the online platform, where students placed and managed their orders while it generated order lists and statistics for our internal operations. As CEO and co-founder, the journey was a valuable lesson across leadership, negotiation, flexible problem-solving, finance and accounting.
A university project for the Human Centered Robotics course with a team of 10 students, where I led the Perception team. We used two stereovision cameras to produce point-cloud data, object-detection bounding boxes and odometry data for the robot's navigation subsystems. Wheel-E is a smart and autonomous wheelchair aimed at children with severe disabilities. The system includes three unique features: a social navigation system that applies proxemics and 'social awareness' metrics to the autonomous path planning; a sentiment-analysis model which classifies the user state and adjusts velocity accordingly; and a laser pointer that functions as a directional indicator of the wheelchair's movements.
For the Embedded Systems course I developed a sound-alerting product as part of a team of 4 students. Sounds like doorbells or alarms are easily missed when wearing headphones or listening to loud music. To solve this, we built a sound classifier that runs on a small low-powered embedded processor and sends alerts to a user's phone, which vibrates or blinks its flashlight to get their attention. This required training a highly efficient machine-learning model that could run in real time on minimal embedded hardware, alongside a mobile app and the communications infrastructure to tie it together.
The year-2 final project of my degree was designing and implementing a Mars Rover. I was responsible for the rover's vision system and built a fully hardware-based vision processor running on an FPGA in real time. The system consisted of a digital vision processor I designed in Verilog, plus a softcore processor running simultaneously on the FPGA to handle communications with the rover's other systems. In the end the vision system could distinguish between different objects, ran in real time on the rover, and fed signals to the other subsystems.
As part of the Robotics course we had to design a localisation algorithm that lets a robot locate itself on a map purely from LIDAR measurements. The whole implementation was done in the robotics simulation environment CoppeliaSim, where we built a probabilistic localisation algorithm that continuously processes new measurements from the 1D LIDAR sensor and updates a probability map of the robot's position in space.
For the Instruction Set Architectures and Compilers course, the final project was a pair project to design and implement a fully functional C compiler from scratch. Built in C++ with a team-mate, we implemented everything from the syntax lexer to abstract-syntax-tree generation to the final assembler that emits compiled machine code able to run on a MIPS processor.
As part of the digital architecture courses I designed multiple CPUs for different instruction set architectures — first a MU0 processor in Intel's Quartus Prime, then, as part of a team, a fully functional pipelined MIPS processor written in raw Verilog with custom test benches for unit testing and hardware verification. Combined with the C compiler I wrote alongside, I effectively designed both the hardware and the software for a fully functional computer.
I bought a 1986 Pin-Bot, one of the earlier digital-display pinball machines, and fully overhauled and restored the hardware — fixing and replacing broken parts to get it good-looking and playable again. Strip it down, re-cap the boards, repaint the cabinet, rewire the flippers. A year of Sundays.
Built an analysis tool that could examine git repositories and identify 'hotspots' — code that was frequently changed or bug-fixed — with more advanced queries surfacing individual developer workflows. The implementation ran on Google BigQuery, which made it highly scalable and able to deliver complex analysis over very large code repositories almost instantly.
A custom headless web app for bulk operations on our e-commerce product database, making everyday catalogue work 20–100× faster than the old workflow. Built with Svelte and AG Grid — a high-performance data grid — alongside a dedicated API client, it lets the team edit, enrich and manage thousands of products at a time with spreadsheet-like speed. It's used daily across our e-commerce operations.
Testing harness and release pipeline for advanced driver-assistance systems. To automate integration and testing, I developed a sophisticated end-to-end hardware test setup that emulated multiple vehicle camera streams, vehicle signals and serial communications, while capturing test artefacts such as user-display outputs and serial traffic. Those artefacts fed into a post-processing stage that automatically verified the results and continuously informed the development team about system quality.