Engineering

Build journal

Why the sign on someone's hands mattered, what I refused to let the software do, and the decisions that still shape how it is built.

Notes, code, and a sketch of the measurement. Not a clinical result.

A student desk with a project notebook, a laptop, and a finger-profile sketch.

Build timeline

I started LungLens because digital clubbing is still judged by a look. Two careful people can disagree. I did not want to shrug at that. The numbers that stayed with me are on the overview.

Where I got stuck was treating a successful run as if it proved I found the anatomy. A stub can return fixed points and still produce angle values. That is why Demo captions now say when placeholders are active.

Dates below come from project history. They mark engineering milestones, not invented setbacks.

  1. 2026-07-22

    Repository foundation

    I started the monorepo so the app and the analysis code could grow together.

  2. 2026-07-23

    Core product structure

    I put patient profiles, clinic workflows, and interop planning into the foundation.

  3. 2026-07-23

    Secrets discipline

    I documented environment placeholders without putting secrets in the repo.

  4. 2026-07-23

    Local analysis runs

    I tuned the analysis API requirements so local engineering tests could run cleanly.

  5. 2026-07-23

    Role-based portals

    I built patient, clinician, and admin portals, with login routing by assigned role.

  6. 2026-07-23

    Demo login routing

    I stabilized demo role lookup so sample users reach the right portal.

Capture quality, geometry, and portal work continued after these early milestones.

Engineering decisions

Separate geometry from landmark estimation

I could have used one combined model that outputs angles. I did not. I can unit-test the math even while landmark finding stays experimental.

Abstain at low confidence

I could always return a measurement. I do not. I do not want uncertainty to become a reassuring shape label.

Keep stub results research-only

I could show morphology labels from stub paths. I do not. I do not want experimental output to look clinical.

Quality check before analysis

I could analyze every capture. I do not. Bad framing and blur make landmark error worse. A retake is cheaper than a false number.

Related pages