Platform engineering · Azure
An internal app platform where shipping a secure tool is as simple as adding a folder.
Staff needed small internal tools — dashboards, workflows, AI helpers — without each one becoming an IT project or a new way for company data to leak. I designed a platform where every app inherits sign-in, access control, a database, secrets and scheduled jobs, so builders only write the app.
- Client
- US healthcare company
- Role
- Platform architect
- Period
- 2026 – present
- Focus
- An app is a folder
- describes an app (app.yaml)
- 1 filedescribes an app (app.yaml)
- resources generated per app
- 7resources generated per app
- lines of login code in any app
- 0lines of login code in any app
access: [ops-team]
database: true
- Sign-in✓
- Access group✓
- Web address✓
- Database✓
- Secrets✓
- Jobs✓
- Launcher tile✓
The problem
Internal tools built ad hoc each reinvent login, hosting and secrets — and every one is a fresh chance to expose company data by mistake.
The people with the best ideas for tools aren't platform engineers. The safe path had to be the easy path, without a review queue on every change.
What I built
- 01
Sign-in is the platform's job
Every app sits behind the cloud's built-in authentication, so anyone not signed in is stopped before a request reaches the app. Apps contain no login code — a bug in an app can't make it public, and builders never touch OAuth.
- 02
An app is a folder
A Dockerfile and a short app.yaml, validated against a schema. Terraform reads every app.yaml and creates the rest: identity, hosting, web address, secrets, scheduled jobs, and a tile in the employee app launcher for exactly the people allowed to use it.
- 03
Private, passwordless data
An app that asks for a database gets its own private Postgres database, which it signs in to with its managed identity. There are no database passwords to leak or rotate.
- 04
Preview, then promote
A merge deploys a new revision at its own URL with no live traffic. The app's maintainer tries it there, then promotes it; rolling back is promoting an older revision.
- 05
Ownership without bottlenecks
CI enforces who owns which app, so builders merge changes to their own apps without waiting for review, while changes to the platform itself stay reviewed.
The result
- Live in production, with access to every app managed from the company directory instead of per-app logins.
- Every design decision is written down with what was rejected and what would make it worth revisiting, so the platform can outlive its architect.