Software Engineer at Google
Loc Phan.
I build front ends
Hi, I’m Loc. I write software at Google — front end, back end, and most of what sits between. I’m still happiest on the days something I built ends up in front of real people.
01 — Work
The work in production
The systems have gotten bigger with each job and the mistakes more expensive. Building fast is not enough at that size — landing a useful feature takes a careful engineering process.
-
01
The web app front end
Angular and AngularDart features in a web app my team owns and other teams build on. A large codebase with real users and no appetite for a rewrite, so the craft is landing change incrementally — behind flags, in pieces, without breaking what already works.
-
02
A large-scale datastore
Designed and built from the ground up: schema, access patterns, indexes, and the room to grow into. The decisions that are expensive to undo all get made while the tables are still empty.
-
03
A live schema migration
Split one overloaded table into a normalized schema in production, with no downtime and no broken consumers. A migration like this is barely about the SQL — it is sequencing, backfills, and dual writes held long enough that the old path is safe to delete.
-
04
RPC APIs
Service contracts that stay stable while everything behind them moves. Versioning, backward compatibility and error semantics picked so the caller has an easy time — because the caller is another team, and their outage is my outage.
-
05
Model training and serving
A workflow that trains a model, hosts it, and answers live inference requests behind an endpoint. The interesting parts are the unglamorous ones: reproducible training runs, safe rollout, a latency budget, and a sane answer for when the model is wrong.
-
Also
The on-call rotation
I carry the pager for the system my team maintains. Being the one who gets paged changes how you build: you write the runbook, you add the log line, you make failure legible at 3 a.m. It is the fastest way I know to learn a system all the way down.
Smarkets
-
01
New mobile app
Cross-platform, in React Native, from the early stages through to the App Store launch and on to nine thousand users. Redux Saga managed the API and WebSocket data flow behind every key feature, live odds included.
-
02
Animation and performance
Animation libraries and styling to build the mocked designs out properly, then the work to keep them cheap: granular components and selectors with efficient time complexity, which brought down both re-render counts and load times.
-
03
Geofencing
Enforced where a user actually was before letting them place a bet, checking GPS against the IP address. Flask on the back, React on the front.
-
04
Social features
Django models and API endpoints for the social side of the app — profiles, posts and comments — with a Redis cache in front to keep responses fast. Unit and automation tests plus crash reporting to catch what got through.
02 — Tech
The stack I have used
I am a learner first — new techniques and new technology are things I want to pick up, not work around. The list below is where that has landed so far, not where it stops.
A Front end
- TypeScript
- Angular
- AngularDart
- React
- React Native
- JavaScript
- CSS
B Back end & data
- RPC APIs
- Protocol buffers
- SQL
- Schema design
- Node.js
- Python
- Django
- Redis
C ML & pipelines
- Model training
- Model hosting
- Live inference
- Batch pipelines
D How I work
- Design docs
- Code review
- Incremental migration
- On-call
03 — Side projects
Built in the open
I build side projects to sharpen what I already know and stretch into what I do not — a new language, an unfamiliar framework, a problem I have never had to solve. All of the source is public.
-
01
Track Covid19
A weekend build from the 2020 lockdown: case stats, a world heat map, and history curves per country.
Source -
02
Food Stories
A recipe app built in the shape of Kitchen Stories — Rails on the back, React and Redux on the front.
Source -
03
Emotion Diary
A cross-platform mobile app for tracking how you feel, built on React Native with Firebase real-time cloud services.
Source -
04
Data Block
You shield a character from blocks of data falling out of the sky. Collision, gravity and force are hand-rolled — vanilla JavaScript and D3, no engine.
Play it - — The rest lives on GitHub @locphan2207