It takes more than great code to be a great engineer. Soft Skills Engineering is a weekly advice podcast for software developers about the non-technical stuff that goes into being a great software developer.
Episode 294: Unqualified internal applicant and speculative specs
In this episode, Dave and Jamison answer these questions:
-
I work in a squad that has been slow in delivering. Squad leadership (including myself) concluded we need a staff engineer (one level above senior engineer) to help guide tech directions and to support other engineers.
Unfortunately we have received only a single applicant- senior engineer “Brett” who’s already on the team. Brett is a good engineer and has a lot of great qualities - but falls short of the “staff” level. Our tech lead “Chris” doesn’t think Brett is suitable due to bad technical decisions Brett has made in the past. Chris also thinks Brett should have been discouraged from applying in the first place. (Brett’s manager is outside the team so has less visibility on what’s happening inside the squad)
We’re suddenly in a bind. If we give Brett the role we are in the same situation as before but having to pay him more.
If we don’t give him the role we run the risk of losing him in this environment - which would be very bad as he is a good engineer!
Should our decision be down to how Brett interviews? What could have been done differently?
-
I recently did some extensive planning for a feature with a back-end engineer where we negotiated what the GraphQL api would look like. As I was finishing up my feature work, I realized that they departed from that plan and didn’t tell me. Now the feature is late. They’re having to make adjustments because the departure from the spec made it impossible for the front-end to handle the data. I’m having to do more work because they used a completely different architecture than what we discussed. What’s even more frustrating is that the end result on the backend is going to be exactly the design that I initially proposed (this is documented), which the backend engineer shot down when I proposed it.
I feel angry that they dismissed my technical expertise. This has also eroded my faith in collaborating with this person. Retro’s coming up. How would you approach retro? What outcome do I even want here? I don’t think more process is going to be helpful (I spent 6-8 hours on the planning portion of this feature). I am starting to wonder if my perception as a primarily front-end engineer prevents the back-end engineers from lending me credibility.