
On Being A Senior Engineer - wyuenho
http://www.kitchensoap.com/2012/10/25/on-being-a-senior-engineer/
======
herval
When I was 19 (at which age I obviously knew everything about everything), I
always looked down at the "senior" guys, they looked outdated, conservative,
full of useless knowledge on things such as Cobol, or C. I eventually got to
make friends with several of the "dinosaurs", and got shocked to discover that
I was paid more than they were.

Fast forward 15 years, I'm now full of experiences. I deployed apps with
billions of transactions per day, led teams big and small, learned that
there's more than one side to everything and that "The True Solution" is
nothing but lack of experience in disguise. Most importantly, I discovered I
don't know anything.

I'm still shocked, sometimes, when I see arrogant 19-year-olds bending reality
to convince people they're right - and getting paid more than us, dinosaurs...
:)

~~~
fruchtose
"I eventually...[was] shocked to discover that I was paid more than [the
dinosaurs] were."

Freudian slip? I think you mean the opposite going by the rest of your story.
;)

~~~
herval
no, I actually mean I was overpaid (or the dinosaurs were overpaid - I'm not
sure) - and so are a lot of 19-year-olds I keep working on from time to
time...

~~~
herval
* I meant "or the dinosaurs were _under_ paid. Ouch.

------
kabdib
> No one should be allowed to avoid the issue by the old formula, “I can’t
> give a promise because it depends upon so many uncertain factors.”

STRONGLY disagree.

I've worked on projects where:

\- Getting a stable build might take four hours (minimum) to several weeks
(depending on churn);

\- Processes for adding components were undocumented magic, and very nearly
undebuggable;

\- Components might take days or weeks to propagate, once you were finally
able to make changes to them.

Debugging is a similar story. Some bugs are nasty, horrible, complex things
that take a lot of time. I've seen showstopper-class kernel level bugs take
months to find. The nature of interactions at the hardware / software
interface is unbelievably complicated.

So what does a "senior" engineer do?

\- Communicate the nature of the problems in a non-whiny way.

\- Give responsible estimates. "Three days or a month" is honest, if you say
why.

\- DON'T promise results that you can't actually deliver.

\- Be prepared to have features cut, and to have conversations about things
that you consider less than optimal ("sucky") for the customer.

Naturally, your senior engineer is also trying to improve the sucky situation
the whole team finds itself in (with better tools, build processes, whatever),
but some situations are intractable.

~~~
DougWebb
The difference the article is talking about is a junior engineer saying "I
don't know and I don't know how to know, so I'm not going to answer your
question" and the senior engineer giving estimates just like the ones you
gave: "a build is at least four hours, but if I'm churning it can take several
weeks".

Junior engineers don't know that an estimate like that is possible to give and
provides value. They're often brow-beaten by lots of project managers who
don't get the value of an estimate like that, who'll just press you for a
single number that you'll commit to, the closer to the low end the better. But
actual business managers can hear that estimate and make a business decision:

    
    
        a) I need the build in 15 minutes for a demo... sounds like that's not possible, so skip it.
        b) I going to need the build to be stable in two months. You'd better get started now, and I should be ok.
        c) Hmm... I need it next week. Seems we have a business risk here. How can we mitigate that?
    

Part of a senior engineer's value is being able to see the business need to
address business risks that are inherent in the question "How long will this
task take", and to respond accordingly. The article touches on this too, where
it discusses holistic contextual awareness.

------
RyanZAG
_" Mature engineers know that no matter how complete, elegant, or superior
their designs are, it won’t matter if no one wants to work alongside them
because they are assholes. "_

I've worked with some assholes that could easily be referred to as mature
engineers. Being assholes or not wanting to work alongside them didn't really
detract all that much as they could get the job done and there was a lot to
learn from them. I'm not sure the author is correct about personality being a
part of a senior engineer - or a senior executive - as far too many of those
seem to be assholes by definition!

~~~
adminonymous
Agreed. Few people here or elsewhere discuss the role of so-called "politics"
in the workplace. You may be referring to those who resort to more than their
engineering skills to get ahead, sometimes ruthlessly.

------
shuaib
Still reading, but before I forget to ask:

"It’s a junior engineer mistake to toss insults about a piece of complex
technology in 140 characters."

Does everyone agree with that? I have seen many senior engineers, specially in
open source world, who aren't afraid to use the 'F word' publicly to insult a
technology, or even an organisation (Linus vs. Nvidia?).

Does an engineer really have to be super formal in how he talks online? Isn't
it fun to be a bit more open at times than what 'maturity' requires?

~~~
orangethirty
Linus is a special case. When your work powers most of the computers out
there, I guess you can say fuck all you want. Plus its not like he goes around
saying fuck to everybody. Its to the people that piss him off. He is a target
for assholes because insecure little bitches will always try and prove him
wrong. Its part of the culture around computers. But hey, if it wasnt for him
I would be using Windows. So fuck anyone who doesnt like the way Linus talks.

------
millerc
"At the peak of your game" after 5-10 years might be true. How would be the
market for a "senior" software engineer of 20+ years experience?

I have a feeling such a candidate would be deemed "too technical to manage,
too senior to be managed".

~~~
fallous
"Too technical to manage" would depend on the skillset of the engineer. If
they're one-dimensional in passion or ability (code is ALL!) then I'd say
that's true, but it's no less true for a guy with 5 years in chair.

"Too senior to be managed" has at least as much to do with the insecurities of
the manager than it does the engineer. If you need to be the smartest guy in
the room, then you'll surround yourself with lesser talent. If you understand
your role of manager is to remove obstacles for those who do their specific
roles then you'll be more likely to search out experienced people that GSD.

------
edw519
"A new idea comes suddenly and in a rather intuitive way, but intuition is
nothing but the outcome of earlier intellectual experience." - Albert Einstein

I've always thought that "earlier intellectual experience" was a necessary but
not sufficient condition to extraordinary work. Each of us gets there in our
own time frame.

------
xiaoma
Apologies if it's off-topic, but it matters for for anyone who wants to read
the link in the article from locations where FB/Twitter are blocked.

Is there a bookmarklet that will get rid of Quora's annoying "you must login
with FB or Twitter" page blocker?

~~~
wyuenho
That Quora thread only has 1 answer by Allspaw. Like he said, it's pretty much
just the condensed version of this post.

~~~
xiaoma
Ah, thanks! I really hate those whited out screens... always make me feel like
I'm missing something. In this case, it was unfounded.

------
taf2
maybe in the next generation of engineering we'll stop trying to classify our
engineering abilities and focus on the building of things in front of us.
We'll accept that it doesn't matter how long we've been doing something
(because we've all not been doing this very long) and we'll realize that even
someone who just started at the "keys" has something for us to learn... (warm
and fuzzy)... at the end of the day we have a shared goal "get it done"(ahmen)

\- mature engineeer :P

------
pdufour
Excellent article.

