4 Secrets To Make You A Top 1 Percent Developer

Phillip Hughes
12 min readNov 14, 2023

I’ve chatted a lot on Twitter/X about being a top 1 percent developer.

Loads too, about how to be in the top 1 percent in all sorts of disciplines.

I have a thesis:

Put yourself in the top 50% in two disciplines.

With some ham-fisted mathematics, this automatically puts you in the top 25% in the world.

Then apply it to a niche.

As if by magic your in the top 1%.

For me, this is how I’m applying my thesis at the time of writing this post.

1, Get good at SEO (top 50% in the world). 2, get good a paid ads (top 50% in the world). 3, apply my knowledge to a niche, in my case fishing (one of my business ideas).

How many marketers who are good at SEO and paid ads work for fishing brands? I’d say less than 1 percent.

So with my basic logic. You can see how easy it is to join the one percent club.

Become A Top 1 Percent Developer

But what about becoming a top 1 percent developer?

With ChatGPT and the other A.I. tools that are popping up. On what feels like and hourly basis. Standing out from the crowd is more critical than ever.

Even more so if you’re at a junior level (A.I. will replace entry level jobs).

You need to break through and level up as soon as you can.

I’d talked about certain skills you could develop as a coder. That would help you in the corporate world. But never put them into a set of principles.

Until I saw this tweet:

Now, a lot of people that replied gave very specific and valid advice.

But I went down a different route with my reply.

My advice was from a high level. To give a target, an idea of how someone could put themselves in the top 1% of developers worldwide.

After 20+ years of working as a developer. I’d realised I had 4 overarching principles that I used in my professional career. These even carried over into my own business ventures and side projects.

If you get good at one or two, you will hit the top 25%.

For me, if you become great at the 4th, this will put you ahead of 75% of other developers. In fact, I think you will land in the top 10% by default.

The 4 things, principles I replied with where:

  • Learn clean code principles
  • Get amazing at TDD/BDD
  • Become language agnostic
  • Being able to communicate complex stuff to none tech folk is a superpower

I believe these are so critical, I decided to put them into a blog post, yep this one.

Let’s run through my 4 principles to become a top 1 percent developer.

#1 — Learn Clean Code Principles

In my first programming job I learned a lot about building software.

Looking back now, most of it was how NOT to write code.

I worked for a business where it was about getting stuff out the door. Regardless of the standard of the work as long as it “worked” that’s all that mattered.

We had zero time for upskilling and becoming better as developers.

A lot of the code base became very complicated. Huge beasts of applications. That were becoming a nightmare to maintain and build upon.

One screen in particular. The payment processing screen in the sales system. It was a monster.

No one wanted to touch it, we were all shit scared that we would break it and it would stop working.

After leaving that company. The new business I started with gave me access to Pluralsight, which is an online learning platform for the tech industry. That’s when I started getting great at coding. Starting with learning about clean code principles and the SOLID framework.

I had years of experience both navigating and I’m sad to say, writing awful, unmanageable code.

All the new clean code principles I was learning, I had a frame of reference as what not to do. And this gave me an advantage as I was able to pick up these clean code strategies I was learning and run with them.

I’m not going to run-through the clean code principles. Or the SOLID framework. You can click the links to learn more if you like.

I want to show you how this will put you ahead of all the other developers you work alongside.

Fast Tracking That Promotion

I got promoted to a senior developer without even applying for it.

It’s down to a few things but one was being able to write clean code.

Your boss will want you at a senior level for a lot reasons. First, you can pass on the skills to junior or other developers in the team, taking the pressure of them having to all this knowledge transfer.

Second, they are managing a maintainable code base. So if they have to “get back on the tools”, they know they can get up and running with the code.

Last, and most important for me, is you can maintain your own code.

So many times I’ve looked at old code and said to myself “what was I thinking”. But with clean code. Even if you’ve forgotten what you did. You’ll be up and running in no time.

What’s more, is to non-technical folk it will make you look like a coding machine. Churning our new features and fixing bugs in no time.

That’s down to being able to understand the code in the first place.

Then update and improve it, making sure that it’s still very easy to maintain.

Also for me, it’s the added bonus of getting code “out the door” and into production.

