The Professional Software Engineer - A Staff Engineer's perspective
In this article I want to give a brief overview of what I think is expected of a Professional Software Engineer, what you should aim for to be good and how you can learn and progress.
The software development world is quite diverse and when I started out as a developer I would have loved to have someone telling me what the real expectations are for professionals. Sometimes those are very different from what is written in a job description.
In my last article I started out with the Junior Software Engineer. In this article I want to continue with the Professional Software Engineer and will explain my point of view as a Staff Engineer of what is expected of people in this role and what you should do to be good!
What is expected of you
The main scope of your influence will still be your team. However, with your extended expertise you will help breaking down features into workable tasks with other team members.
Your main focus will be delivery. You will be the person in the team that pumps out code. The reasons for that are that (1) you are in the sweet spot of having all the knowledge of necessary technologies, (2) you have seen enough in your time as a Junior to know your way around and (3) you are still not being dragged into a lot of meetings, alignments and architectural talks that would reduce your focus time.
What you should aim for to be good
You should start being more prominent in the team. Show yourself! For example, you could moderate meetings which will help you to learn steering the team into the desired direction. This is an important experience which hopefully will end up in a highly welcome decision.
From the rather passive Junior that mostly gets work presented you will need to be more proactive from now on. That could mean making suggestions for improvements, driving topics forward until completion or taking a bigger role in ensuring the wellbeing of the team.
Although your main scope of work is still your team you should start learning about other teams in the company that your team has connections to. Learn how they work with you, what technical interfaces you have in common and how to improve them.
Finally, make yourself visible and ask your manager how you can help her. Usually, managers are notoriously overloaded. Asking how to help her will make you even more visible and shows your proactiveness. Show that you look further than your current Jira ticket!
How you can learn
Everything I stated for the Junior is still relevant for you. Your focus will most likely be on the technologies and tools you use. Depending on your interests, you might want to start looking into topics like (agile) development methodologies or workflows and processes.
Do you have other input about what to look out for when you start a career in Software Engineering? Let me know! I would be glad to listen to it and learn from your experiences. Let's get in touch via Twitter, LinkedIn or good old Email.
Post image taken by Ib Aarmo published under CC BY-NC-ND 2.0.