← All chapters

Chapter 02 of 06 · Product Engineer arc

Chapter 02

02 プロジェクト[redacted]

Can't say. Ask me in an interview.
CASE FILE · NDA機密TOP SECRET

Project [redacted]

A private Google Photos, with its own machine learning!!

↓ Google Photos–style platform with custom ML. Sprout Digital Labs · client project.

能力 Parameters
Role
Lead on 3 of 4 detection pipelines
Reach
Government client · NDA
Period
Nov 2024 – Sep 2025

Under NDA. Happy to walk through the engineering in an interview.

What I did

  1. Built the age/gender estimation, landmark recognition, and notable-figure recognition pipelines of a computer-vision microservice (FastAPI, Docker), inside a service a colleague had scaffolded.

  2. Ported an earlier Flask prototype into the production service, replacing stubbed endpoints with real model inference.

  3. Integrated an open-source age/gender model (MiVOLO) with a YOLO-based face and person detector.

  4. Replaced a TensorFlow/Keras landmark classifier with a lighter YOLO + ONNX pipeline, removing the TensorFlow dependency entirely.

  5. Fixed model loading after a PyTorch 2.6 upgrade changed a default and broke every model.

  6. Added GPU detection and traceback-level error logging for production debugging, plus container and ARM64 build fixes.

  7. Wrote a retraining guide for the two custom-trained models.

  8. Extended the analysis results page with similar-photos and detail views, in English and Indonesian.

  9. Reworked global search into people, places, and folders with debouncing and caching, and fixed a regression that had switched off semantic search ranking.

  10. Made the map auto-center and zoom to fit photo locations.

  11. Removed an overly strict request-size limit in a production hotfix.

成果 Impact!!

Took the platform's photo-analysis features from mock responses to real model inference, and kept them running through a framework upgrade that broke model loading.

教訓 What I learned

Shaka standing under a cherry tree, drawn manga style
In production ML the model is the easy part. What breaks is the runtime around it — one changed PyTorch default was enough to stop every model from loading.

使用技術 Built with

  • Python
  • FastAPI
  • YOLOv8
  • ONNX
  • PyTorch
  • Docker
  • SvelteKit
  • Computer vision

Next chapter

To be
continued…

Let's write the next chapter together.

● Open to product engineering roles

© 2026 Sesaka Aji Nursyah Bantani Built with SvelteKit · inked in CSS & SVG · this manga reads top to bottom