Writing2 min read

Field Notes

Starting Again as a Junior Developer

What I would focus on if I started again today.

I shipped a feature I could not trace

Early in my career I merged a pull request I barely understood. The UI worked. I could not explain how the data moved from the form to the database.

When QA found a bug, I stared at the stack trace and guessed. That day taught me that finishing is not the same as learning.


The tutorial loop

I was stuck in a tutorial loop. Each week brought a new course. None of them ended with a small system I owned from start to deploy.

Exposure felt like progress. I knew framework names. I could not debug a failed HTTP request on my own.


Breadth felt like competence

I mistook breadth for competence. New tools made me feel productive. The basics were still thin.

Without HTTP, git, and debugging habits, every bug became a mystery. I depended on seniors to close loops I should have closed myself.


What I changed

Pick one stack. Trace one request end to end. Learn git well enough to bisect a regression.

Treat debugging as the main skill. Reproduce, isolate, write the hypothesis, then change one thing.

Finish small systems on purpose. Auth, validation, deploy, and one error path. That loop builds real confidence.


A small debug session

On a later project I ran git bisect after a regression. The network tab showed a 422. The bug was validation that only ran on the client.

Debug loop
What I write down first
Symptom: form submit shows success, row missing in DB
Repro: one user, one browser, staging
Check: network tab → 422, field "amount" rejected
Fix: validation ran client-side only

Finish small loops first

If I were starting again, I would finish small loops before chasing the next framework. Depth on the basics pays off on every project after.


References