Level up: How to become a Senior Software Engineer

Laura Slocum
CodeX
Published in
8 min readMay 18, 2021

--

Level up

You have completed technical training and landed your first job as a software engineer. Congratulations! Perhaps you’ve met a few impressive engineers and you’re wondering “How do I become a senior engineer like them?”. Certainly, time and growth play a huge role, but you could take some actions now to accelerate your timeline.

Read Blogs

Good news! If you are reading this, you have already taken the first step to becoming a better engineer! When we decided to take on this exciting career path, we signed a deal with devil to NEVER STOP LEARNING. We must remember that technology is an ever-moving target. We will never know it all. We will always have something more to learn.

So how do you keep up with it all? The answer is simple. Read. Make a commitment to read at least 1 new article a week. It could be on a topic you are currently working in, or in something new and exciting. Staying on top of the latest trends will allow you to follow technical conversations. You may be able to also join in and speak with facts. Daily dev is a good resource for finding tech articles.

Go to Meetups and Conferences

Have you ever read an article and ended up more confused than you were before you started? Do you sometimes wish you had someone around to discuss the ideas and concepts brought up? Meetups and conferences are a great place to learn a new concept and then ask questions about that topic. You can continue the conversation with others in the talk after it’s over. These are the best places to meet other engineers and network. Head over to meetup.com to find events near you.

Build Your Network

Talking to others expands your world view. You will make new friends, and find new jobs. My network started a discord server. They invited their network, who invited their network, and so on. Now we have a discord chat with everyone from a junior UI/UX designer all the way up to directors. With a range of topics from databases, security, UI design, and more. Whenever I get stuck at work, I throw the question to the group and they help brainstorm ideas. When someone is looking for a new job, or a company is hiring we help each other find the right place/person. Networking and discussing technical topics will launch your career to new heights! 🚀

Ask Questions

I know what you’re thinking. “I don’t converse well with others that’s why I sit behind a computer all day”, or “I don’t want to sound stupid”. Let’s face it. We are all nerds. No one thinks you’re stupid. No one is going to say “that’s a dumb question” in the middle of a tech talk or meeting. If you don’t understand a concept, there’s a good chance others are struggling too. Asking questions to other engineers or architects let’s others see that:

  1. you care enough to ask the question.
  2. you are curious to know more.
  3. you are open to listening to new ideas.

It also showcases what you do know, and the areas you have interest in growing.

I have always been a person who is not afraid to speak up (this has gotten me in trouble a few times). I ask questions and voice my opinions. I have never been accused of being too quiet. I have also watched others who prefer to work from home with their camera off on mute the whole meeting. After a while people forget they even work there. They just quietly do their work and don’t speak up when they have a question or disagree. These are the people who only get cost of living raises. They rarely get promoted. They get left off the “cool” projects and are the first to be laid off.

Why? Because they don’t make themselves noticed. No one knows what they’re thinking, or even what their passions are. If you don’t tell anyone that you really like CSS and want to become a rock star UI engineer, then you are going to get the same API work you always get. If you get upset because your PR’s are always rejected, but you never ask why or how to do better, then it is going to be assumed you don’t want to try. They will give you more remedial work. You have to make your voice heard!

Read the Docs!

We’ve all spent 3 days banging our heads on the same issue only to be left utterly confused as what is going on and why your code is broken. Or, even worse, your code works, but you have no idea how! You’ve googled, you’ve read stack overflow, you’ve combed through git hub issues, but you are still at a loss. Guess what, those boring docs from the people that wrote the technology most likely holds the answer to all your questions. Docs can be dry and hard to read. Narrow your search down to the specific area where you are having problems. If you don’t get any of it, then start at the beginning.

Be T-Shaped

T-shaped people know a lot about one subject, and know some about many subjects. These people are great to be the “go to” person on a topic. They are also useful to help the team out in areas in which they don’t usually work.

Your T will shift and change over time. This is good. It shows growth and a commitment to learn new skills.

In the beginning of my career I was heavy into C# and VBA (Visual Basic for Applications). I did a lot of development work in Excel. My T was still a bit shallow in many areas. When I switched jobs a few years later I got heavy into JavaScript and React. Another job change pushed me into Angular. I write very little C# these days, but I am always available to hop in and help close a card.

Write Good, Clean Code

Having all the knowledge in the world about a subject doesn’t really matter if you can’t execute on it. Getting to the next level is all about the ability to write clear, concise, efficient code. You should follow clean coding practices, SOILD principles, and the standards set forth by your company. Be vehement about writing the best code you can, and it will reflect in the work you produce. Amazing work will gain the attention of the other engineers, architects, and managers. They will start asking you to be in design meetings to get your opinion. Check out my blog on Clean Coding Practices.

Be Humble.

Do not to let this newfound recognition go to your head. We must remember that technology is an ever-moving target. We will never know it all. We will always have something more to learn. Everyone on your team and in your organization is at a different level in their career and life. We all have our own goals. You should strive to not only met your goals, but also help others reach theirs. When a fellow engineer is struggling with a concept don’t scoff and make fun of that person. Instead try explaining things in terms they will understand. Never talk down to someone with less knowledge or experience on a particular topic. You never know when you will be working in a technology they know better than you. Senior engineers are expected to grow the skills of the engineers around them. Be a mentor. Make a friend. Grow your network.

Learn Design Patterns

Learning design patterns is essential to writing maintainable code. An architect’s job is set forth the direction of the company and projects. They will study the requirements of the project and pick design patterns to follow. Knowing what the pattern is when the architect says that is what you are going to use will help you hit the ground running. There are a lot of great resources to learn patterns. The most popular is “Head First Design Patterns”. This book is good to keep handy for when the architect says we are going to use the factory pattern, but you forgot what it was. If you aren’t a reader, Christopher Okhravi has a YouTube series discussing the patterns in this book. While you’re there, you can search for other videos on design patterns. For instance, DevSage has several JavaScript Design Pattern videos. Hint: design patterns are not limited to a specific language. So “JavaScript Design Patterns” will also work in .NET, Java, etc.

Learning to identify patterns when you see them will re-force your knowledge. Try to identify patterns that were used, why they were used, and see if you can think of another pattern that could have been used. This is a fun game to play when it’s the last day of your sprint and you don’t have anything to work on. Weigh the pros and cons of each pattern to see if you can figure out why the architect made the decisions they did. This will help you think like an architect and see the bigger picture.

Learning to think in patterns will help you see the bigger picture and create designs that will scale. This is a skill that comes after years of learning, identifying, and writing these patterns. It is one that the architects have, which is why you should always listen to your architect. That is not say that you shouldn’t ask questions and offer suggestions.

Conclusion

Becoming a Senior Software Engineer is about more than writing code. You must learn to think in patterns, see the bigger picture, mentor others, and stay on top of the current trends. Many of these skills comes with time and experience. You must be diligent to grow your skills to expand your T. When you think you have learned all you can about a certain technology, pick up a new skill. Learn something else. Someone that commits to always learn something new will never find themselves unemployed for very long.

--

--

Laura Slocum
CodeX

Software Architect and UI/UX Team Lead. Learning is my never-ending story.