Lia's code and crafts

Tech portfolio

In brief

I started my career as a UI programmer who wanted to do graphics: over time, this led me to develop an unusual array of skills and interests that are best described as "game engine plumber". My focus areas are UI programming with a rendering focus, graphics programming with a porting and API focus, core tech especially if it is weird legacy code, tool development especially when the parts involved are strange and ill-fitting.

Basically, if it's primarily client-side and looks vaguely like a game engine, I can help. Examples would be revamping a 2D renderer, getting a custom engine running on a new platform, improving an old cursed workflow that everybody only speaks of in fear. I learn new things quickly, enjoy diving into legacy codebases, and have received extensive praise for the tech documentation I produce in doing so. My language of choice is old-style C/C++, but I know my way around C#, Javascript and python, and will pick up anything as needed.

I have worked closely with artists many times over the years: it is by far my favorite part of focusing on games rather than "regular" software. Every time, I was told that they greatly appreciated having an interface with the tech side of things, someone who could translate their needs to programmer jargon and explain technical issues in ways that made sense to them. My users are everything, whether they are artists using the tools I made or other programmers who need engine features.

DICE

Key art for Battlefield 4 and Star Wars Battlefront.

My first job out of school was at EA DICE in Stockholm, Sweden, starting in 2012. I shipped Battlefield 4 as a UI programmer and later did some UI rendering work for Star Wars Battlefront. All of it was in C++ with a custom in-house framework, on PC, PS3, XBox 360, PS4 and XBox One. You can find more details this way.

Game engine work

Logos for the Stingray and Frostbite game engines.

I joined the Frostbite engine team in late 2013 after Battlefield 4 shipped. My work there was focused on porting the engine to MacOS and mobile platforms, plus taking ownership of UI rendering. Eventually I left Frostbite in 2015 for Bitsquid / Stingray, where I worked on core tech and the data pipeline. A few years later, I once more did heavy engine work as a freelancer when I rewrote the entire renderer for the Synthesia piano learning application. You can read more here.

The Witness iOS

Screenshot of an orange forest from The Witness.

The Witness is a fascinating game, and porting it to iOS in 2016 and 2017 was quite the adventure. Much of it was wrangling shader translation before the tools were good, and hunting down actual compiler bugs. All the details are on a dedicated page.

Workflows and documentation

2021 and 2022 saw me working for an undiclosed client on an especially gnarly legacy SVG workflow. It involved a C++ native plugin, Unity and therefore C#, Adobe Illustrator scripts that use a bad version of Javascript, and writing many, many pages of documentation. More about that on its own page!

Personal work

Like many, I have made a couple of game jam entries that are full games. They are pretty ancient at this point and no longer representative of my skills. I have a more serious game project on the backburner, nicknamed Paca Farm, intending to be a deep process-focused game about textile farming and crafts. My most recent finished project is a weaving tool to save myself some work, called Network Drafter. It is a highly specialized design tool that will not make sense to 99% of people. I have also played around with python and the Twitter API a bunch, and all the websites I keep around are, like this one, made mostly-from-scratch with Pelican.