4 ms·
I thought that the following was worth re-quoting here: >"Beyond these fundamental requirements, every great engineer that I’ve worked with brings distinct add
by peter_d_sherman 3y ago
I thought that the following was worth re-quoting here:
>"Beyond these fundamental requirements, every great engineer that I’ve worked with brings distinct additional strengths. Just to pick a few examples, they might:
o Know every line of a multi-million line codebase and be able to diagnose a bug without even looking at any code.
o Be unrelentingly optimistic and never give up on a goal, even if it takes years to come to fruition.
o Crush any obstacle that comes between them and done. Before lunch.
o Be a grizzled vet who has shipped so many things that they help the whole team make great tradeoffs… or be relatively new, but so motivated that if you take a chance on them, they will repay it 10x.
o Bring a completely different perspective that changes how you think about a problem or a whole project.
o Reduce your stress level because you know that anything that lands in their lap is 100% handled.
o Make the team so fun that everyone can’t wait to get to work, or loves to hang out together outside of work.
o Have a knack for isolating and eliminating the nastiest, most difficult to reproduce bugs.
o Have the empathy and passion for education that makes them great at mentoring interns and less-experienced but promising newcomers.
o Be so incredibly committed to your product that they will stretch in unexpected ways to make it a massive success.
o Engage directly with users to turn them into evangelists and help the whole product team learn what they really need to build.
o See the big picture of the architecture you are building and save the team years of wandering the right way down the wrong paths.
o Be emotionally intelligent in a way that recognizes when colleagues need to talk about something difficult, or even initiate those conversations that would be easier to avoid.
o Be passionate about growing the team and help you identify and interview terrific candidates.
o Read all the blogs and be aware of the bleeding edge of tech. (Bonus points if they have enough taste and self control to know when to actually use the bleeding edge of tech).
o Challenge you and call you out — very publicly if need be — when you are being a jackass.
o Love to put on the headphones and knock out impossible features, impossibly fast.
o Have a sensitivity to user interface that allows them to collaborate unusually effectively with designers.
o Be a tool builder who will continually make your team more efficient.
o Communicate effectively to other technical and non-technical teams.
o Surprise you with futures and prototypes you’d have never thought of."
- turtleyacht 3y agoThank-you. Steve Yegge expands on this with Done, and Gets Things Smart¹, and recently heaped praise on Cody, a chatbot that promises to elucidate and improve developer productivity². A lot of the attributes listed would be nice to get automatically through tooling, but it looks like most of these take conscious reflection, persistence, and deliberate practice. And to do that, in the usual day-to-day, I think is pretty unlikely in some contexts: we only get a certain number of hours in the day. Sometimes just less than a handful of PRs. That gets to okay, maybe we need outside projects, self-accelerated, to go through the wash-rinse-repeat cycle enough times to gain experience in the whole app lifecycle (including marketing, traction, and decommission). It may also be a fair bit of luck to even be able to exercise these qualities--much less be exposed to or be mentored by folks like these. ¹ http://steve-yegge.blogspot.com/2008/06/done-and-gets-things-smart.html http://steve-yegge.blogspot.com/2008/06/done-and-gets-things... (2008) ² All you need is Cody - https://news.ycombinator.com/item?id=36519821 https://news.ycombinator.com/item?id=36519821 - 2 days ago (1 comment)