Skip to main content

Portfolio

The proof of a product engineer — a prototype grown into a funded platform, and AI-native applications shipped end to end.

The work spans enterprise product engineering and current, at-the-frontier AI application development. At Capgemini, eight years of frontend engineering at scale — most visibly a transactional email platform she grew from a Storybook proof-of-concept into a fully funded, high-volume production application. Alongside it, AI-native builds that show the other half of her range: a retrieval-augmented LLM application, a real-time system, and an end-to-end commerce platform. The constant is product judgment — build the thing so people can actually use it, and so the next engineer can build on it.

Career timeline

2 roles

Impact case studies

Product Engineering in Action: a Prototype Grown into a Funded Email Platform

Grew a transactional email platform from a Storybook proof-of-concept into a fully funded production application — reusable React components on a Node.js, Redis, and internal-API backend built for high-volume delivery.

Business impact: A prototype became a funded, production platform the business depends on for high-volume transactional email — product judgment and execution, not just tickets closed.

ReactTypeScriptReduxStorybookDesign systemNode.jsRedisInternal APIs

Key decisions

  • Built the proof-of-concept in Storybook first — de-risking the idea and proving the reusable-component model before asking for investment
  • Evolved the PoC into a fully funded production application rather than a throwaway demo — integrated with Node.js, Redis, and internal APIs for high-volume delivery
  • Composed the builder from reusable React components so it stayed consistent and extensible as scope grew
  • Enforced strong TypeScript typing throughout to catch issues early and keep a growing codebase maintainable
  • Backed releases with unit, snapshot, and integration tests (Jest, React Testing Library, Storybook) toward 80% coverage

PoC → Prod

Storybook proof-of-concept grown into a funded production app

80%

test coverage across production releases

SmartTalk AI: a Retrieval-Augmented LLM Application, Shipped End to End

An AI-native application — React front end, Node.js/Express proxy, OpenAI API — with retrieval-augmented generation over user-uploaded documents, streaming responses, and a secure, key-protecting backend.

Business impact: Demonstrates AI application engineering end to end — not just calling an API, but designing the retrieval pipeline, protecting the keys, and delivering a responsive, streaming experience.

ReactNode.jsExpressOpenAI APIRAGVector embeddingsSemantic searchStreamingVercel

Key decisions

  • Designed the retrieval pipeline herself — parse PDFs, chunk content, generate embeddings, store vectors, retrieve by semantic search, and augment the prompt
  • Kept API keys off the client with a secure Node.js/Express proxy that manages requests and enforces CORS
  • Delivered streaming responses with Markdown rendering for a responsive, readable chat experience
  • Persisted chat history with a custom React hook so conversations restore across browser sessions
  • Deployed on Vercel with a serverless architecture for global access

RAG

parse → chunk → embed → retrieve → augment

End-to-end

front end, secure proxy, and AI pipeline

Real-Time at the Systems Level: Sockets, Presence, and a Hybrid Data Layer

A full-stack real-time application with instant messaging, typing indicators, and presence — built on Socket.io with a PostgreSQL-and-Redis hybrid store and session-based auth.

Business impact: Shows systems depth behind the UI — real-time transport, presence, and a deliberate split between fast in-memory handling and durable persistence.

ReactNode.jsExpressSocket.ioPostgreSQLRedisbcryptWeb Notifications API

Key decisions

  • Engineered real-time messaging and typing indicators with Socket.io for instant communication
  • Split the data layer on purpose — Redis for fast real-time message handling, PostgreSQL for durable user data
  • Implemented session-based auth with bcrypt hashing and Redis session management, supporting persistent auto-login
  • Built presence tracking and browser push notifications that alert only when a user is inactive on the tab
  • Deployed frontend and backend across Vercel and Render with CORS configured for cross-origin communication

Real-time

Socket.io messaging, typing indicators, presence

Hybrid

Redis speed + PostgreSQL durability by design

You've seen the work.

Next: How I think