-
Reflections on 10,000 Hours of Programming 2021
- Seasoned google engineer tells some high level nuggets of truth
-
Professional Programming: The First 10 Years
- Fearlessness is undervalued
- You can’t predict the future; try and you might end up in trouble
- Nothing really matters, except bringing value to the customer
- Perfection is unachievable
- If you can’t connect it to the business, it doesn’t matter
- Write tests that give you confidence that the system works as it should
- 'how' is largely irrelevent
- Using other people’s code is not as good as I thought
- Some companies get it, others don’t. But nobody’s perfect
- Investing in feedback loops is never wasted effort
- Always leave something unfinished at the end of the day
- Sharpen the axe
- improve your daily tools
- Hiring is hard
- The most important trait in developers: rolling up their sleeves because it has to get done
- Work on a codebase with other people over a longer period of time
- see how decisions pan out
- how extendable is your code
- Knowing the full stack
- Typing can be the bottleneck
- Code reviews aren’t waterproof
- Not every code review is worth the effort
- Negativity begets negativity
- Every dial at 100% all the time doesn’t work
- Code has mass
- Programming as a part of my life
- You have to program/interest outside work
-
An incomplete list of skills senior engineers need, beyond coding - For varying levels of seniority, from senior, to staff, and beyond - Camille Fournier 2021
- How to run a meeting, and no, being the person who talks the most in the meeting is not the same thing as running it
- How to write a design doc, take feedback, and drive it to resolution, in a reasonable period of time
- How to mentor an early-career teammate, a mid-career engineer, a new manager who needs technical advice
- How to indulge a senior manager who wants to talk about technical stuff that they don’t really understand, without rolling your eyes or making them feel stupid
- How to explain a technical concept behind closed doors to a senior person too embarrassed to openly admit that they don’t understand it
- How to influence another team to use your solution instead of writing their own
- How to get another engineer to do something for you by asking for help in a way that makes them feel appreciated
- How to lead a project even though you don’t manage any of the people working on the project
- How to get other engineers to listen to your ideas without making them feel threatened
- How to listen to other engineers’ ideas without feeling threatened
- How to give up your baby, that project that you built into something great, so you can do something else
- How to teach another engineer to care about that thing you really care about (operations, correctness, testing, code quality, performance, simplicity, etc)
- How to communicate project status to stakeholders
- How to convince management that they need to invest in a non-trivial technical project
- How to build software while delivering incremental value in the process
- How to craft a project proposal, socialize it, and get buy-in to execute it
- How to repeat yourself enough that people start to listen
- How to pick your battles
- How to help someone get promoted
- How to get information about what’s really happening (how to gossip, how to network)
- How to find interesting work on your own, instead of waiting for someone to bring it to you
- How to tell someone they’re wrong without making them feel ashamed
- How to take negative feedback gracefully
-
The Developer Advocate's Guide to Getting Buy-In
- You present an idea, everyone agrees, but nobody commits and work never happens
-
Buy-in is an agreement to support a decision. So, when we are trying to get buy-in, we're trying to get decision-makers to support our ideas. So, the act of getting buy-in is a process that involves building trust, communicating your ideas well, and hopefully creating champions so that when you ask for a commitment, you already have the right people on board.
-
A Human-Centered Approach to Developer Productivity
- Humans are messy
- It's impossible to separate technical problems from human problems
- A thoughtful birds eye view of software made by humans