I design and build complex, stateful product interfaces.
I turn product requirements into robust frontend systems — with careful state modeling,
clear boundaries, strong contracts, and an emphasis on keeping complexity under control
as products evolve.
Took the frontend from MVP to production for an AI-assisted experiment builder used to
create, preview, compare, and refine website variations through prompts and
human-in-the-loop interactions.
Role
Sole frontend engineer during the MVP. I designed the initial frontend architecture,
state model, AI conversation experience, preview synchronization, manual editing and
compare flows, and the frontend testing approach.
Today, I continue to design most product-facing frontend architecture in a
three-person frontend team, collaborating with a frontend-oriented tech lead on
browser injection, CSP, and CORS constraints.
Coordinated state
Prompt execution
Conversation storage
Experiment state
Local UI state
Generated variation
Preview / compare / manual edit
01
Keep local state minimal
Backend-owned data stays backend-owned. Local state contains only what is required
to reproduce the current interface.
02
Derive instead of synchronize
If information can be computed from existing state, derive it rather than maintain
another mutable copy. Expensive derivations are memoized only when necessary.
03
Design message content for evolution
Evolved human messages from plain prompts into strongly typed structured content
while keeping the conversation-storage service generic. That later allowed richer
messages and HITL flows to be introduced without redesigning the storage service.
04
Make external boundaries explicit
Use generated OpenAPI and GraphQL contracts where possible, strong internal
typing, and Zod runtime validation where external data crosses application
boundaries.
02Earlier product work
Kameleoon
Feature Flags & Experimentation
Joined the team as a junior when the product was primarily a feature kill switch, then
worked on it as it evolved into a broader feature-management and experimentation
platform.
The main engineering goal was not novelty. It was keeping a configuration-heavy
editor stable, maintainable, and predictable while the domain expanded with
experimentation, results, and integrations.
For a period I operated as the sole frontend engineer: making frontend technical
decisions, implementing features, maintaining the product, resolving reported
frontend issues, and participating in GraphQL API contract discussions.
01
Joined as a junior
Implemented scoped work independently with close review.
02
Increasing autonomy
Gradually became responsible for frontend technical decisions.
03
Sole frontend period
Handled frontend feature work, maintenance, reported issues, and API contract
discussions.
04
Moved to AI Builder
After another frontend engineer joined, moved to the new product as its sole
frontend engineer for the MVP.
03Engineering approach
Principles I use to keep complex frontend systems predictable.
01
Keep state minimal
Persist the source of truth. Store only the state required to reproduce the
interface.
02
Derive instead of synchronize
Avoid duplicated representations of the same information. Derive them from
authoritative state whenever possible.
03
Make boundaries explicit
Strong types inside the application. Generated contracts and runtime validation at
system boundaries.
04
Refactor before complexity compounds
Small structural changes are cheaper while the system is still understandable.
05
Design for evolution, not speculation
Create room for demonstrated directions of change without generalizing for
hypothetical requirements.
04Experience
July 2021 — Present
Kameleoon
Middle Frontend Developer
Joined Kameleoon as a junior frontend engineer and grew into independently owning
frontend technical decisions for substantial product areas. Worked first on Feature
Flags as the product evolved into a full experimentation platform, then moved to the AI
Builder as its sole frontend engineer during the MVP.
2021
Feature Flags
Joined as a junior frontend engineer.
Later
Increasing autonomy
Independent implementation, frontend decisions, and GraphQL contract discussions.
Then
Sole frontend responsibility
Owned the frontend side of Feature Flags for a period.
MVP
AI Builder
Sole frontend engineer; established the initial product-facing frontend
architecture.
Now
Product-facing architecture
Continue to design most of the product-facing frontend system in a three-person
frontend team.