Memolane

Building a consumer product and engineering org from zero

Role
Founder & CTO
Timeline
Jan 2026 - Present
Stack
GoPostgreSQLRedisAzure Container AppsNext.jsExpoTurborepoBunElysia

Why I Built This

Every photo app stores images. None of them understand memories. I benchmarked 35 features across market leaders and found the same pattern: storage-first, meaning-last. No one was using AI to surface context - who was there, what happened before and after, how that moment connects to a larger story.

Memolane is built on a simple thesis: your memories have a narrative arc, and technology should help you discover it, not just archive it. The database schema uses pgvector for semantic search across memories - not keyword matching, but meaning matching.

How It Works

The consumer product is a monorepo: Bun workspace with Turborepo orchestration. Elysia API server, Next.js web app, Expo mobile app - all sharing types and utilities from internal packages.

Infrastructure is Azure-native: Container Apps for the API, Azure Communication Services for email automation, Blob Storage for media, PostgreSQL Flexible Server with pgvector extension. Everything is defined in Bicep IaC and deploys through GitHub Actions CI/CD.

Before building the consumer product, I built the company itself. The recruitment platform handles the careers portal, applicant tracking, interview scheduling, admin panel with RBAC, and automated status emails. 34 database migrations. 100+ commits. All shipped by me before the first employee started.

Key Decisions

Go API over Node.js - With pgvector similarity searches, embedding generation, and media processing, the API is CPU-bound. Go's goroutines handle concurrent requests without the event loop bottleneck. I benchmarked both: Go handled 3x the throughput for vector operations.

Azure over AWS - Azure Container Apps give me serverless containers with auto-scaling at a fraction of ECS/Fargate complexity. Communication Services replaced three separate email tools. The student credits didn't hurt either.

Monorepo with Bun - A 5-person engineering team needs to move fast without stepping on each other. The monorepo (Bun + Turborepo) means shared types, atomic PRs across API and frontend, and cached builds that run the full pipeline in under 2 minutes.

Building the recruitment platform first - Counter-intuitive, but hiring 11 people through spreadsheets would have been a disaster. Building the internal tool first gave me a production codebase to evaluate candidates against and onboarding flows that ran automatically.

What I Learned

The hardest part of being a technical founder isn't the code - it's context switching between architecture decisions, hiring interviews, and sprint planning in the same afternoon. You have to be comfortable with nothing being fully 'done' because you're always unblocking someone else.

Hiring is engineering. You're designing a system (the team) that needs to handle load (work), scale (new problems), and degrade gracefully (when someone is sick or leaves). The same principles apply.

I learned that infrastructure-as-code isn't optional, it's survival. When I needed to spin up a staging environment for candidate code reviews, it took 10 minutes with Bicep. Without IaC, it would have taken a day.