Hi, fellow internet people. My name is Ed and I build for the web, from Romania.
I've been building for the web since 2020: marketing sites, e-commerce, internal dashboards, a design system, and a browser game that had no business running as well as it did. Frontend for most of that, full stack these days.
What I seem to end up doing, wherever I land, is picking up the complicated part nobody has claimed yet, learning it properly, and then owning it end to end.
Outside of work I build things nobody asked for, out of curiosity, to get better, and for the fun of it. Have a look at what I'm building, or open the resume in the corner for the work history.
What I'm building
Side projects. Nothing here has a deadline or a launch plan, and I would like to keep it that way.
Keyriff
Piano chord finderMost chord finders show you a diagram for a chord you already know the name of. Keyriff works the other way round: you press keys and it tells you what you just played. Save the ones you like, arrange them into practice sheets, and play the whole thing back.
- Chord detection in real time from the keys you play, on screen, on the computer keyboard or over MIDI, with alternative names for the same shape.
- A sampled Salamander grand played through Tone.js, rather than synthesized beeps.
- Drag-and-drop practice sheets, split into sections with their own tempo and repeat count.
- PDF export that draws a mini piano diagram for every chord in the sheet.
- Your chords and sheets are saved in the browser, with no account, and one file backs up or restores it all. Usage analytics record which chords get played.
- Covered by Vitest and Testing Library, with Playwright scripts that check the built app in a browser, and Storybook for the components.
React, TypeScript, Vite, Zustand, Tone.js, Tonal, jsPDF, SCSS
This site is the other one. It's Next.js, TypeScript and SCSS, with eight themes that each pass a contrast check and a resume that prints straight to PDF.
Stack and tools
Frontend
React and Next.js in TypeScript for most things, with SWR or React Query for data, Zustand or Redux for state, and React Hook Form once a form gets complicated enough to deserve it.
For styling, SCSS when I want a structure I control, Tailwind or Material UI when the project already has one. Storybook to document the pieces.
I'm as happy to give feedback on UX and UI as to get it.
Beyond the browser
Node.js, some Python, Electron when the thing has to be a desktop app, and Docker and Azure around the edges of getting it deployed.
Enough backend to be useful on API shapes, auth and deployments rather than to claim the title.
My depth is in the frontend. The rest is support, not a second specialty.
Misc
Accessibility and Core Web Vitals, the half of frontend that doesn't show up in a screenshot.
Jira and Trello for boards, GitHub, GitLab, Bitbucket and Azure DevOps for the code. Backlog planning and refinement, and mentoring whoever is newer than me.
Also i18next, Leaflet, Phaser 3, and the older stacks I still meet on legacy work: jQuery, Handlebars, Nunjucks, WordPress, Sitecore.
How I work
I like to understand the shape of a problem before I write much code for it. Most of the time I have saved on a project came from asking one more question at the start.
I am usually quickest to be useful on code I did not write. Hand me an unfamiliar architecture and give it a couple of weeks, and I will be the one answering questions about it. That is how I have ended up owning most of what I have shipped.
Feedback early and often, please. Being told something is wrong while it is still a sketch is much cheaper than being told once it is built, and I would rather hear it then.
The bugs I actually enjoy are the slow ones. The stall that only shows up under real data, the render that gets worse the longer the tab is open. They are almost never where the ticket says they are.