The question that exposed me in 10 interviews


The Applicable Bytes

Career & Growth, Technical leadership & AI for developers

You can have 100 projects of five years of experience in one company, and still not be senior.

Because repetition is not the same as growth. That sounds obvious when you read it.

It was not obvious when I lived it.

After five years of programming, I looked strong, on paper: around 100 projects, a team lead title, and forum administrator credibility from the old PHP days. Those things helped me get my foot in the door in Norway.

But they did not mean I was senior.

They meant I had done a lot of work. That is different.

Here’s the uncomfortable part: a long project list can make you confident in the exact habits you should be questioning.

The first job created the perfect illusion

In my first company, we built about a website a week for around four years.

That is a lot of output.

For a CV, it looked beautiful. If someone asked about experience, I could say “100 projects”.

And to be fair, it was not fake experience.

I learned speed. I learned client work. I learned how to deliver. I learned how to talk to project managers and customers. I also got my first chance to lead people, which went badly at first because my ego was bigger than my skill.

Very educational. Not very pleasant for everyone around me.

But there was a catch.

Around 60 of those projects were probably very similar.

Same kind of websites. Same kind of problems. Same CMS. Same framework. Same route.

And when you drive the same route every day, you get good at that route.

You know the corners. You know the traffic. You know where the road gets weird.

But that does not mean you can drive anywhere.

That was my mistake.

I counted projects, but I did not count variety, difficulty, or fundamentals.

Project count is evidence, not proof

A project list can prove that you showed up.

It can prove that people trusted you with work.

It can prove that you can finish things.

But it does not automatically prove that your skills are deep.

If the projects are similar, they may only prove that you got faster at the same patterns. And if some of those patterns are bad, you are not just practicing skill.

You are practicing debt.

This is where many developers get trapped around five to ten years in

You are no longer a beginner. You can deliver. People trust you. Maybe you even have a senior or lead title.

But your confidence is built inside a narrow environment.

Then something changes.

A different product. A different company. A deeper interview. A system that has to live longer than your usual project cycle.

That is when the illusion starts making noise.

Norway exposed the gap

When I moved to Norway, I thought my experience would carry me.

After all: I had around 100 projects.

I had been a team lead.

I had been active in forums.

I had already survived real client work.

Then I joined a small company in Bergen, and the work changed.

This was not another typical website.

It was an app for one client, and it had to be developed and maintained for many years. Requirements changed. The product evolved. The code had to survive.

My code did not like that.

Not one bit.

Suddenly the old tricks were not enough. The thing that worked fine when projects were small and short-lived started breaking when the product had to keep changing.

I knew one CMS and one framework. But I had skipped too many basics.

Object-oriented programming was weak. Refactoring was scary because changing one thing broke three other things. The code became tightly coupled spaghetti, like WordPress if WordPress had a bad week.

And then the painful sentence arrived:

I was not senior. I was a junior developer carrying five years of bad habits.

That sentence hurts writing, even after 20 years of experience.

It also helped.

Because once you name the problem correctly, you can finally stop solving the wrong one.

Long-lived products reveal the truth

Short projects can hide weak fundamentals.

A long-lived product usually cannot.

When you build a website, ship it, and move on, you may never fully feel the cost of your decisions. The next project gives you a clean start, and the old mess becomes somebody else’s archaeological expedition.

...

You can also watch the longer video:

Postboks 60, Bergen, Vestlandet 5821
​Unsubscribe · Preferences​

Dalibor Jovic

I help lonely developers, technical and AI leaders with their career and with AI adoption. Once every few weeks I send an email about AI adoption, good coding practices and personal development.

Read more from Dalibor Jovic

The Applicable Bytes Career & Growth, Technical leadership & AI for developers A few minutes into my conversation with Anders Dræge, I realized something slightly embarrassing. He has won awards for his AI work. The last award I remember winning was for school electronics, somewhere around eighth grade. And the difference between us isn’t the technology. Anders leads AI development at Frende Insurance in Norway. His AI systems run in production, and together they save over 400 human hours a...

The Applicable Bytes Career & Growth, Technical leadership & AI for developers 20 years have passed since I got paid to code for the first time. Here are few things I’ve learned along the way. Most programmers think a career grows with time. Get a job. Complete projects. Stay long enough. Become senior. I did that. I worked on around 100 projects, became a team lead, moved to Norway, and arrived confident that my experience would open every door. Then I discovered I was a junior developer...

The Applicable Bytes Career & Growth, Technical leadership & AI for developers In this email I reflect on my recent interview with another fellow "Director of AI", Courtney Kingsbury, and we talk about common problems, fears and challenges that adoption of AI brings in two different companies. You might be the only person at your company who gets AI, then you already know the quiet weight that comes with it. Nobody above you understands what you actually do, nobody beside you can check your...