technical leadership and codebase overhaul for AI art startup
Next.js // Tanstack Query // Postgres // Drizzle ORM // Node.js // Firestore // Turborepo // FALTITLES is building a creative studio for AI art workflows, with a node editor for multi-stage generative processes and onchain attribution for artists. I joined the seed-stage company as a senior engineer contributing to product development across the full stack. I quickly identified that the codebase needed significant modernization to support the team's velocity and the evolving product vision. Over the following year, I led multiple overlapping initiatives to transform the technical foundation while continuing feature development.
The codebase reflected years of pivots and engineer turnover. The backend was untyped vanilla JavaScript using Firestore, with hand-written validation and incompletely implemented architectural patterns. The frontend had not kept up with major version upgrades to Next.js and critical packages. Dead code was pervasive but impossible to identify programmatically.
This technical debt posed a fundamental constraint on a rapidly growing team. Complex feature development was challenging because code was difficult to reason about. The codebase struggled to scale to support more engineers working in parallel. As the product vision evolved and expanded, we needed a foundation that would support sophisticated creative tools and protocol-level work, not impede them.
While continuing to ship features across the web app, backend, and web3 integrations, I led multiple technical modernization initiatives:
Spearheaded a yearlong incremental migration on the backend from vanilla JavaScript to strict TypeScript, interleaved with ongoing feature work. Coordinated establishment of concrete patterns and overarching data structure definitions, creating shared expectations for code structure across the team.
When leadership decided to fork the existing repository to unlock faster product iteration, I seized the opportunity to vastly accelerate our database migration timeline. Alongside one other team member, defined a complete database schema using Drizzle ORM, incorporating planned data model improvements directly into the design. Rewrote all database-layer business logic, completely replacing all refrences to Firestore, and set up a branching development workflow and migration CI/CD.
All of this was completed in under three weeks. Managed exceptional project complexity and maintained a high velocity by leveraging deep understanding of both the old and new systems simultaneously.
Consolidating backend and frontend repositories into a Turborepo monorepo and migrating backend business logic into an oRPC router to enable type sharing across applications. This will eliminate an entire class of bugs and developer slowdowns due to server/client signature mismatches.
Collaborated with designer to formalize design system into tokens. Implemented a token system in Tailwind configuration and upgraded to new major Tailwind version. Cleaned up over 1,000 instances of one-off styling values to align frontend with design system.
The modernization efforts fundamentally improved the development experience. Developers can now execute major feature work with confidence, supported by clear patterns and structure that make system behavior more predictable and changes easier to reason about.
The new technical foundation unlocked development of sophisticated features including an in-browser creative studio and complex protocol-level work. Concrete patterns and shared expectations now guide developers toward logically and stylistically consistent code. While difficult to quantify, the transformation is undeniable: the codebase now supports the team's ambitions rather than constraining them.