Bookmarks
You will always have more problems than engineers
“The better way to measure progress is to ignore the problems and think about what we’ve built.”
How do you decide when it's time to leave?
“If an organization wants to embrace failure, it must be equally comfortable rejecting bad goals, eliminating distractions, and demanding accountability in failure.”
“Give yourself permission to be simple and unsophisticated, when doing so works, and when the fancier option isn’t obviously justified right now.”
Your tech stack is not the product
Focus on shipping frequently and reliably. Be able to bring in more people when you need them.
I’ve Been Laid Off 5.5 Times. Here Are 4.5 Lessons I Learned.
It’s probably not your fault. Choose who you work for. Do not be afraid to leave. Be the best you can be. Get the right perspective.
Designing a Candidate-Focused Interview Process
I like companies that try to make the SWE interview process less broken.
“You can only really improve at one of these things at a time: engineering or management.”
“The best you can do is cheer them on, point them in the right direction, and give them the opportunities they need to prove that they have what it takes.”
“Allow your intuition to guide you to a conclusion, no matter how imperfect (…). Then (…) prove yourself wrong.”
Software Engineering - The Soft Parts
Useful to reread as your progress in your SE career. As a sanity check and a to-do list.
“Ironically, the best indicator of having "f*ck you" money is the absence of having to think about money at all.”
Employment history doesn't define your value
“If you want to sum up who you are, then focus on your values, principles, skills, and outcomes.”
Job titles: you can’t not have them, but you can make them practical and meaningful.
Incident Review and Postmortem Best Practices
Great read with lots of takeaways on how to make postmortems less painful for everyone.
“Your youthful focus on telic activities – things you’re glad to be done with – ideally adjusts over time to more atelic activities – things you’re glad to be doing.”
“Every moment as a leader is an opportunity to either strengthen or weaken shields.”
“At the buffet of life, we don't need to fill our plate with every opportunity that comes our way.”
Get better at programming by learning how things work
“Being a senior developer is less about knowing absolutely everything and more about quickly being able to recognize when you don’t know something and learn it.”
The Importance of Career Laddering
“(…) who can get their job done when they have no clue if what they’re doing is valued?”
Senior Engineers Build Consensus
“Building consensus and embedding the idea that engineers would use the change to make good decisions for Stripe turned the four line PR into a self-serve strategic initiative.”
“Why do you do code reviews? Perhaps it’s company policy, just an automatic part of your process, but have you ever sat down with your team and asked what everyone hopes to get out of it?”
The web didn't change; you did
“Web development did not change. Web development grew. There are more options now, not different options.”
“We think data will give us the most reliable information, overlooking how misleading numbers can be, and discarding the knowledge that stems from human experience, emotion and intelligence.”
“(…) give the people who work for you a chance to resolve complex issues on their own.”
“We assume that complex problems always require complex solutions. We try to solve complexity by inventing tools and technologies to address a problem; but in the process we create another layer of complexity that, in turn, causes its own set of issues.”
“What I do have is a lot of practice. (…) The kind of practice where all of a sudden I realize that it is 2am and I’m exhausted physically so I should go to bed, but mentally I feel on fire so I let the code have me for another hour or two.”
Nobody Hates Software More Than Software Developers
“I hate software – most of all and especially my own – because I know how hard it is to get it right.”
“First we realize something can be done. Then we realize we can’t do it. And finally, we get better at it.”
“The enlightened companies (…) will have discovered that remote work means more autonomy, more trust, more uninterrupted stretches of time, smaller teams, more independent, concurrent work (and less dependent, sequenced work).”
“Do the work to support your family. Do the work if you love it. Do the work to help others. Do enough, well enough, focused enough, so you don’t have to do more.”
“People who aren’t programmers are just looking at the screen and seeing some pixels. And if the pixels look like they make up a program which does something, they think “oh, gosh, how much harder could it be to make it actually work?“”
“The questions that annoy, frustrate, or bother us are our greatest opportunities. They poke us and get under our skin. We’re naturally motivated to solve them.”
Don’t get lost in asking why, don’t plan too much, do balance between existing and new skills.
Falling Into The Pit of Success
“(…) a well-designed system makes it easy to do the right things and annoying (but not impossible) to do the wrong things.”
“Offer me a chance to contribute, and I’ll work hard on it, with focus, and once I begin to make progress, I’ll become passionate about it.”
“As a leader, you’re in a position to solve bigger problems than you ever could by yourself, since you can deploy the full force of a team.”
“Being a developer isn’t about summiting the top of the mountain of knowledge. It’s about climbing a hill and enjoying the view for a few moments—then spotting the next one and plodding on.”
“The only thing I've ever seen work is getting down deep and dirty in the trenches with your users, communicating with them and cultivating relationships.”
“I wonder if I have twenty years of experience making websites, or if it is really five years of experience, repeated four times.”
On the three types of careers and how to act accordingly.