Ship, And Ship Often

There’s nothing I like better than getting stuff done and getting the value out for the business.

I worked with guy years ago. He kept asking for a pay rise, because he thought he was smarter than everyone else in the company. He got what he wanted a few times, and may have even been the smartest guy there. But after 18 months, he hadn’t delivered a single line of code to production.

The moral of the story? Well, the business “let him go” not long after.

If you want to be a top 1 percent developer, start delivering high quality code, and get it into the production environment.

#2 — Become Amazing at TDD/BDD

This is the one thing I have the most arguments about.

And yes, depending on your situation, TDD/BDD may not be the most important thing.

But, for this blog post. I’m coming at it from the point of view that you’re in the corporate world. You’re employed to write and deliver code, professionally. And working as a professional developer. That means you need to be writing unit tests and feature files. Then coding against these tests.

Again, it goes back to a lot of the things I talked about in point #1.

Having unit tests, integration tests and scenarios all coded up. And able to run them in a deployment pipeline is a win win.

A win for your boss and the people running the engineering team

And a win for you. You have confidence in the code you’re writing. A way to make sure you aren’t breaking anything. And a way to prove to the business you’re producing what they ask for.

Become A Problem Solver, Not A Problem Creator

It comes down to “legacy” code.

There are a lot of definitions of legacy code. But for me it’s any code that doesn’t have unit tests wrapped around it.

It’s not about the age of the code. Even if you wrote a line of code yesterday. If there’s no testing around it, that is now legacy code.

Imagine this.

You’ve started a new job. And you find the codebase is 10 years old. Lots of moving parts. The business relies on this codebase for it’s main income. But everyone is shit scared of touching it, including you. However, the business needs a new feature coding, or it’s dead in the water.

You say: “no problem. I’ll work with people in the business (none development folk) to make sure what we’ve got now, will still work, and is maintainable. Before doing any coding on the new feature”.

You start by writing unit tests around the current functionality. Making sure it’s working as expected. From a technical point of view and a business perspective.

Turning Lead Into Gold

What you’ve done here has turned legacy code into maintainable code.

You continue to work with the people in the business that has the domain knowledge. To start work on the new feature.

You start by writing a new suite of unit tests for the new functionality, that can be ran by anyone and show they are failing. Next, you create a load of scenario files about how all the moving parts should work together. Again showing that these test fail.

Finally, you code against all these runnable tests. Making all the failed test now pass, and go green. That’s TDD and BDD.

Which in turn means you’ve updated the code, delivered the new feature, and saved the companies bacon.

If you think this is far fetched. Well, I’ve done this, many times.

That’s the power of learning test driven and behaviour driven development.

#3 — Become Language Agnostic

That first coding job I had. The one I where I mentioned we were delivering shit code. Well the code worked at least.

That development team was split across two programming languages.

Me and 3 others were building desktop based software using Visual Basic. Yes, I know, I’m that old.

The rest of the team, I’d say 4 or 5 others coded the web frontend using PHP.

Now, regardless of which programming language you prefer. I bet you’ve heard, or got into arguments about which programming language is best. Why this one is better than that one.

This team was no different. But, I didn’t get involved.

One task needed a new back end processing system to run from time to time. Usually the PHP team did this as we had a dedicated server for all these processes to run on. But the guys were focused on delivering a new portal. So I decided to take on the job.

This meant I ended up learning PHP.

Code Is Code

So why is this important.

Well you want to be a top 1 percent developer don’t you?

Going back to the start of the blog. My thesis of getting into the top 25% was to learn SEO and paid ads. These are disciplines of marketing. The same industry but a subset of it.

Same applies to programming. Get good at two languages, get into the top 25%.

Become that skilled that you can pick up and learn any programming language. And apply clean code principles we talked about in the first principle using that language.

Well, you’ll clean up.

A new programming becomes popular. Doesn’t matter.

A new framework becomes popular. Doesn’t matter.

A new technology becomes popular. Doesn’t matter.

You’ve exposure yourself to enough programming languages. And, now have the confidence to side step to use any programming language. This means you can also side step into any business or domain that you want.

Regardless of their tech stack.

