All selected work

Software & infrastructure

Account management infrastructure

A shared foundation for user accounts across my applications, designed with future external users and subscriptions in mind.

Personal project · OngoingUpdated 6 September 2026

The problem I’m working on

As personal software projects grow, each one needs a dependable way to identify users and decide what they can access. Rebuilding these foundations for every application adds complexity and makes account behavior harder to keep consistent.

I’m designing and developing shared account infrastructure that can support multiple applications, including Study Agent. The longer-term goal is to let external users access those applications and purchase subscriptions.

A consistent account foundation, with clear boundaries between identity, access and product behavior.

What I’ve implemented

The account service is written in Go with PostgreSQL as its persistent store. Its responsibilities include stable application account identities, permission records and a projection of identity-provider lifecycle changes.

  • Stable account identity. The service maps an external identity to an application-owned account identifier, keeping the two concepts separate.
  • Explicit authorization. The service validates bearer tokens and required scopes itself. Permission decisions are stored separately from their grant and revocation history.
  • Repeatable event handling. Lifecycle processing deduplicates events and records the outcome alongside the resulting account projection change.

Selected engineering decisions

Separate authentication from account rules. The identity provider handles sign-in. The account service owns the application’s account data and domain rules. An API gateway provides a separate routing and authentication boundary.

Preserve history where it matters. PostgreSQL transactions keep related state changes together. Permission history and lifecycle outcomes make changes easier to inspect and reason about.

Treat deployment as part of the design. Service configuration, private network boundaries and database migrations are part of the infrastructure work, alongside the application code.

Where it stands

This is ongoing infrastructure development. Account and authorization foundations are implemented; external subscription access remains a goal. I’m developing the integration between the services and the applications before presenting it as a public subscription offering.

For me, this work complements AI engineering: useful AI applications also need dependable software around them.

Have something in mind?

Let’s connect.

Interested in discussing this project or exchanging ideas?

benjamin@kombotis.comFind me on LinkedIn