Welcome to

Hi, fellow internet people. My name is Ed and I build for the web, from Romania.


5+ years of it so far: 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.


All of it is a side project, so what is here changes without much warning.

Let's chat


This opens your own email app with the message filled in. Nothing is sent from this page and nothing is stored here.

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.


  • Chord detection in real time from whatever notes are held down, 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.
  • Everything stays in the browser. No account, nothing uploaded, and one file that backs up or restores it all.
  • Covered by Vitest and Testing Library, with Playwright for the browser paths and Storybook for the components.

React, TypeScript, Vite, Zustand, Tone.js, Tonal, jsPDF, SCSS

The Keyriff app in dark mode: a chord library, a practice sheet and the piano keyboard

This site

devedco

A place to keep the above, and somewhere to try things without a ticket attached.


  • Eight themes, three dark, three light and two experimental. They swap a set of CSS custom properties and the choice is remembered between visits. The gear in the corner opens them.
  • The resume is a component rather than a PDF file, so it stays editable, and a print stylesheet turns it back into a PDF on demand.
  • A custom cursor that changes shape depending on what it is over, and takes itself out of the way on touchscreens.

Next.js, TypeScript, SCSS

Techs & 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 design, SCSS when I want a structure I control, Tailwind or Material UI when the project already has one. Storybook to document the pieces.


I can give suggestions about better UX/UI as well as receive.

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.


NOTE: my depth is on the frontend. The rest is support, not a second specialty.

Misc


Accessibility and Core Web Vitals, which is the half of frontend that does not 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 of 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.