Skip to content
Barmaj

Real projects, real work

You inherit a codebase somebody else built, with the decisions they made and the debt they left. That is the point.

You inherit a codebase somebody else built, with the decisions they made and the debt they left. That is the point.

Not tutorial projects

The work you have never been given

No blank folders. No finished specifications. No projects that exist only to be finished.

Bug

A production bug

Reported by a user, reproduced from a vague description, fixed without breaking three other things.

Refactor

A legacy refactor

Code that works and nobody wants to touch. Change it without changing behaviour.

Feature

A feature request

Written by someone who is not an engineer, and missing the three details that matter.

Performance

A performance problem

Something got slow. Measure before you optimise, and prove it got faster.

Testing

Testing debt

A module with no tests and a history of regressions. Decide what is worth covering.

Architecture

An architecture decision

Two reasonable options. Pick one, write down why, and defend it in review.

Incident

An incident simulation

Something is broken now. Diagnose under time pressure and communicate while you do.

Debt

Technical debt

A shortcut somebody took, and the argument about whether now is the time to pay it back.

Review

Reviewing someone else

Reading code you did not write and finding the useful thing to say about it.

The gap

You learned React. You built projects. Nobody taught you how software teams actually work.

Every rejection email says the same thing in different words: we were looking for someone with more experience. The gap is not knowledge. It is everything that surrounds writing the code.

Tutorial world

Real engineering

The requirements are complete and unambiguous.
The ticket is ambiguous, and asking the right question is the job.
You start from an empty folder.
You start in a codebase somebody else wrote, with its own conventions.
You are the only person who will ever read the code.
A senior engineer reads every line and asks why you did it that way.
It works on your machine, so it is done.
It is done when it is reviewed, tested, merged and did not break anything.
You decide what to build and when.
Work comes from a backlog, gets refined, estimated and committed to a sprint.
Nobody disagrees with you.
Someone disagrees with your approach, and you have to make the case.

You don’t need another tutorial.
You need experience.

Applications are read by a person, and places are limited by how many pull requests we can review properly each week.

Apply to Barmaj
Real projects, real work · Barmaj