Skip to content
gail parayno
read and write, split on purposeO.M Farmnext.js portalarticle servicereadagreement servicewriteGraphQLPostgreSQLGoogle Cloud

The portal ships behind a client login, so this is its architecture rather than its screens.

O.M Farm

A year at a US startup building product across the stack: a portal from zero, a legacy refactor, and 30+ features in between.

timeline
jan 2024 to dec 2024
role
junior software engineer
team
remote from ph, startup in washington, usa
stack
react · next.js · nestjs · graphql · postgres · firebase · gcp

Context

O.M Farm is a startup in Washington, USA; I worked remotely from the Philippines as a junior software engineer. Startup scope means the work is whatever the product needs that quarter, which over a year meant two distinct products and the ordinary feature work around them.

Feature work

30+ React and TypeScript features and components for a full-stack product, turning Figma designs into responsive interfaces backed by PostgreSQL and Firebase.

This is the part of the job that the design half of my degree earns its keep on: I can read a Figma file for what it actually specifies, notice where it breaks at a real breakpoint, and resolve it without a round trip.

Portal architecture

I built the O.M Farm Portal (om.farm) in React and Next.js. The design decision I'd point at: separating read and write paths into independent article and agreement services, backed by GraphQL and PostgreSQL on Google Cloud.

Splitting them meant the read path could be optimised for the thing it actually does, serving content fast, without dragging the write path's constraints along with it. Either side could then change without putting the other at risk.

Legacy refactor

For ReplyIntelligence (app.replyintelligence.com) I refactored a legacy codebase into NestJS services, then shipped full-stack features on top of the result across React, Firebase, PostgreSQL, and Google Cloud Functions.

Refactoring is the least glamorous item on any list, and the one that tells you the most about whether someone can hold a whole system in their head. You cannot restructure code you only half understand.