All projects
01

Product engineering · modernization

PhotoGram

A real photo product shaped by the work of untangling legacy code, data contracts, and runtime dependencies.

Validation in progress
Period
2021 — present
Role
Product engineer
Actual PhotoGram product screen
PhotoGramActual product screen

Problem

01

As a product grows, it becomes more than a codebase. Data contracts, infrastructure dependencies, and earlier runtime choices have to keep working together.

Constraints

  • Modernize the runtime without losing existing behavior.
  • Treat migrations and health signals as evidence, not promises.
  • Keep the path reproducible across local, CI, and server environments.

Engineering decisions

  • Keep schema changes explicit through Flyway migrations.
  • Make DB, Redis, media storage, liveness, and readiness part of the runtime contract.
  • Verify the application with its service dependencies in CI.

Implementation

  • A Spring Boot application built with the Java 25 toolchain and Gradle.
  • MariaDB, Redis, media storage, Actuator health groups, and Docker Compose runtime definitions.
  • React client work and backend contract tests remain separate verification surfaces.

Verification / evidence

Repository baselineobserved

The source repository contains the Java 25 toolchain and Gradle build.

Verification pathobserved

The CI workflow checks build, service health, migrations, and test reports.

External deploymentdeferred

Public deployment state remains a separate live verification target.

Result / current state

PhotoGram is the first case study: a product shown through its modernization decisions and the checks that support them.