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.

Google Software Engineer · 2020–now
requests RPC versioned calls writes infers deploys dual writes pages Users 01 Angular web appWeb app 04 Other teamsOther teams 04 RPC gatewayRPC gateway orders_wide safe to delete 02 / 03 DatastoreDatastoreorders + line_items2 tables 05 Model serverModel server Training 06 Pager
The system my team owns. Each card below lights the part of it that card is about.
  1. 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.

    • Angular
    • AngularDart
    • TypeScript
  2. 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.

    • Schema design
    • SQL
    • Capacity
  3. 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.

    • Zero downtime
    • Backfill
    • Dual writes
  4. 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.

    • RPC
    • Protocol buffers
    • Versioning
  5. 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.

    • Python
    • Model serving
    • Live inference
  6. 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.

    • On-call
    • Debugging
    • Runbooks
Smarkets Software Engineer · 2018–2020
  1. 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.

    • React Native
    • Redux Saga
    • iOS & Android
  2. 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.

    • React Native
    • Animation
    • Performance
  3. 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.

    • Flask
    • React
    • Geolocation
  4. 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.

    • Django
    • Redis
    • Testing

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.

Bigger is deeper. Hover a term to pull its field out of the wall.

  • Front end
  • Back end & data
  • ML & pipelines
  • How I work

04 Contact

Let’s talk about anything.