Skip to content
DarkLight
Software Engineer

Ethan Thornberg

Currently interning on Roblox’s engine networking team, on the transport layer that keeps live game sessions alive through network changes.

Four things
Software Engineer Intern · Engine Systems and Network Transport

Roblox

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.

Scoped for two consumers. Adopted by five more on their own. It’s rolling out now across mobile, Windows, and macOS, and it’s being presented at RDC 2026 this September.

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

First American Financial

Software Engineer Intern

Twelve months, not a summer. I built internal tooling for the DMS2 Admin Workspace on React and TypeScript over C# and .NET, then ran a Copilot rollout for a hundred engineers that nobody assigned me. Asked back for a second summer.

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. The project where I finished something and felt strangely empty about it, which turned out to matter.

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 and understood by hand. Texturing and shadow mapping are next.

“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 working log of the projects above, posted as I go.

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