Hey, I’m mar.

I’m a full-stack software engineer. I build interfaces that are delightful to use, on systems that hold up in production.

Experience

Work

Code

Last shipped .

Stack

01Languages

02Frontend

03Backend & Database

04Infrastructure

05Tooling & quality

06Workflow & AI

07Design

Resources

Devouring DetailsRauno Freiberg

The case that interface quality is a stack of decisions small enough that most people never notice one was made.

animations.devEmil Kowalski

Taught me the question is never “does this look good” but “does this feel right”, and that the honest answer is usually no.

How to articulateindex.how

Naming the thing precisely, and tying every choice to its purpose. It is the writing standard for this site, down to the commit messages.

Do Things that Don’t ScalePaul Graham

The permission slip for the unglamorous manual work at the start of anything, and the reason I stopped automating a problem I did not have yet.

Human Interface GuidelinesApple

Still the most rigorous writing on interface behaviour anywhere, and most of it is platform-independent once you stop reading it as iOS documentation.

JavaScript Visualized: Event LoopLydia Hallie

The event loop, Web APIs and the task queues drawn frame by frame. The first time the runtime stopped being a place where my code mysteriously happened.

Increased Exposure HoursJared Spool, Center Centre

Two hours every six weeks watching real people use the thing, for everyone on the team. The closest thing to a silver bullet I have read about, and the cheapest.

Effective context engineeringAnthropic

The clearest statement of where the leverage actually is with agents: not the phrasing of the prompt, but what the model can see when it starts.

easings.devEmil Kowalski

A reference I still open mid-build. Ease-out for entrances, and a curve you can point at instead of a vibe you can’t.

Baymard InstituteBaymard

Large-scale usability research on checkout and commerce flows, which meant I could stop guessing at the parts of a storefront everybody guesses at.

The work of Edward TufteGraphics Press

Data-ink: every mark on the screen should be carrying information. The same argument as removing every border, arrived at forty years earlier.

Debounce vs ThrottleArtem Zakharchenko

Two things I had used interchangeably for years, drawn side by side until the difference was obvious and permanent.

Sam SelikoffYouTube

Long, unedited builds where the interesting part is the decision that gets reversed twenty minutes in.

Elsewhere

More about me, some writing, or the résumé. The quickest way to reach me is email.