I am a freelance design engineer working on interfaces, typography, and small tools. I build products end-to-end: design, code, and the small details that make software feel resolved.
Currently taking on new client work. You can book a call or write to me on Telegram.
Work
- Hanoa Studio - Design and development work for startups.
- Loftlyy - Collection of real-world brand identities.
- Ikiform - Build Forms, Collect Responses & Analyze.
- HextaUI - Extended Components for shadcn/ui.
Experience
- Emergente Labs - Design Engineer
- SolCard - Design Engineer
- TextCortex - Design Engineer
- 21st - Brand Ambassador
- Inbound - Design Engineer
Writing
- Why Great Creative Work Still Feels Chaotic to Clients
- Client Portal vs Project Management Tool
- Why Clients Keep Asking “Where Is The Latest File?”
- The Messy Middle of Client Work
- What Is a Client Delivery Workspace?
- The browser is part of the design toolchain
- Design systems are decision systems
- Every component needs a stress test
- The difference between polish and decoration
- Why your dashboard feels heavy
- The hidden design work in form validation
- Design engineers should test with ugly data
- The button is not done when it looks done
- Why pixel perfect is the wrong goal
- Design QA should happen before the pull request
- Progressive blur
- Optimistic UI without the lies
- Stop managing focus traps manually
- Scroll-driven animations without JavaScript
- Accessible by default is easier than accessible by audit
- Prompt workflows in production
- Prompt engineering is system design
- Why button labels should not change width while loading
- Tabular numbers
- Skeleton, spinner, or nothing?
- Empty states that actually help users
- Why most loading states feel fake
- Design to code is a skill
- How to think like a design engineer
- Micro-interactions that matter
- You don’t need useEffect
- Spacing systems that make interfaces feel calmer
- Finding the overflow culprit
- Truncating URLs the right way
- What designers mean by “this feels off”
- Clean imports in Next.js
- Get the default font size