My Projects

Here are some of the projects I've worked on, showcasing a range of technologies and impacts.

Promptly

Role: Creator & Maintainer

Problem & Impact: Managing AI prompts in production was fragmented and error-prone, with no clean way to version, test, and reuse prompts across projects. - Enabled teams to treat prompts as first-class assets with versioning, templating, and testing, cutting iteration cycles by over 60%.

Tech Stack: Ruby, Rails, Liquid, ERB, RSpec

Outcome: Streamlined AI development workflows with reusable, testable prompt templates integrated into CI/CD pipelines.

GemGuard

Role: Creator & Maintainer

Problem & Impact: Ruby applications often rely on unverified gem dependencies, exposing projects to security and supply chain vulnerabilities. - Introduced automated Software Bill of Materials (SBOM) generation and dependency validation, securing the gem ecosystem with minimal developer overhead.

Tech Stack: Ruby, CLI, CycloneDX

Outcome: Provided developers with an easy way to audit and protect Ruby apps against compromised gems, improving security posture with actionable insights.

GraphQL API Starter

Role: Creator & Maintainer

Problem & Impact: Bootstrapping a GraphQL server with Prisma, CRUD resolvers, tests, and type safety is repetitive and error-prone across projects. - Offered a fully typed and tested GraphQL starter kit using Prisma, Pothos, and GraphQL Yoga—eliminating boilerplate and accelerating initial setup.

Tech Stack: TypeScript, Node.js, Prisma, Pothos, GraphQL Yoga, Jest

Outcome: Enabled rapid prototyping of GraphQL APIs with type-safe CRUD operations, seamless JS↔TS migration, and built-in testing support.

Theory (Go)

Role: Creator & Maintainer

Problem & Impact: Go developers often lack a simple yet flexible ORM that doesn’t overcomplicate domain modeling across services. - Delivered a lightweight, intuitive ORM specifically tailored to Go’s language idioms—making data access cleaner without heavy abstraction.

Tech Stack: Go

Outcome: Streamlined data layer development in Go codebases, reducing boilerplate and encouraging clearer persistence patterns.