~/about

About

I’m a software engineer. I’ve worked on low-level systems and security-critical software, on commercial games, and in technical leadership. This page is the short version of that, not a CV.

Most of my career has been in C and C++, usually on systems where performance, reliability and maintainability all matter at once. I’ve taken on broader technical and organizational responsibilities over the years, but I’ve always tried to stay close to the actual engineering.

What I’ve worked on

Security and low-level systems

I started out building security-critical systems with strict requirements for correctness and information security. That meant secure data transfer between isolated systems, cryptographic verification, embedded software, FPGA acceleration and designing a small domain-specific programming language.

Much of the work involved C on Linux or embedded targets, alongside security-focused code reviews, system architecture, verification and assurance work.

Game development

Games are where I’ve spent most of my career: first on commercially successful mobile titles, then on large cross-platform multiplayer games.

The work has covered gameplay programming, networking, dedicated servers and automated testing. Some of it involved reducing multiplayer latency, improving server reliability and getting dedicated server software ready for public release.

One project I remember particularly well was leading a team porting a commercial C++ game client to the browser using Emscripten and asm.js, back before WebAssembly became available. That involved adapting the client and backend, building content delivery infrastructure and helping other engineering teams adopt the technology.

More recently, I’ve worked on a large multiplayer action RPG developed in Unreal Engine 5 for PC and consoles. The work involved gameplay systems built with Unreal Engine’s Gameplay Ability System (GAS), networked gameplay, online and local co-op, and cross-platform development.

Backend, cloud and build infrastructure

Alongside games, I’ve worked on backend systems and infrastructure in several different domains.

That includes parallelized C software for high-volume data processing behind a large online marketplace, cloud-based IoT platforms using serverless services and infrastructure as code, and build and release infrastructure for large multiplayer games.

I’ve spent a fair amount of time working with CI/CD, including migrating critical build and release systems, automating testing and removing manual steps from release processes.

I’ve also led more experimental projects, including integrating an electric vehicle charging platform with a blockchain-based payment system and prototyping a decentralized electricity marketplace using smart contracts.

Technical leadership

Over the years, I’ve gradually taken on broader technical responsibilities, most recently leading gameplay engineering across five teams.

The role combined hands-on C++ development and technical architecture with mentoring engineers, planning and scoping technical deliveries, and working with senior stakeholders on priorities and direction.

I enjoy helping engineers solve difficult problems, but I also like understanding how the systems underneath actually work.

Tools & technologies

C, C++, Unreal Engine, networking, Linux, CMake, Docker, CI/CD (Azure DevOps, TeamCity), TypeScript, Node.js, Java, Spring, Terraform, AWS and Azure.

Python and Go when they’re the right tools for the job.

Education

M.Sc. in Computer Science and Engineering
Lund University, Sweden

Exchange studies at Zhejiang University in Hangzhou, China, studying control engineering and Chinese.

Outside work

I enjoy experimenting with software, electronics, networking and home infrastructure. I tend to gravitate towards projects involving real hardware, systems programming or some combination of the two.

This website is one of those projects. It’s a place to experiment, document things I’ve built and occasionally spend far more time on something than its practical usefulness could possibly justify.

See the lab for some of the results.


A more complete professional CV is available upon request. Get in touch via contact.

← back to ~