Being a Lead/Staff level engineer is a difficult task. Not so much for the technical aspect, because at this level, the assumption is that you’re well versed enough to handle things, but more so with balancing technical while also leading others.
A true engineer at this level has to do similar things to a traditional people manager, while also taking a more direct approach on technically leveling up the team and codebase. Oh and if that wasn’t enough, there is still the accountability of taking on your own individual tasks as well. Which would typically be the most difficult and challenging. Oh, the fun!
That is definitely a lot, so let’s take a step back, and take a deeper dive into how to better manage all this without running yourself ragged.
Time Management
We already went through the typical day-to-day of an engineer at this level. It honestly is a lot and is just a continuous day of being pulled from multiple places at the same time. So at this level, time management is what set’s you up for success.
There are simple tips to take advantage of to amplify your productivity and work/life balance. Let’s take a quick look at some of these as well.
Calendar Working Hours
Setting working hours on your calendar is great because it creates a boundary. It lets people know who is trying to get time with you know there is a strick finite amount of available time, and they need to be cautious about how they try to fit into it.
Focus Time Blocks
These can be simple blocks of time blocked off with a meeting saying “Busy”. Nobody needs to know the exact details, but they do need to know that you are not to be bothered at this time.
Reacurring 1:1s With Your Team
Setting aside direct time individually with your team members is great because it gives dedicated time. This dedicated time can be used for cooler talk, career progress questions, code review, concept breakdowns, etc. Much better than constant IMs at random times trying to schedule improntu meetings.
Code Guardrails
This can simply be picking a framework with well defined principals and practicies. Writing out documentaion and explaining every step is draining. Strongly defined and documented frameworks do all the work for you and can accellerate development for the junior and more senior engineer alike.
Redirect, Don’t Quench
Steering a team of engineers is like managing a collection of fires. While in nature the worst thing, as we’ve seen in recent years, is a forest fire. However, when strategically planned, fires are a great way to clear ground and create the path we want. Engineers are similar with the code we write, we build applications to push society forward to an endgoal.
So it is important to manage how you direct the engineers you’re leading so that their fire or passions aren’t put out. Instead, steered in the right direction. This could be something as simple as choosing better approaches in communication, or pulling them aside to give them critical feedback appropriately.
Give Appropriate Leeway
It’s important for engineers to have the freedom to move fast, and with some level of automony. However, that must be earned as well. There are some engineers that may not be capable of visualizing the complete archtectual picture, but in pieces, they can move swiftly and efficiently. It’s important to give them some leeway.
However, for those more inexperiences and less capable. You need to tighten the rains. This isn’t because you don’t beleive in them, but because it is what’s best for that person. The worst thing in any organization is someone less experienced having too much freedom and leeway. Majority of the time, because of their inexperience, they get too easily distracted and end up bloating up tasks.
In Closing
The greater the task, the more stress that comes with it. Being an engineer at this level is no excemption. Taking the time to review yourself, and come up with ways to better yourself and those around you, is essential for everyone. As they say, to better and best position those around you, you’ll need to start with yourself first.