Frontend engineer at Storyblok. 5+ year open source contributor to sttm.co.
I lead systems, not just features.
Led frontend development of Storyblok's native A/B experimentation platform β variant story architecture, experiment lifecycle state machines, results dashboard, and analytics instrumentation. Responsible for performance and correctness across the full feature surface.
Owned performance on a structural content merge/diff system. Moved heavy diffing computations off the main thread via Web Workers β ensuring the merge engine doesn't block UI regardless of content size or complexity.
Long-term contributor to a large-scale real-time frontend platform. Key contributions:
- TypeScript migration across a large codebase
- WebSocket real-time integration layer
- SAML-based SSO authentication
- Cypress E2E testing strategy
- Autoplay automation tooling
- State architecture for
sttm-desktop - React integration across desktop and legacy environments
Rules for enforcing architectural constraints at lint time β import boundaries, naming conventions, cross-layer violations. Decisions encoded into tooling instead of documentation.
Technical reviewer for published engineering books β focused on correctness of frontend architecture concepts, system design clarity, and real-world applicability of React and TypeScript patterns.
π Clean Code with TypeScript
π Learn React with TypeScript
π (Upcoming) Production-grade React Applications β performance, accessibility, testing
- React, TypeScript, Vue 3, Next.js
- Real-time systems β WebSockets, event-driven architecture
- Performance optimization β Web Workers, Core Web Vitals, state-heavy UI
- Frontend system design and long-term architecture
- Cross-platform frontend β web + desktop
- Testing strategies β Cypress, Playwright
Systems over components β I think in architectures, not UI pieces
Predictability over cleverness β maintainable state matters more than shortcuts
Performance as a default β not an afterthought
Encode decisions into tooling β if it lives only in a doc, it will be forgotten




