The purpose of this page is to showcase my past / current work. You can learn a lot about me through my code.
GitHub Activity
My contributions over the past year
Work
- Software Engineer at Anansi Solutions - Corsier-sur-Vevey, Switzerland - (September 2025 - Current)
- Develop backend features across a client’s C# and ASP.NET systems, spanning a long-lived legacy codebase and newer greenfield applications, implementing changes across APIs, data models, queries, and performance-critical paths.
- Lead an internal AI work-automation platform used across the engineering team, owning it from requirements through architecture to rollout, cutting the time the team spends on routine and mid-complexity tickets.
- Built that platform around determinism as a core design principle (TypeScript, Bun, ArkType runtime validation) so agent workflows stay predictable enough to depend on, redesigning the architecture as requirements shifted and instrumenting every run so usage data drives continuous improvement.
- Managed multi-cloud infrastructure across Azure, AWS, and Cloudflare with Terraform / OpenTofu via Scalr, and built the CI/CD pipelines that stand up a complete environment in a single run, making infrastructure reproducible and reducing operational toil.
- Beyond resolving 200+ defects (50+ major), focused on preventing them, tracing root causes and adding regression tests, boundary validation, and end-to-end coverage (Page Object Model) so the same failures could not silently return.
- Diagnose and fix concurrency issues (timeouts, deadlocks, and version conflicts) in live production systems, forming and testing hypotheses with SQL profilers, SQL Server Management Studio, and log analysis to work from symptom to underlying defect.
- Implemented soft-delete by reverse-engineering Prisma’s internals into a reusable, type-safe client extension, so the whole team got soft-delete for free without touching query logic.
- Maintained third-party app integrations via cross-origin RPC over iframes, patching upstream libraries where needed.
- Acted as the client-facing technical point of contact, clarifying specifications and advising clients on technical direction.
- Work in an agile team, and reach for agentic coding tools (Claude Code) where they add value, e.g. to debug quickly or test a hypothesis, while keeping the code maintainable and reviewed.
- Freelance Software Engineer at MrCheck / Seyrek - Reinach, Switzerland - (December 2025 - Current) - private repo, happy to grant access on request if you’d like to see how it works
- Sole engineer on a two-sided Swiss moving and cleaning marketplace running in production with real customers, owning requirements, architecture, backend, frontend, infrastructure, releases, and production operations.
- Designed the NestJS and PostgreSQL data model around the marketplace lifecycle of service requests, provider offers, quotes, and bookings, keeping state consistent as jobs move between customers and providers.
- Built background workers matching jobs to providers, preventing double-booking under concurrent processing, making failed jobs safe to retry, and handling timed transitions such as offer and quote expiry.
- Integrated Stripe for customer payments, provider payouts, and platform commission, handling webhooks idempotently so payment and booking state stay correct despite retried and out-of-order delivery.
- Built modular Terraform for Azure so a complete environment stands up from a single command or pipeline run, with staging and production isolated, CI/CD running automated tests, and state, applies, and credentials managed through Scalr rather than the repository.
- Set and renegotiated scope directly with the client, reprioritising around demonstrations and business milestones, and chose deliberately where to take on technical debt to hit them.
- NextJs, NestJs, Prisma, PostgreSQL, Stripe, Terraform, Azure
- AI Engineer at MachinaLabs - Basel, Switzerland - (September 2024 - April 2025)
- Owned the News module end to end: an event-driven ETL pipeline processing 150K+ articles/month, where individual stages emitted events that triggered downstream analysis and research workflows.
- Designed processing stages covering data cleaning, multi-level category classification, and NER-based entity extraction & linkage for people and companies.
- Integrated retrieval-augmented generation (RAG) workflows to enrich extracted entities and support downstream automated research.
- Python, ETL/ELT, event-driven architecture, NLP (NER + RAG), text classification
- AI Engineer Intern at MachinaLabs - Basel, Switzerland - (May 2024 - August 2024)
- Built and improved automated Python scraping pipelines collecting and processing financial news articles from multiple external sources.
- Applied NLP techniques with scikit-learn and spaCy for news classification, relevance analysis, and information extraction.
- Accelerator Fellow at Microsoft - London, United Kingdom - (July 2023 - August 2023)
- Led a four-person cross-university team to conceptualise, pitch, and write up a business idea against 8 competing teams.
- Designed an AI-powered budgeting app built on open-banking integrations with a focus on environmental impact, developing the product concept, technical approach, whitepaper, and final pitch.
- Won Best Project (£500 prize and an invited talk at the Microsoft office).
Projects
Ranked by how proud I am of them:
- ClassMosaic @ Anansi - Open source classroom reflection tool - (September 2025 - Current)
- NextJs, NestJs, Iframe-RPC, Python, Prisma, PostgreSQL, Terraform, AWS Provider
- MMANews @ Self - MMA News Aggregator - (May 2025 - July 2025) - Very ambitious.. discontinued :(
- Microservices architecture: 7 Docker containers (scraping, tagging, API, …) coordinating to fetch and process articles.
- Event-driven background processing with Redis + RQ to handle batches of articles concurrently.
- Python scrapers with cleaning, plus Aho-Corasick tagging of fighters & events at 95%+ accuracy.
- CI/CD via GitHub Actions for automated testing and deployment.
- NextJs, Java (SpringBoot), Python, PostgreSQL, Prisma, Docker, Redis/RQ
- Enterprise application (under NDA)
- ASP.NET 9, C# 13, SQL
- IBM Vision @ IBM - Educational visual novel turning IBM’s Machine Learning course into an interactive narrative (Final Year Project) - (September 2024 - April 2025) - link available on request
- Hybrid linear & branching narrative with decision points, character interactions, and a flowchart-based progress system.
- Dynamic choice system with adaptive feedback in Python, tracking player stats, relationships, and learning outcomes in real time.
- User research with 11 participants: 43% increase in learner motivation vs. the original course.
- Python, Ren’Py
- Dungeon-Trials @ Self - Soulslike Dungeon Crawler Game - Not maintained :(
- C#
Up Next
What’s next: ideas I’m actively planning to build.
-
UnDrift @ Self - A small inline device that reprograms the DualSense joystick driver to kill stick drift - (Planned: 2026)
- Problem: Stick drift is the PS5 controller’s most hated failure, analog potentiometers send phantom input even when you’re not touching the stick. Today your only options are sending it back or soldering in new sticks or paying 70 bucks every 4 months.
- Approach: A small in-line device to plug to the controller, recalibrating deadzones and remapping the raw joystick signal in firmware without soldering, without having to replace parts. Embedded firmware (Rust on a microcontroller) reprogramming the analog-stick driver on the go.
-
Whence @ Self - A CLI that remembers which package manager installed each app on Windows, and stops you from double-installing - (Planned: 2026)
- Problem: Juggling winget, choco, and scoop means losing track of where an app came from. Each manager only knows its own installs, so retrying through a different one silently creates conflicts and duplicates.
- Approach: A single-binary CLI (Go/Rust) that maintains one cross-manager provenance ledger,
whence <app>tells you who installed it and when, and a pre-install guard warns you before you reinstall something through the wrong tool.