Becoming a Great Backend Engineer

What do you mean by great backend engineer and Who is A Great Backend Engineer?

Hello “👋”

Welcome to another week, another opportunity to become a Great Backend Engineer.

Today’s issue is brought to you by MasteringBackend—a great resource for backend engineers: Next-level Backend Engineering training and Exclusive resources.

I missed sending out a newsletter last week and almost beat myself. 🥲 it was the most painful thing this new year because it spoilt my streak commitment of turning you into Great Backend Engineers using this newsletter.

Anyways, talking about Becoming A Great Backend Engineer. You might want to ask.

Who is A Great Backend Engineer?

You can try to guess, but remove your mind from levels of software engineering like Senior, Junior, Mid-senior, Staff, etc., because all these combined don’t make you a Great Backend Engineer.

Additionally, even learning DevOps, Platform Engineering, Frontend, and Mobile, all combined, doesn’t make you a Great Backend Engineer. Do you remember this part in the previous issue?

I said:

“It is a good thing and adds more advantages if you can learn backend engineering, DevOps, or platform engineering, but you can't be called a "Great Backend Engineer" because of these added advantages.”

Solomon Eseme

So, let’s get down to business:

Who is a Great Backend Engineer?

Great Backend Engineering is about specialization and the lens through which you view your backend engineering career.

Levels of Backend Engineering are company-imposed based on your understanding and ownership of certain aspects of their backend systems.

For example, a senior backend engineer at Twitter might be a junior backend engineer at Google.

Companies define their specific criteria to attain seniority in their company, and until you meet this criterion, you will start from the junior level.

So, it is safe to say that the Levels/Seniority of Backend Engineers are company-specific.

However, a Great Backend Engineer is different. Here’s how.

A Great Backend Engineer is a professional who builds the business logic of a system following these three principles:

  1. Team Player

  2. Trustworthiness

  3. Skilled

Now, we know the three fundamental principles of a great backend engineer.

Becoming a great backend engineer

Let’s dig deeper into each of them.

Team Player

When a great backend engineer joins your team, you will know because your team will immediately feel the impact.

A Team player is a backend engineer who actively contributes to their group, listens to their coworkers, respects ideas, and aims to improve the product or process.

Of course, many people have different opinions about what being a team player means and different opinions on the characteristics of a good team player.

There is no argument for that.

However, here are a few generic and important characteristics of a good team player.

  1. Communication (communicate well and listen to others)

  2. Cooperation (work well with other team members)

  3. Ownership (Identify and solve problems without relying much on delegation)

Indeed has great insight on becoming a good team player. Next, let’s look at the second attribute, Trustworthiness.

Trustworthiness

You can call this anything when I finish describing what it means. However, for now, let’s leave it at “Trustworthiness.”

What makes an engineer Trustworthy in Backend Engineering?

Well, there could be different opinions on this one too. For instance, some could say delivering on projects, coding fast, etc., makes a person trustworthy to them. However, look at it from my angle.

A trustworthy person is reliable, responsible, and can be trusted completely.

Bring this into the context of Backend Engineering. A Trustworthy backend engineer follows these patterns:

  1. Must Deliver software that works

  2. Must Deliver software that works well

  3. Must Deliver software that will still work

  4. Must Deliver software that works, works well, and will still work on time

To be a trustworthy backend engineer, you must always strive to be number 4.

Let me explain what each means:

Must Deliver software that works

While you build backend systems, your backend system must meet the requirements.

No matter the lines of code you wrote, the algorithms, the speed of request and response, etc., if the result does not meet the requirement. Then, it is all useless.

A trustworthy backend engineer does not build a useless system; she carefully follows guidelines and requirements and creates a system that works first.

Must Deliver software that works well

So far, you have a working backend system. Of course, following the requirements.

Now is the time to make it work well.

It means trustworthy backend engineers do not only build systems that work based on the requirements but also implement them properly.

They implement the system using good patterns, industry standards, best practices, etc.

These extras (added only when necessary) mean your system works well.

Must Deliver software that will still work

