Soft Skills Engineering - Episode 344: Showing impact without hiring and over over over engineering
Episode Date: February 20, 2023In this episode, Dave and Jamison answer these questions: I’m a senior front end engineer at a medium sized tech company. During the good times of limitless tech growth, a common way f...or engineers to grow our “impact” (an important criteria at many companies for promotion) was to find ways to lead/manage more people, whether this was becoming a manager and having more direct reports, or becoming a tech lead and mentoring more people, especially interns and junior engineers. Now, with many companies doing layoffs and hiring freezes (mine included), teams simply aren’t growing and there just aren’t as many people to “impact”. What are some other ways to have more “impact” and grow my leadership skills? Both for hitting promotion criteria, but also for my own growth as an engineer that would like to be a manager or staff engineer someday. I am a very senior engineer at my company. There is an engineer on the team less senior than me, but not under me on the management tree. This person is well regarded in the organization, but has a strong tendency to over-engineer things. Normally I don’t mind a little over-complexity if it means that the person leading the project is taking ownership/accountability of the feature. But with this individual, they tend to be put in a place to make sweeping decisions that broadly impact systems when it’s clear that they don’t really have a full picture of what’s going on. To make matters worse… when I raise these points directly, the person will usually offer to accommodate my concerns by further over-complicating their solution/architecture rather than stepping back and picking an approach more appropriate for the problem. Show Notes This episode is sponsored by the original podcast from Red Hat, Compiler. Listen to Compiler: https://link.chtbl.com/compiler?sid=podcast.softskillsengineering
Transcript
Discussion (0)
it takes more than being a great engineer to be unemployed engineer oof this is soft skills
engineering episode 344 i'm your host dave smith i'm your host jameson dance soft skills engineering
is a weekly advice podcast for software engineers of all employment levels and i guess this is my
way of just saying sorry to all those who have lost employment recently however with some of
the severance packages that i've seen advertised it might be a little while before you actually
lose income like several more months yeah i mean i guess if you're going to get laid off
being handed a big pile of cash it's not the worst way right there are worse ways to get laid off
and some people definitely get those worse ways not everybody gets those those juicy severance
packages that's true it's rough out there also i've recently learned just for your fun and
knowledge that a huge proportion of people laid off from some of these big headliner tech companies
are actually not software engineers. I saw someone do an analysis and they concluded that it's
actually not even a majority. In fact, something like 20% or something, which I found surprising.
I guess it kind of makes sense if a lot of the growth, I think, for example, Amazon grew
enormously, but they probably didn't double their engineering team. A lot of it was maybe
on the logistics or warehouse side or something like that yeah maybe all i know is it makes
perfect sense to comfort my own biases that you would not want to lay off engineers yeah surely
we're fine yeah that's the message here surely surely everything is fine as it has been in the
past as it always has been and always will be yeah i want to thank our sponsor this episode
is sponsored by compiler which is an original podcast from red hat discussing tech topics big
small and strange you'll hear more about them later all right i want to thank our patrons
who are contributing at the level where they get a one-time shout out they are joe grossberg
grossberg probably sorry joe and our weekly shout outs are anthony ongaro kent c dodds
oladapofadiyi monkeyface emoji ilove mavis santa hopar jonathan king connie lee bartek
Tatkowski, Nick Cantor, Ira Chan, Jenny Kim,
John Grant, Ganon Denhouten,
Ohio, not to be confused
with Gashokton, Ohio,
Kyle Boz, Brayden Keynes,
The Stochastic Parrot, Valentin, Adetafold,
Cody Sale, Noah Frazier-Logue,
Will Angel, Travis Sanders,
Ernga,
Andres Realis,
Alice Jost, Nick Hathaway, Craig Motlin,
Owen Chartle, testingisdocumenting.org,
patreon.com.au, we're hiring,
and Philip Jambaseel. If you'd like to join this
crew, go to softskills.com.
audio not scoff skills although i just jameson i just thought of a spin-off podcast all right
about scoffing to the domain name registrar okay quick onward to the domain
uh if you'd like to join these folks go to soft skills.audio and click the support on
patreon button and a big thank you to everyone who's done that i'm looking up
canandin hooten ohio and it's possible that one one thousandth of the population of that whole
town is a is a patreon supporter oh it's a real place look at that a small little place i'm sure
we pronounced it i'm sure i pronounced it wrong yeah but on the upside it's not like there's that
many people from there to get mad at you for pronouncing it wrong so it's fine all right
oh should i read our question yes all right this is from a listener named raymond i'm a senior
front-end engineer at a medium-sized tech company during the good times of limitless tech growth a
common way for engineers to grow our impact was to find ways important criteria at many companies
for promotion was to find ways to lead manage more people whether this was becoming a manager
and having more direct reports or becoming becoming a tech lead and mentoring more people
especially interns and junior engineers now with many companies doing layoffs and hiring freezes
mine included teams simply aren't growing and there just aren't as many people to quote impact
what are some other ways we can have more impact and grow my leadership skills
both for hitting promotion criteria but also for my own growth as an engineer that would like to
be a manager or staff engineer someday ah yes i have heard so much about this recently
have you heard about this trend jameson or this kind of trend reversal of recent months the trend
reversal of teams not growing or of that affecting kind of promotion yeah so just i guess both you
know the fact that most company most tech companies at this point are not on the same
aggressive growth trajectory that they were two years ago yeah and so the obvious way to show
impact is gone you know the obvious way used to be 47 engineers do my bidding i am so impactful
yeah and now it's everyone's gone and i don't know what to do like i don't know how to demonstrate
my impact the one number i had yeah yeah you can't just point to a number of dollars like right look
my revenue yeah my the revenue i brought in when i hit my sales quota or often you can't it yeah
that's the dream most of the time in some ways but yeah it's more disconnected than that hmm
well to answer your question i've heard of the first concern of yeah like growth has has slowed
i haven't heard about the second one specifically but it does make sense and i mean i i've lived
this so when i was at a big tech co and i was looking for promotion opportunities i remember
front and center on my promotion material was the number of engineers that I had helped grow
the organization to. It was just so tangible and so concrete, but it was also artificial.
It's like, hey, I hired all these people. It's a brand new area of the product. And I had
essentially free money coming in to pay their salaries. And so it was very easy to hire them
and grow influence. But is it really influence? Did I actually influence those people? Did I
actually influenced the product in a way that actually generated business or value you know
and it's also like really somebody else couldn't have also hired people with free money like right
exactly yeah here's four million dollars to show yeah it's tough to show how that is like unique
to you specifically look i took your four million dollars and i bought a whole bunch of nikes look
at all the impact and influence i had on these shoes they are beautiful yes sneakerhead thought
leader yes i think you are asking yourself this question probably your company is asking itself
a similar version of this question which is like wait without free money how do we grow how do we
do anything yeah so this is not a unique problem to you this is one of the one of the kind of
trickle-down effects of of changing tech climate it seems like actually in the united states at
least the economy seems to have had some encouraging signs but i think there's certainly been a shift
in in tech is not back where it was a year ago for sure yeah maybe it's a bit of a realization
less than a change in in material conditions so ask your ceo what their plan is for your company
and then do that for your career to show impact that's my advice yeah excuse me how are you going
to grow the company with or how are you going to show impact from the company without endless free
money coming in yeah and how would i do the same thing right and your ceo might very well say my
job for the next two years is to keep this company from dying that's hard to i mean it's hard to get
a promotion because you survived yeah probably your ceo won't say that even if they're thinking
that's true because that's true they they like to speak in more inspirational terms about the
unique opportunities ahead of us but that is very possible oh man there's also i mean that is kind
of a flip side here where if there are layoffs probably the total amount of work has not
decreased like there's there's more stuff to do and certainly not the per capita amount of work
right yeah yeah exactly yeah like there's uh there's opportunities for impact out there it
might be more like take over this thing that that the team was laid off for or i don't know step in
and fill some of the gaps that have been created yeah like head off disaster like oh hey i just
found out an entire team disappeared there is now a piece of software running without attendant
attendance and they had a process where they had to restart it every two weeks or it crashed
and i just found out about it and today is day 13 of 14 their software gets tired right like it needs
to rest like we all do yeah and we all get two days at the end of every week yeah
think of how tired the garbage collector is it's been running non-stop all that garbage
actually the problem is the garbage collector isn't doing anything
and that's why it has to be restarted every 14 days yeah
it gave up it was laid off the garbage collector was laid off i was just thinking about all of the
memory that is supposed to have been freed but there's this lingering reference to it somewhere
so the garbage collector doesn't collect it and instead we put in place a process to restart it
I mean, I think that's called Ruby in like 2007.
Yeah.
Restart the process every hundred requests.
Every day.
Yeah.
Actually, that is a real thing.
A lot of these container services that run these languages in many forms, not just Ruby,
but they actually have a configuration where you can specify how many web requests you
want them to handle before restarting the process.
I'm like, why does this exist?
You wouldn't want to get them overwhelmed.
Yeah, exactly.
it's because i mean turning it off and on again is a universal solution at all levels of
abstraction yeah everywhere on the stack it makes sense yeah i had an idea and then i started talking
about ruby what was my idea okay here's here's my idea i knew in this time of constrained resources
if you can show impact on revenue or increased efficiency like large impact on cost cost
reduction you can show you're doing yes more with less or the same amount with a lot less yes or
somehow despite the downturn in in uh like in in tech in general here's like look this part is
going better because of me look at my all my revenue um i was that's i was gonna say the
exact always important but it's gonna be more important now um i was just gonna say the exact
same thing take all those charts that you've been using to show your impact where they go up and to
the right you gotta do a total paradigm shift and find cost charts that go down into the right
that's what you need now yeah i mean especially in in startups growth is always more attractive
than cutting costs because there's this vague idea that like and we'll figure out how to cut
costs later once we grow enough but it's it's i don't know if you can go clean up a whole data
center worth of of instances in a cloud somewhere that weren't important then but now are are that's
a very tangible impact you can show sometimes it's easier to know like what specifically can i do to
cut costs i i i think if you're talking about promotion and and growth though it's gonna have
to be on the order of like hundreds of thousands of of dollars like if you go turn off a service
that costs 60 bucks a month i don't know nobody's gonna care so the magnitude will will need to be
large, but it's possible. It's possible those opportunities have not been explored yet because
of it wasn't worth it before. Now it is. Yes, absolutely. And I do not underestimate
the value in this economy of reducing your company's costs because it really can make
a big difference, especially if you're a smaller company and you know things. I promise you,
you as an engineer know things about the costs of operating your software that other people
probably don't know. And you may be assuming that the costs are the way they are and they've
been carefully reviewed and optimized and they cannot be improved. But don't make that assumption
because there's a very good chance no one has ever looked. Because in the last 10 years,
no one had a reason to look. Now they do. So I totally agree with you, James. And I think
cost reduction is a huge one. Just go open up your AWS console and start poking around at the
bill and asking questions on the other hand i'm going to undermine my own advice probably the vast
majority of your costs are employee salaries so there might be a limit to how much say you reduce
your aws cost to zero maybe that buys you like i don't know another month yeah yeah exactly those
two people might not be at large though yes now they're uh going back to computing on pieces of
paper like yeah like it started out as the other thing another way you can do this is to identify
like whole swaths of things that you are doing that you can stop doing to invest more in
important areas often it's it's hard to it's painful as well to look at like a project that's
been going on for a long time or i don't know a product that's that's been invested in and is
doing okay, but asking, what if we didn't do this? And then put all that effort towards something
that seems more important or feels more successful. And I'm just going to guess that that kind of
question you're asking is maybe above the pay grade of the question asker, but that's something
you could actually bring to the attention of your leadership. Help them understand the cost of
operating the software they have so that they can make decisions about the software they want to
have yeah that's that's definitely on your leadership's mind or it should be but i think
your perspective as an operator of the software can be useful as well maybe there are maybe the
ceo assumes oh we we can't get on without the foobar service right we've always had 10 people
working on the foobar service and you know really like i don't know we could have two people working
on it yep and suffer these costs that are worth it and congratulations you just caused eight of
your coworkers to get laid off. Yeah. I mean, that is a possibility. Tread cautiously. Okay.
Well, I think, I mean, some of, some stuff hasn't changed, right? If you can show impact on business
outcomes, if you can show we built this thing and then it, it, I don't know, sped up customer
acquisition or like the more you can tie it to concrete things, the more important, the more
impactful it is and and and more the more the better of a case it is for promotion that's true
regardless of it is what is going on in the economy but you that might be your only option
now instead of kind of look at look at all these people i helped hire right exactly with that being
gone look at all these people i helped hire to cover up the fact that i didn't do anything else
this year you know yeah i mean it is it has been interesting so we've done some hiring freezes uh
Or slowdowns at my employer as well.
And boy, does hiring take a lot of time.
Yeah.
So there is some like added efficiency and focus that comes from saying this is the team we have.
And we're not going to spend like a quarter of our time growing the team or trying to grow the team.
It'll be interesting when that.
I feel like it'll be like when some of the pandemic restrictions got relaxed.
and people went back to parties
and had to figure out how to be social again.
I feel like some places might have to figure out,
oh yeah, how do you interview again?
How do you be a business?
Yeah, how do we do this?
Yeah.
I think the name of the game
for the next little while is focus.
Choosing to focus carefully on the areas
that yield valuable outcomes
and avoiding areas that don't.
And sometimes it's not even a matter of bad versus good.
It's just high value versus less high value.
And I can't give specific details to this question
asker, but that's the mindset that I would adopt right now. Yeah. All right. Have we answered this
question? I think so. Good luck. Have you heard about the podcast from Red Hat called Compiler?
Yes. Red Hat Compiler just launched a new series called Reroll, where they describe different jobs
in a software company, starting with the CTO, then architect and more. They've not mentioned
the office prankster yet, which is a miss on their part. It's an essential role at any startup.
That's true. They also have a series on software technology stacks describing databases,
programming languages, front-end frameworks, back-end technologies,
and even test frameworks. It's a pretty cool series.
Compiler comes to you from the makers of Command Line Heroes and is hosted by Angela Andrews and
Brent Simineau. Listen to Compiler on Apple Podcasts or wherever you listen to podcasts.
We'll also include a link to this show in our show notes.
Do you want to read our next question, Dave?
Yes, I do. This comes from an anonymous listener who says, I am a very senior engineer at my company. There is an engineer on the team less senior than me, but not under me on the management tree. This person is well regarded in the organization, but has a strong tendency to over engineer things. Normally, I don't mind a little over complexity if it means that the person leading the project is taking ownership and accountability.
but with this individual they tend to be put in a place to make sweeping decisions
that broadly impact systems when it's clear that they don't really have a full picture of what's
going on to make matters worse when i raise these points directly the person will usually offer to
accommodate my concerns by further over complicating their solution rather than stepping
packing picking an approach more appropriate for the problem oh man ah what we lack is a generic
plug-in framework for the concern accommodating pattern off to build that and then the idea will
fly free oh and then i just realized in order to build that plug-in framework i need a plug-in
framework framework so that i can produce these plug-in frameworks more efficiently because i'm
constantly needing great plug-in frameworks yeah isn't it isn't it amazing how easy it is to
overcomplicate things yeah and it's fun sometimes too fun like a lot of the appeal yeah like a lot
of the appeal of software is is you're you're you're putting together these imaginary puzzles
you're building these systems and and i don't know it's it's fun to tinker with stuff and and
i suspect the person you're talking about doesn't think i'm going to overcomplicate this they they
might think like this abstraction here will make this this future problem easier to solve or avoid
i don't know like they probably have a reason but also it's easy to think of reasons to do stuff you
want to do when really like you just want to do it because it's fun yeah because i was like i like
working on this i don't care about the outcomes yeah i love that you came up with a joke about
complaining to someone about them being overly producing over complex solutions by producing
just the exact perfect overly complicated solution ah i'm just relishing in that beautiful thought
thank you i i i appreciate that dave that makes me feel good you're like i've thought a lot about
this i have a couple suggestions one suggestion is a refocusing on getting something to production
and and building upon that part of what is happening here i think is is your co-worker is
is designing software because they're attempting to anticipate what the requirements are and
that's always hard and having a firm dose of reality in the form of like people or systems
using your software in in a real environment is is a good counterbalance to your imagination of
what the requirements are not every problem lends itself to this solution but it's i think it it's
easier it applies more widely than you might think like i don't know say you're building a database
right you might think well it's hard to ship a mvp of a database but now i have to think of how
you can ship an mvp of a database in real time hang on give me a second i mean and maybe you'll
say like i don't know we we need we want a process running on a server by the end of the day and
maybe it just like pipes everything to dev null, but there's, there's something running somewhere
like the, the, that feedback loop of, of getting something out and, and iterating upon that
instead of trying to, to complete all of the requirements maybe ahead of time, or, or, or
let me try this again. Hang on. I'm going to use an example at work recently. So a team at work
had a project to build and the way they went about building it was like put out a mock of
the project and then gradually kind of fill in pieces with real functionality all right where
the mock was not it was not just like a visual like a ui mock there was there's some apis that
had hard-coded responses and like things like that but but at every step of the process the
team was trying to think like, how can we deliver this and make it more real rather than how can we
exercise this code in production? And that had a very powerful impact on the design where we ended
up doing some pretty different things than we were originally considering that we thought would be
important at the beginning of the project because we realized, oh, we don't need to do this.
Turned out, not only were they not important, you didn't even need them.
yeah we didn't need them it was good enough without them or a new solution that was easier
appeared when we when we got into production that kind of thing so so i think i'm rambling a lot but
the point of my ramble is real information about real usage earlier can can help avoid
over-engineering i agree i was thinking that anytime this person has an idea that you think
is over-engineered just send them a link to a video of a rube goldberg machine that feels a
little passive aggressive i mean you could take it as passive aggressive or you could take it as
a real awesome system that like you could actually find a whole collection of like 10 different rube
goldberg machines from simple to extremely complex and then send them the one that best represents
their particular solution today yeah there is a way to do this wrong i'm going to preface what
i'm about to say with that but okay constraints in the form of like goals for when to ship by
can be helpful here if you want to ship a thing in three weeks then there's a limit to how much
over engineering you can do ah this again this can turn bad and you can get into just like sprint
furiously and never build good abstractions mode and and just drown in tech debt but yeah a goal
date i'm not using the word deadline because if you're saying we want to ship in three weeks
that's a thing that you said so it's not really a deadline but okay but that can that can help
clarify what's important and and what isn't and and what you can add later and depending on the
company and and the problem domain it's possible that one of the outcomes here is like nobody ever
uses this thing yeah it is possible in which case any like the most important thing to find out is
does anyone care um and and any over engineering is just a huge waste because if the answer is no
then you want to know that sooner than later true i mean that's if you have like a large
established business with a clear need of i don't know if you're like updating your your fleet of
servers to a new version of linux or something like that then that's that's not like an mvp
kind of yeah well what you're saying yeah i could over engineer it what i'm saying is is that's not
like a startup like see if the market wants this thing type of situation but in that case i would
say like i don't know get one server upgraded today and see what that took and then like don't
if you can't start until it's all done that is a problem are you still there dave i just got a
message about being disconnected from the internet all right well have we answered the question
i think so i mean have we it was more of a philosophical question
that was rhetorical you're saying your question of have we answered the question was a rhetorical
question yeah it was just a polite way to get you to say yes oh well i'm not gonna say yes i'm gonna
say no because i have another idea okay so we've talked about kind of how to change the the
incentives and system around this person but the time-honored tradition of just talking to them
is also on the table have you considered saying hey i've noticed you tend i think i see a tendency
to over engineer stuff yeah like it's it's one thing to say this solution is over engineered
and it's another thing to say you as a person have a problem you know yeah and that's certainly
harder to say but you are a very senior engineer at your company i think part of the job is to use
that super seniority to to lend your wisdom to people and see things that they might not be able
to see because maybe this engineer doesn't doesn't see that it's called mentoring right
that's what it is yeah there's a lot there about kind of the relationship and trust to build to
make that go over well and uh we're gonna skip that yeah just assume that's all there already
yeah i'm sure you'll do great but yeah never never underestimate the kind thoughtful direct
approach of of i've seen this pattern can we talk about it yeah i i agree in a way the fact
that you're not their manager you're not in the management hierarchy for them but are just very
senior that that might make this easier because it's not like you coming down on them to get them
in trouble it's more like a yeah you're helping from the side that's right and i and i would
couch it in terms of i'm trying to couch it in in um the motivation of i want to help you
have a more successful career and i believe that you have a habit that is going and maybe even a
blind spot that is going to limit your success so this isn't me just coming down on you because
i don't like your over-engineered designs which i don't but i also want you to be successful
yeah all right now we've answered the question i'm not even gonna leave room perfect for doubt
no i'm certain we've answered the question certain 100 certainty achieved
dave what can uh what can people do if they want their own questions answered go to soft
skills.audio and click the ask a question button where you can fill out our little form and we must
say from the bottom of our hearts thank you thank you so much for all the people who submit questions
every week we love you we love your questions and you have our commitment to try to answer all the
questions one day i think we some we might just like try and crank them out real quick on our
deathbed though quick pull up the spreadsheet of my dying breath get out of the way family
i've already said goodbye there's something i need to do before i go
quit your job quit your job quit your job quit your job quit your job maybe we should just
answer them in the spreadsheet and just send it out to the world
okay all right that sounds like a plan thank you for listening we'll catch you next week
