the software engineer domain expert
Hey ,
I had to learn this the hard way during my software engineering journey.
You'll experience 3 core levels of growth as a software engineer, and this is based on the impact you create at the company you work for, and your expertise over time.
Can you identify which level you are at?
Level One: Tech stack Mastery
When you start out your career, this is where you are. Your main goal is to master the technologies you work with daily.
You strive to become a domain expert in a core role by mastering a tech stack.
This is no easy fit.
There's a mountain of technologies.
Backend roadmap from roadmap.sh
It could take you 2 - 3 years to become very familiar with the technologies in your role, and use them to implement real solutions at your workplace.
If you're at Level One, roadmap.sh is your best friend for the next 2 years, so you can learn the technologies in your role and strive to become a master at them.
Level Two: Problem Solving Mastery
Now this is where things get interesting.
You know how to use React, Typescript, Python, PostgreSQL. What's the use of all of these?
Solving problems for businesses.
That's the entire point of our jobs as software engineers.
What are some problems businesses face?
Here's an example of a problem I solved some months back at work.
Problem: We noticed a lot of users visiting the website landing page waited for 1.5 s and left, simply because the website didn't finish loading. The bounce rate was too high.
Bounce rate is the percentage of users who leave the website after only visiting one page
My job was to explore the landing page, and figure out why the website wasn't loading.
I noticed the backend takes ~ 800ms to respond with the landing page data.
This wasn't good. Could we implement some sort of solution to improve this speed?
In this specific scenario, there were 2 solutions:
- Reducing API response data from 77.4 Kb down to 11.3 Kb which was all that page needed.
- Lazy loading all the images on the home page.
Result: Our website got much faster and we dropped the bounce rate from 24% down to 19%.
This is the new you. At level 2, you deal with solving problems, and measuring the impact of the problem you solved. In this case, our key metric was user bounce rate and core web vital metrics.
What problem did I solve for this business?
Performance.
So if you're at level 2, ask yourself:
What problems can I solve for my business or for my team?
Discuss with customer support, or marketing. Find problems if they aren't obvious. Make that intentional push to become a problem solving machine.
You can only be a great problem solver once you become a Level One Master.
Level Three: Domain Expertise
Domain experts own domains in a business. At the workplace, there's usually a "go-to" person for specific kinds of problems. When a business needs to overhaul how payments are made, they go to the payments domain expert.
This is my level. And it's the most fun.
This is where I am currently growing.
I am striving to contribute more domain expertise to my company. How am I doing that?
By finding what the team and business needs, and leveling up in that domain.
At level 3, you get closer and closer to a specific domain, understanding the history, the architecture, the future vision, and the current problems faced in that domain.
Are you on the journey to becoming a software engineer domain expert?
I am, and I would love you to come on this journey with me.
Thank you for reading this week's letter.
Best regards,
Frantz