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 finder

Most 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.

The Keyriff app in dark mode: Am7 named in large type, with "A minor seventh: root, minor 3rd, 5th, minor 7th" under it, the held notes A3, C4, E4 and G4 marked R, b3, 5 and b7, a Key menu, "or C6/A" and "next Dm F G", above a keyboard from C3 to C6 where those four keys are litThe Keyriff app in light mode: Am7 named in large type, with "A minor seventh: root, minor 3rd, 5th, minor 7th" under it, the held notes A3, C4, E4 and G4 marked R, b3, 5 and b7, a Key menu, "or C6/A" and "next Dm F G", above a keyboard from C3 to C6 where those four keys are lit
  • 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.
A practice sheet in the Keyriff app on a phone, in dark mode: a Verse and a Chorus of four chords each, with a play button on each section, their first cards nicknamed "home" (C), "the turn" (G), "the sad one" (Am) and "the lift" (F)A practice sheet in the Keyriff app on a phone, in light mode: a Verse and a Chorus of four chords each, with a play button on each section, their first cards nicknamed "home" (C), "the turn" (G), "the sad one" (Am) and "the lift" (F)

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.

Let's chat


There's no contact address yet, so the form can't send anything for now.

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.

Open as a page

Ed

Frontend Developer

Details

Based in: Romania

About

Building for the web since 2020: marketing sites, e-commerce, internal dashboards, a design system and a browser game. Frontend for most of that, full stack these days.

Wherever I land, I end up picking up the complicated part nobody has claimed yet, learning it properly and owning it end to end. Give me a couple of weeks on code I didn't write and I'll be the one answering questions about it.

Work Experience

Full Stack Engineer
2026 - Present

Moved from frontend into full stack work.

Frontend Developer
2023 - 2026

Enterprise web apps with role-based access, a desktop app in Electron, and an internal design system documented in Storybook.

Frontend Developer
2020 - 2023

A SaaS product, a browser game, and checkout flows for enterprise clients on whatever stack each one already had.

Side Project

Keyriff - piano chord finder
keyriff.com

Names the chord from the keys you press, on screen, on a computer keyboard or over MIDI, with practice sheets, playback on a sampled piano and PDF export.

Education

Mathematics and Computer Science | Bachelor's degree

Skills

Core
React, Next.js, TypeScript, JavaScript, HTML, CSS
State, data & libraries
SWR / React Query, Zustand / Redux, React Hook Form, i18next, Leaflet, Phaser 3
Styling & UI
SASS / SCSS, Tailwind, Material UI, Bootstrap, Storybook
Quality
Accessibility (a11y), performance and Core Web Vitals, backlog planning and refinement, mentoring
Beyond the browser
Node.js, Python, Electron, Docker, Azure, JWT
Languages
English - Fluent
Romanian - Native
This is the short version, with employer and client names left out.