Evian McKeown

I build tools I would want to use myself.

BSc in Computer Science, University of Cape Town.
Based in Cape Town, South Africa. Seeking a graduate software engineering role.

Who I am

Evian McKeown

My work spans the full stack: web applications in ASP.NET Core and Django, the APIs and data models beneath them, and the algorithms that govern how quickly they respond. I am drawn to problems in which performance and correctness are both binding requirements rather than competing preferences.

In practice this has produced a DTMF decoder with an end-to-end latency below 50 ms, a live journey planner whose RAPTOR router answers in under 0.1 s and is about thirty times faster than a Dijkstra baseline, and a telemetry plugin with over 140,000 downloads. The planner began as a university project that I led with a team of three, and I have since rebuilt it and run it on my own; the decoder was released publicly under GPL v3; and several of my fixes have been merged upstream into a GNOME Shell extension with 2,100 stars.

I also take responsibility for the less visible engineering work: automated testing, continuous integration, and deploying and securing my own services on Linux, with sandboxed systemd units, SELinux, bot protection and rate limits.

Several of the projects above began as hobbies rather than assignments: the telemetry plugin came out of sim racing, and the decoder out of wanting to use a Casio Databank watch as a dialler. I also shoot 35 mm film on an Olympus OM-1, which accounts for the photographs below.

Education

Bachelor of Science in Computer Science

University of Cape Town, 2022–2025

  • Data Structures & Algorithms
  • Software Engineering
  • Database Systems
  • Operating Systems
  • Parallel & Concurrent Programming
  • Software Testing
  • Pure Mathematics

National Senior Certificate

Jan van Riebeeck High School, 2019

What I work with

Programming languages

Java Python C C# TypeScript JavaScript Lua

Frameworks and libraries

ASP.NET Core Django SignalR Tailwind CSS Vite Django REST Framework React MapLibre GL

Web and APIs

REST APIs JWT authentication WebSockets HTML CSS AudioWorklet

Database and data

SQL SQLite Relational Database Design Data Modelling GTFS

Systems and infrastructure

Linux Git CI/CD Pipelines GitHub Actions SSH / RSync Deployment Systemd OpenResty / nginx SELinux Cloudflare CrowdSec Cloud Platforms

Engineering practices

Unit & Integration Testing Test-Driven Development Agile Methodologies Code Review Issue Triage Technical Documentation Object-Oriented Programming Parallel & Concurrent Programming Real-Time Systems Performance Benchmarking

AI-assisted development

Agentic Coding Workflows Prompt Engineering

Experience

GT7 HUD – maintainer

Volunteer • Remote • 2026–present

Lua Assetto Corsa Custom Shaders Patch

Overtake →

Took over maintenance of a Gran Turismo 7-style telemetry HUD plugin for the Assetto Corsa racing simulator (original author Rhizix; 140,000+ downloads) after years without updates.

  • Shipped v1.3.0: battery state-of-charge ERS display, TC/ABS and throttle-blip visualization, and an optional tyre-telemetry module.
  • Exposed a shared CSP variable that lets third-party scripts report driver assistance to the HUD.
  • Fixed replay spectating so telemetry follows the focused car.
  • Triage user reports by reproduction status and review community patches before merging.

Selected work

WayFound – Cape Town Journey Planner

Python Django JavaScript React MapLibre GL GTFS

GitHub →    Live demo →

Public transport journey planner for Cape Town across MyCiTi, Golden Arrow and Metrorail. Implements RAPTOR over GTFS timetables, with a median query time of 88 ms and about 30× faster than a Dijkstra baseline that returns the same arrivals (120 seeded journeys, 810 stops, 17,000 trips).

Includes the pipeline that repairs the operators' timetables, a Django REST API, a React front end and a hardened deployment. Began as a team project that I led; since rebuilt and run on my own.

Databank Dialer

C# ASP.NET Core SignalR TypeScript AudioWorklet

GitHub →    Live demo →

Full-stack web application that captures DTMF tones from a Casio Databank watch via microphone, decodes them in real time using the Goertzel algorithm, and provides a click-to-dial interface for smartphones – under 50 ms end-to-end latency.

Open-sourced under GPL v3 with a live public demo, limited per stream, per client and by message rate so it holds up when exposed to the internet.

Blur My Shell

Contributor • May 2026

Fixed a dark-frame flash on blurred surfaces during wallpaper changes and corrected signal lifecycle handling in the rendering pipeline; merged upstream into a 2,100-star GNOME Shell extension.

JavaScript GNOME Shell

GitHub →    Pull request →

Top Farmer – Code Game

Game designed to teach fundamental concepts of programming languages to players.

Python Pygame Tkinter

Shot on film