#4 — Be Able To Communicate Complex “Stuff”

This principle, for me, is the most important in becoming a top 1 percent developer. To get the big bucks.

As I said as the start: “Being able to communicate complex stuff to none tech folk is a superpower”

No matter which business I’ve worked for. I’ve always been able to build relationships within the team I worked in. And across the business, with other departments

Now, there are a lot of reasons for that. I could go on banging my own drum, but this blog is to help YOU become a top 1 percent developer, not so I can “cock swing”.

But to hammer home my point about communication, here’s a quote from Warren Buffett

If you can’t communicate, it’s like winking at a girl in the dark. Nothing happens.”

Warren Buffett

As you know, working in tech, writing code and building software is complicated. It’s takes a certain type of person, and a logical mind.

Now, I will offend some people, but it seems because we are a certain type of person. Sometimes we aren’t great at getting our point across. At communicating.

I’ve even seen tech folk get angry because people don’t understand things that they deem “simple”.

We need to apply empathy here.

Domain Knowledge Isn’t The Same As “Tech Savvy”

In the modern software development world. Product owners, or delivery managers will have a lot of domain knowledge.

It’s their job to figure out what the business needs and to work with development teams to get it built.

Sorry to say this but they won’t be technical. Not to the point the some developers would like.

Again, I worked for a company that had no product management team at all.

I had to do all this myself. By talking to tech support, sales, marketing and the accounts team.

Do you think a highly skilled, high flying salesman is going to know what you’re on about?

Nor should he.

But he will know what the customer is asking for. And that means it could be your job to figure it out and deliver it.

Communication Is A Two Way Street

The first part of getting this right is to get good at listening.

If someone knows you’re listening, that you understand their struggles. And you can relay it back to them, in a simple way, they will love you.

You will be their “go to” whenever they need something.

Also, they will spread the word about how amazing you are.

Management will start to take notice.

The second part, is being able to communicate the complicated in a simple manner.

Again, I won’t go into details. But my top tip is to try and liken it to something they understand.

I’ve watched as a fellow developer talked technical jargon at someone. Explaining how complicated something will be, why it’s difficult. The in’s and out’s of the tech stack. The poor girl looked shell shocked, didn’t know what to do next.

Like A Kid At Christmas

A week later I explained the same process to them. This time I used an analogy of sending Christmas cards.

I said: “You send almost the same, identical card to everyone. With a slight difference of the names at the top of each card are different”.

That was the basic concept of what the system we where working on did, but in a different industry, at scale.

It was amazing, you could see a light bulb appear in her head. To see the difference in her once she understood things.

And what’s more, her reputation in the business started growing too. Which, in turn grew mine even more.

At the end of the day, the less friction there is between figuring out what’s needed to hit the business goals. And then getting that delivered in a professional, timely manner, the better.

If you becoming amazing at communicating. You become the “grease” that reduces this friction.

And that means you become “unsackable”. You become a top 1 percent developer.

Conclusion: Become A Top 1 Percent Developer

If you want to become a top 1 percent developer. To climb up the competitive world of professional software development. It’s not about knowing the ins and outs of a given tech stack. Or knowing every single component of a framework.

It’s far more than that.

Going back to my 4 principles:

  • Learn clean code principles
  • Get amazing at TDD/BDD
  • Become language agnostic
  • Being able to communicate complex stuff to none tech folk is a superpower

It’s about developing professional development skills that a business will appreciate. And that you can use within any business, regardless of the industry.

Giving yourself the ability to side step.

And, the most important in my opinion, is to be able to communicate effectively within anyone in the business. This will put you in the top 10% without even upgrading any tech based skills.

I hope this helps. Good luck getting to the top 1 percent of developers.

Oh, just one more thing. If you’re working as a software developer. And you’re fed up with the amount of shit you have to do, that isn’t coding. You might like my course Productivity For Developers.

It helps you cut down distractions and free up more time to do what you do best. Deliver amazing code.

Originally published at https://www.philliphughes.co.uk on November 14, 2023.

--

--

Phillip Hughes

Tech entrepreneur and side hustler. Founder of elementaryanalytics.com and baitcamp.net. Loves fishing. Plays guitar. Enjoys exercise.