Skip to content
DarkLight
Software Engineer · UC Irvine

Ethan Thornberg

Currently building full-stack at First American.

Four things
Software Engineer Intern · Engine Systems and Network Transport

Roblox

Summer 2026 · San Mateo

A network change used to be fatal mid-game. Wifi drops to cellular, every in-flight request dies with the old interface, and the only fix was restarting the app. I built Connectivity, the signal that fixes that: per-platform monitors feed one core manager that filters noise with debouncing, deduplication, and generation counters.

HTTP reconnects cleanly. QUIC migrates in place with no re-handshake. Roblox’s own UDP game transport re-authenticates a player on their new network path using a token issued ahead of time, so the game session just continues.

I scoped it for two consumers, and five more systems adopted it on their own. It reached 100% of iOS and Android, handling 18 million network transitions a day.

C++ · QUIC / HTTP-3 · RFC 9000 · Berkeley sockets
Full case study →
II
2025 to present
Full-stack
Part-time in school

First American Financial

Software Engineer Intern

I spent twelve months here building internal tooling for the DMS2 Admin Workspace on React and TypeScript over C# and .NET. Along the way I ran a Copilot rollout for a hundred engineers that nobody assigned me. After a summer at Roblox, I’m back on the team part-time through the school year.

React · TypeScript · C# / .NET · SQL Server · Kubernetes
Full case study →
III
180 days
In C

On my own time

180 days teaching myself systems programming in C, unrelated to any job, one project deep enough to force the next.

Real-Time Networked Systems

C · weeks 1 to 12

Networking fundamentals to a chat server to a tick-based multiplayer movement server: authoritative at 60Hz, client-side prediction, server reconciliation, and a latency simulator I wrote just to break it on purpose.

Distributed Task Queue

C · week 14

Fire-and-forget clients, spawned worker processes, at-least-once delivery. Finishing it felt oddly empty, and that feeling is what pushed me toward the renderer.

Software Renderer

C · weeks 16 to 25

No graphics API. Model-view-projection, clipping, rasterization with a depth buffer, and per-triangle Phong lighting, every stage written by hand, then perspective-correct texture mapping and shadow mapping on top.

Now: Operating Systems

Fall 2026

Threads, processes, and how the OS actually works. UCI coursework and personal study, running in parallel.

“I had spent three months learning how programs talk to each other. I hadn’t learned what to make them say.”

Most of what I build outside of work comes from wanting to understand something all the way down, the same reason I started weighing shots instead of eyeballing them.

Field Notes

IV

A log of my first few months of systems work, written as it happened.

Week 9: WorkersWeek 9
Week 10: When the Ground ShiftsWeek 10
The PivotMonth 4
All notes →