Next, this principle talks about maintenance; some backend systems are not maintainable even though they work.

Your backend system must stand the taste of time and not break when a new feature is added, removed, or updated.

It should be easy to maintain and well-documented with code comments and clean code principles. New engineers should be able to jump on it easily without calling you up.

A trustworthy backend engineer takes pride in building a maintainable system.

Must Deliver software that works, works well, and will still work on time

This is the last principle, the combination of the other principles. This is where you should aim to be when building backend systems.

If you consistently deliver backend systems that work well and will still work on time. Then, you’re a trustworthy backend engineer.

Ali Saeedi wrote something I love on Linkedin in his “Being Reliable as a Software Developer” post. The key points I took out are Attention to detail, Documentation, and Adherence to standards.

Let’s look at the last principle: Skilled.

Skilled

A great backend engineer is someone who is very skilled in backend engineering.

To be skilled involves a lot. It is not just coding but also expanding into products, customers, and business.

This image sums it up and indicates what a Great Backend Engineer is about.

Average Engineer vs Great Engineer

Let me explain:

An average backend engineer thinks all about coding, the different patterns, and best practices to come up with a solution without consulting or considering the business or customers of the system.

However, a great backend engineer understands that we develop based on business, deliver to customers, and work based on the coordination and management of managers.

Therefore, knowledge of other aspects related to the system you’re building, such as the products, customers, and business side, will give you a good direction on how to build the system that meets the requirements.

I can’t mention specifically what to learn in each category because each industry requires different knowledge.

However, the most important thing is having enough knowledge of each to make an informed decision when solving the business logic.

Now, let’s talk about the coding part of the three pillar skillset of a great backend engineer.

Let’s call it “Great Technical Skills.

Great Technical Skills

Let’s look at this together: when someone says “Great Technical Skill,” what comes to your mind?

Well:

Great Technical skills are qualities/skills acquired by using and gaining expertise by continuously performing Backend-related activities.

The key points in that definition are highlighted to give insight into what Great Technical Skill means in this context.

First, “acquired by continuously using” means you can’t become great at something you don’t use or don’t use anymore.

Let’s assume you were good at a specific tool before; once you stop using it, there might be a new version, update, or something new that will give you another learning curve.

So, you have to use something to be great at it continuously. That’s why, to become a great backend engineer, one key thing is to be disciplined enough to specialize.

There is no need to jump between different languages, frameworks, tools, etc. You can do that if your project or company requires it. However, you should have a specialty. One that you’re great at.

Lastly, “gaining expertise continuously” means you must study each technology in-depth enough to have expertise.

You will gain expertise by combining the power of continuously studying and using the tool for an extended period.

I’m guessing your next question will be, “What are the Tech Skills to study?” to become a great backend engineer.

Don’t worry; a different newsletter issue will be dedicated to that. However, let me show you a simple hack I use to study things in depth.

Study Concepts before Tools.

Here are examples of studying concepts before tools:

  1. Study Data Modeling Before Database (s)

  2. Study Distributed Systems Before microservices or monoliths

  3. Study Web Security Before JWT, OAuth, SQL Injection

  4. Study Caching Before Redis, Memcached

  5. Study Autoscaling/Scalability Before Kubernetes, etc

  6. Study Monitoring and Observability Before CloudWatch, GCM

  7. Keep going…

There you have it.

All these have guided me in navigating my backend engineering career. What to Become a Great Backend Engineer?

That is where Mastering Backend Academy comes in:

"We don't only teach you JavaScript. We show you how to build products with JavaScript. We don't teach you to become a backend engineer. We teach you to become a great backend engineer.”

Now, here’s what you need to do. At what point did I mean something? Do you have any questions? Or let me know your thoughts on this one and what you learned.

Weekly Backend Engineering Resources

That's all for this letter. See you next time, and stay safe!

It will help if you forward or share this email with your friends and leave a comment to let me know what you think. Also, if you've not subscribed yet, kindly subscribe below.

Connect with me
LinkedIn | Blog | Twitter | GitHub | YouTube

Join the conversation

or to participate.