I’m Elijah, a product engineer who designs, builds, and ships products end to end.

I build products with a story worth telling and value you can feel. Lumi is my latest, a home for local creatives.

Selected work

Shipped

In the works

  • Corruption · Board gameA board game, in development.Game Designer · In development
  • Corruption · Mobile gameA mobile game, in development.Lead Engineer & Game Designer · In development

Also see the website

Lumi: Mobile app

Lumi helps local creatives find each other and make things together.

Role
Lead Engineer & Product Designer
Launched
2026
Get the app

Problem

The people you need are nearby. Finding them is the hard part.

Every city is full of photographers, musicians, designers, and filmmakers who could make something together. Most of them never meet. Collaborators turn up through word of mouth or a lucky post, and even then, the project scatters across DMs and group chats.

Social apps don’t help much. They’re built for audiences: follower counts, endless feeds, and inboxes anyone can reach. None of that tells you who’s nearby, who’s available, or who actually finishes work.

Lumi is built for the part that matters: finding the right local people, making a clear ask, and seeing the project through to something you can show.

Product

Built for making work, not spending time.

I tested every product decision against one question: does this help someone start, join, or finish a project?

  • Local by designDiscover shows creatives in your city first, with what they’re working on and why they might be a fit, not a global feed.
  • Interest before inboxMessaging opens after mutual interest, a reply to a brief, or a shared project. Following someone never unlocks it, so every message is worth opening.
  • Briefs, not cold pitchesWhen you need someone, you post a brief, review who responds, and choose who to talk to.
  • Proof over popularityProfiles show finished projects and endorsements from collaborators, not follower counts or scores.

Systems

One project, one source of truth.

Lumi is one platform on one backend. The mobile app is built in Expo (React Native), so iOS and Android share a codebase. The web will run on the same NestJS API, which is backed by Postgres (through Prisma) and Redis. The app’s API client is generated from the API’s spec, so the two can’t drift apart unnoticed.

The key decision is that the project is the source of truth. Every change is saved with its event in one transaction, so nothing downstream keeps its own copy of the work, and a crash can’t quietly drop an update. New surfaces, like public project pages on the web, read that same record instead of keeping their own.

  1. 1SaveThe app sends the change, like a milestone marked delivered.
  2. 2One writeThe change and its event are saved in the same transaction.
  3. 3DispatchEvents move from the outbox onto Redis-backed queues.
  4. 4Fan outWorkers update activity, refresh search, and notify, with retries.
  5. 5NotifyThe other person hears about it, from that same event.

Today

Live in the DC area, built to grow city by city.

Lumi is live on iPhone and Android across the Washington, DC metro area. Creatives build a profile, find people nearby, post briefs, and run projects together, and they collect endorsements when the work is done. Now I’m watching which matches turn into projects, and where projects stall.

Next up are public project and city pages on the web, and paid work for local clients, tracked from the first brief to payment.

The long-term goal is infrastructure for stronger local creator economies, where more local relationships become finished projects, steady teams, and paid work. Lumi is a public benefit corporation, and as it grows, it plans to give back to local creatives through partnerships and community-voted grants.

Also see the mobile app

Lumi: Website

Lumi’s public website: what it is, who it’s for, and where to get the app.

Role
Lead Engineer & Designer
Launched
2026

1 · The job

One page, one job.

The site has to explain Lumi in a few seconds and get people to the app. About and Contact open as sheets over the page, so visitors never lose their place.

2 · The craft

An art studio, not a landing page.

The headline cycles through the people you can make things with: artists, illustrators, musicians, writers. Moving the pointer paints a soft brush stroke across the page. Motion turns off for anyone who prefers reduced motion, dialogs work from the keyboard, and dark mode remembers your choice.

3 · Under the hood

A small surface, built carefully.

Sign-ups go through one API route into Neon Postgres. Emails are normalized, and repeat sign-ups update the existing record, so nobody is listed twice. Rate limiting, Cloudflare Turnstile, a hidden bot trap and hashed IP addresses keep bots out without storing more than the site needs.

StackNext.js · React · TypeScript · Neon · Upstash · Turnstile · Resend · Zod · Vercel · Plausible

SyncPoint: Program & financial management

One place for Navy and Defense program teams to plan, fund, and track their work.

Role
Lead Engineer & Technical Product Lead
Launched
2025
Built at
Pioneering Evolution
SyncPoint platform interface showing program planning and financial management workspace.

01 · Problem

The plan lived in a dozen spreadsheets. Nobody could see all of it.

Program offices have to keep requirements, budgets, funding and tasks in step through every planning cycle. When each one lives in its own spreadsheet, every change has to be reconciled by hand, and it gets hard to explain why the plan moved. SyncPoint puts it all in one shared, traceable place.

02 · Product

Built around how program offices actually plan.

  • One thread from need to dollar.Every requirement traces to its planned spending, tasks, owning organization and funding line.
  • History you can defend.Earlier planning positions are saved, so any change can be compared and explained in a program review.
  • The planning cycle, in order.Six connected modules follow the work from first requirement to final report.
  • Fits the systems teams already use.Role- and attribute-based access, configurable workflows, REST APIs and file exchanges.

03 · System

Fast to read, careful to write, easy to trace.

THE PLANNING CYCLERequirementsBudgetAllocationTask PlanningExecutionReportsall modules run on shared backendUNDER THE HOODWeb AppSingle-Page UIAPICQRS · MediatR1PERSISTENCE WELLPostgreSQL · Cosmos DBRedis cacheOutboxTransactional2HangfireWorkers3OpenTelemetry [4]
  1. Reads and writes are split.CQRS with MediatR keeps heavy financial queries away from edits.
  2. No change gets lost.Every write records its event in the same transaction, through a transactional outbox.
  3. Long jobs run in the background.Hangfire workers process them and retry them if they fail.
  4. Every request is traceable.OpenTelemetry follows work across services, so slowdowns are easy to find.
Stack.NET / C# · Entity Framework Core · PostgreSQL · Cosmos DB · Redis · Hangfire · OpenTelemetry

04 · Outcome

One shared view of the plan.

Program and financial teams work from the same data. Changes stay traceable from requirement to funding line, and the platform is built to serve many program offices from one system.