Been thinking a lot about how to organize an engineering team, run a team, and build a good culture. Taking notes on different posts from blogs I follow. Iâm thinking about this from the lens of my early stage startup Plastic Labs
Some of these thoughts also influence my thoughts/notes on technical screenings
The way Iâm seeing this play out is as so:
- Team / Company principles â These are ways and ideas I want to instill in the team and how I want us to act. More general ideas of how to be not necessarily concrete prescriptive actions or processes. More mental models and âvibesâ of the team: âDonât be toxicâ, âbias for actionâ, âcustomer obsessionâ, âWeâre not perfect but we should strive to get betterâ
- Expectations and standards for me â As a leader I want to set expectations for myself and want to be held accountable for them. So these are principles I want to say I will try to do and instill in future leaders in the organization. These should be specific vectors for feedback to grow with and things a member of the organization should be able to talk to me about if they feel a lapse.
- Operating Principles â More concrete prescriptive things. Might be some double dipping with #1. Thinking about it with things like: âbias for actionâ, âdonât waste excess time planning and with meetingsâ
A whole separate note on managing âHustle on Startupsâ is something Iâm thinking about too. I want to be very realistic there, but also talk about what I think is healthy and what isnât. Thatâs something I feel passionate enough about to focus on.
Another thing to mention is processes/practices that weâd want in the team sort of prescriptively.
- Kudos meetings
- Regular friction log cadence
- Post mortems
- Meeting cadence
- Blog post first
- 80/20 time
On Technical Deb: Shoveling Forward
My takeaway from this post which is more a reframing of technical debt is a parallel to another post which talks about how to design our tech debt. Instead of writing code that will accrue debt and be very hard to change, design code that is easy to delete. Deleting can be faster than refactoring and often better for moving forward.
You Are Not Your Impostor Syndrome
https://flower.codes/2024/06/23/you-are-not-your-impostor-syndrome.html
Imposter syndrome is natural in the workplace and is often a good sign. This post distills this pretty well and mentions some concepts that Iâd hope are present in team members.
- Imposter syndrome is a sign you care
- Itâs a sign youâre growing
I want our team to be a place where individuals are growing and often we are going to be thrown into new territory either because we are scrappy or because the job will morph as the company grows.
Even if you donât initially have imposter syndrome I would encourage everyone to be ambitious and seek discomfort.
15 Pieces of Advice That Will Make You a Better Leader
https://flower.codes/2024/06/21/15-pieces-of-advice-that-will-make-you-a-better-leader.html
âAt its core, itâs about communication, honesty, and empathy.â
My restatings and additional thoughts on the different ideas.
- Communicate
- We need to build trust so people can be comfortable and speak their mind
- Humility is important and understanding we donât know everything.
- Ask questions ask questions ask questions. Personal thing for me a sign of a good leader is someone who can dig in and ask a ton of questions. Not really what this post is saying but it echos the importance of asking questions.
Note The idea that asking questions is a sign of a good leader comes from this talk I added a long time ago influential questions
- Listen then speak
- Be strict about prioritizing. Actually do it donât give vague ideas.
- Donât say âshouldâ itâs too vague and hard to dictate action on.
- Nobody owns âshould.â Itâs safe. Thereâs no accountability.
- Take notes and write down everything. (I encourage PKM nerds to do their thing)
- Classic be a leader not a manager idea. Lead by example.
- Respect otherâs time. Super important especially when not all time is the same
- Always be learning. If we want the ICs to do this it needs to start from the top.
- Be able to log off and take time away.
- Make sure metrics are meaningful. Be careful of Goodhartâs Law
- Actually care about people
Authentically Speaking
âReal authenticity is about honest connection. Itâs about sharing a truth with someone elseânot to generate a specific outcome, but to create a relationship.â
As a manager and a team we should strive for authenticity in our day to day interactions. No use putting up fronts and no use lying about the state of things. Itâll just hurt us later.
Work Life Imbalance
- Immense overworking can come from a place of fear not only a âgrindsetâ
- Itâs easy to get an unhealthy relationship with work where a lot of your self worth can be linked to your job performance.
- You should not have to feel guilty about doing things that keep you healthy or happy.
- âwhen you take responsibility for your teamsâ failures, yet pass all successes through to them, it can be pretty demoralizing, but thatâs the job of a good leaderâ â Being a leader is hard.
The Constant Introspection of Management
https://www.elidedbranches.com/2013/12/2013-constant-introspection-of.html
Some notes on the difficulties of being a manager and the emotional challenges youâll face along the way.
âThe hardest part for me of going from individual contributor/architect/tech lead to managing in anger has been the lack of certainty.â
- You need to care about your people without taking the things they do personally.
- Every person who quits feels like an indictment of all the ways you failed them.
- As a manager you lose both autonomy and mastery.
- You are always only as good as your team.
On the role of CTO
- The CTO is NOT an engineering role.
- The CTO is NOT necessarily the best engineer in the company.
- There are many different paths to CTO and different focuses and approaches
- More on approaches:
- Focus on processes of engineering
- Focus on hiring/recruiting
- Focus on technical architecture
- Focus on product roadmap
âThe CTO is the technical leader the company has in its current stage of evolutionâ
a better definition
âCTO should be the strategic technical executive the company needs in its current stage of evolution"
- "The CTO is an executive first, a technologist second."
- "the CTO must understand where the biggest technical opportunities and risks for the business are and focus on capitalizing on them. â
- It is important to maintain reporting power and actual control of the team otherwise it can be easy to lose your effectiveness.
Notes on Startup Engineering Management for Young Bloods
https://www.elidedbranches.com/2015/10/notes-on-startup-engineering-management.html
- Often leaders learn through mistakes, but those mistakes are often very costly.
- A startup is going to be different than a regular manager because you have no safety net.
- A big part of your job is to create that safety net.
- Create sane processes
- Create sane standards
- You need to setup the team to scale without you having to make every decision yourself.
- Coordination is hard!!
- If the set of projects going on can fit into your head, your project list is probably trivial.
- If the set of people is small enough that everyone knows everyone else, politics is trivial. Politics at that scale is a sign of organizational illness.
- âThe team is moving too slowâ is the hardest problem youâll ever debug.
- Trust is of the upmost importance as you get farther and farther from the work. What you do for your direct reports will flow down the chain.
- Metrics are not everything but they can be useful.
- Learn to estimate capacity.
- People can do more than they think they can. Especially at startups people want to ship so let them. If youâre bored do it better or cheaper.
- People will quit. Itâs a reality you will have to learn to deal with.
- Your job is to survive
The Manager as Debugger
https://www.elidedbranches.com/2015/11/the-manager-as-debugger.html
- The author often finds that people great at debugging are great managers. They are great at diving into and discovering the âwhyâ around issues.
- You need to be able to hypothesis why problems are occurring, you canât rely stricting on micromanaging and monitoring as that can impact results
Things Your Manager Might Not Know
- Whatâs slowing the team down
- Ask about their challenges
- Exactly what individual people on the team are working on
- Ask what they are working on
- Where the technical debt is
- Ask about technical risks
- How to help you get better at your job
- Ask what they need to do better
- What your goals are
- Ask about their goals
- What issues they should be escalating
- Ask what theyâve been struggling with the most and as a follow up ask if it needs to be escalated
- What extra work youâre doing
- What is extra work you are doing that isnât budgeted right now? Docs, etc. Can it be worked into the schedule? Can it be considered when thinking of career progression
- How compensation/promotions work at the company
- I should know this lol
I largely think these are problems that will occur as the company grows bigger at the small scale we are at right now, I should have visibility or direct control over a lot of these. That being said still things that I can be accountable for and might miss so will make efforts to not miss them.
Getting Things Done
- Have a vision. Like this concept a lot should be clear what you are actually working towards. If you donât get the vision work it out with the manager/architect. Make a document. Do whatever you need to make it clear in your head.
- Focus on one thing at a time. Like this too. Donât overload and donât multitask and do everything bad. Do one thing well and keep going.
- Trying to get something every day. This is a good rule of thumb as well and can be anything. Building on the live to create idea can be notes, can be code, whatever. Put something out there to crystalize your work.
- Talk to somewhen you get stuck â have a culture where itâs ok to not know everything, be humble and be comfortable asking for help.
- Do whateverâs necessary â This with caveats. Make sure you are smart about what you are doing. If youâre going to create excess tech debt design to be deleted, but ultimately find scrappy and subversive ways to get stuff done.
- Believe in yourself â You were chosen to be on the team because we believe in you, so believe in your ability to figure things out.
Whatâs a senior engineerâs job?
A senior engineer, founding engineer, whatever you wanna call it, at a startup especially one as small as Plastic is going to be expected to grow with the organization and be incredibly high context. They will be a pillar as the organization grows and thereâs a lot that will go into that.
- Write code
- Do code reviews
- Write and review design docs
- Help team members when theyâre stuck
- Hold folks to a high quality standard
- Create new projects
- Plan your projectâs work
- Proactively communicate project risks
- Communicate successes!
- Do side projects that benefit the team/company
- Be aware of how projects relate to business priorities â (be invested in the direction of the company, donât do tasks mindlessly)
- Decide when to stop doing a project
Thereâs a lot here but itâs all about being a high agency thought leader that can impact decision making and lubricate the development process to move faster. You should be an augmentative force.
What not to do:
- Make sure every team memberâs work is recognized
- Make sure work is allocated in a fair way
- Make sure folks are working well together
- Build team cohesion
- Have 1:1s with everyone on the team
- Train new managers / help them understand whatâs expected of them
- Do project management for projects youâre not working on
- Be a product manager
- Do sprint management / organize everyoneâs work into milestones / run weekly team meetings
Let your manager do their job and just work to support your team members.
How do you decide what to work on?
https://jvns.ca/blog/2016/08/16/how-do-you-work-on-something-important/
Have a clear goal to work towards and be thoughtful about the work you need to do. Will it further this goal?
Understand that there is no âright thingâ. Not everything will be equally impactful, but thatâs ok. Some things may be wasted work or a dead end, but doesnât mean the work was a complete waste. Speed run these failure modes and move on.
âď¸ Believe in the possibility of completing what you are working. Part of this is having an ambitious mindset, but also be careful to scope things well so it can be done in a reasonable time. Scope creep is real and shouldnât just be beaten through âhustlingâ. Perserverance is still important though. Youâll encounter unexpected complications and delays and you just need to push through. Itâs a hard balance of scoping things and managing unexpected growth.
Questions Iâm asking in interviews
https://jvns.ca/blog/2013/12/30/questions-im-asking-in-interviews/
These are questions an interviee candidate would want to ask a company and thus should be things I take the time to think through and know the answers too.
- Make a full FAQ answer list for these questions
On Being A Senior Engineer
https://www.kitchensoap.com/2012/10/25/on-being-a-senior-engineer/
- Maturity is a big key quality of a senior engineer
- technical skills are an obvious essential, but not sufficient aspect
- Seek constructive criticism of their designs
- Understand the non-technical areas of how they are perceived
- Understand that no one wants to work with an asshole and work to not be like that
- Donât shy away from making estimates and are always trying to get better at
it.
- You need to be comfortable working with some nonzero amount of uncertainty and risk
- Understand that all of their assigned work wonât be the most glamorous stuff
- They should ift the skills and expertise of those around them
- Understand the difference between mentorship and sponsorship and work towards
the latter.
- Instead of focusing on helping underrepresented/underprivileged members of the team to develop skills work on providing them more opportunities to display their skills.
- Be explicit about the trade-offs when making judgements/decisions
- Be empathetic
- Donât make empty complaints
- Are aware of cognitive biases
References the The Ten Commandments of Egoless Programming
Making Small Culture Changes
https://jvns.ca/blog/2017/04/16/making-small-culture-changes/
A lot of different good ideas, but my biggest takeaway for the context of these notes is that culture can as much be a bottom up thing as a top down thing.
âď¸ Encourage people to be the change they want to see and initiate cultural changes themselves
How Do You Make An Awesome Team?
https://jvns.ca/blog/2017/01/13/how-do-you-make-an-awesome-team/
- Work in public (public channels)
- This was a huge thing at Hexlabs and became an indispensable source of information to find DRIs and other things
- Talk like you might be wrong in discussions
- Sorta of a how to make friends and influence people approch. But generally be humble and be ok with being wrong. I think thereâs a balance here, you donât want to get steam rolled if you actually believe in your opinion.
- Bottom up cultural changes
Senior engineering & fantasy heroes
https://jvns.ca/blog/2015/03/28/senior-engineering-and-fantasy-heroes/
- The fortune teller: can predict future challenges and obstacles early on saving a lot of time
- The cattle wrangler: Great at standardizing and working with disparate teams/processes/code repositories.
- the spring of knowledge: Just knows every arbitrary and detailed fact about something off the top of their head.
- The gardener: Great at managing technical debt and finding efficient and reasonable ways to fix it along with knowing how to design to mitigate it in the future.
Learning at Work
In general this is a aspect of the team that I want. I want people to be voracious learners who are greedy for knowledge. I want them to keep their hand on the dial and keep up with the latest practices, news, and technologies.
Methods:
- Blog posts
- Conferences
- Books
- talks
- Build projects and learn from them
- Watch senior people operate
- Read every pull request
- Read source code
- Follow up on bugs you couldnât figure out and gave to someone else/escalated
Asking Questions
A good framework for different types of questions. Better in the appendix will replicate there. In general being curious and inquisitive is a strong trait in a team member. A desire to understand what is happening around them.
What I Learned at Stripe
https://steinkamp.us/posts/2022-11-10-what-i-learned-at-stripe
Stripe is often touted as having one of the best cultures and most talented engineering teams in the industry. So investigating them should give more insights into practices to copy.
- Gratitude built-in
- Public shoutout channels
- Propagate to their managers
- Friday âMad Propsâ meetings (similar to the Praetorian celebrations meeting)
- The DRI (Directly Responsible Individual)
- Each task and project in the team has a single person who is responsible for that thing in that moment
- Learning in public through shared documents and detailed design reviews
- Shipped emails
- building a culture of celebrating shipping.
- similar to the work from a Press Release
- Not always but apparently projects can often start from this
- âď¸ Deadlines have a confidence score associated with them
- Direct user feedback is highly coveted and desired by engineers.
- âď¸ Friction Logs
- Dog food the product and write down every point of friction you encountered. Use that as actionable feedback to improve the product
- Open data warehouse
- Actually use CICD for testing and QA
- Big investments in dev tooling pay multiples
- Huge hiring incentive too (people love this)
- Gives your team super powers
The 37 Signals
This company and the creator is referenced a lot online as a respected figure. I hear these signals reflected a lot and their blog posts and ideas usually have some merit, although they may not be relevant in every situation. That being said I want to see which of the signals I like and which I find to be noise.
The ones I like:
- #3 Small Teams - You can do big things with small teams. I know they have a concept of teams being no bigger than 2 people. I like this concept. Moveâs fast, less useless meetings and standups, less communication drift.
- #5 Err on the side of do â similar to bias for action. The idea that actions are temporary and unless thereâs a large risk (huge credit spend, etc.) then just go for it. If youâre really worried document the decision so we can review it later.
- #8 Work life balance â this is a hard one, startups in general will require more from us since weâre under resourced. But one key to pull out from this is A lac of sleep isnât a badge of honor, itâs a mark of stupidity. I wouldnât go that far, but we shouldnât brag about burning ourselves out.
- #11 Donât emulate the office â A crystalization of the idea âthis meeting could have been an email.â Itâs real and should be remembered.
- #12 Hours arenât equal â Some hours are better than others, uninterrupted flow states vs broken up tiny chunks. I will do my best to guard engineers time to give them the most high quality time possible.
- #13 If youâre talking about something new or novel, youâll have to repeat yourself for years before youâre heard. â Something big at Plastic. We are working on novel stuff itâs going to take a while to get everyone caught up with us.
- #14 Meetings arenât free â a repeat a bit of #11, but understand that meetings shouldnât be the default. Protect our time.
- #15 Bury the hustle â Again a cultural thing I want to instill. Hustle culture is toxic, but we need to work hard. Letâs be honest about whatâs happening and respect each other.
- #25 Disagree and commit â Weâre going to have disagreements, but we need to keep moving forward. Itâs better to find out we were wrong faster than spend time debating longer. If we just try and realize it will pay off in the future where we wonât make it again.
- #26 Kick in the face, kick in the ass â Letâs be antifragile and grow from set backs.
- #30 Miscommunication problems â As Osmo Wiio said, âIf communication can fail, it will. If a message can be understood in different ways, it will be understood in just that way which does the most harm.â Take this to heart and do the work to communicate clearly.
- #31 easy â be respectful of what other people are doing. Everything looks easy when youâre not doing it yourself
- #33 Planning is guessing â Keep plans shorter and understand they will change.
- #34 Sleep on it â a health thing and a good practice. Iâve found this very often in my life, trusting my 12am self is rarely a good idea.
- #35 Companies arenât families â My thought on this is thereâs two extremes and we want to sit somewhere in between. Sure weâre not a family, but we should be friends, we shouldnât be enemies. Respect each other, help each other out.
- #36 Context > Consistency â If something isnât working throw it out. Thatâs fine.
Lotâs of good stuff here. I generally see a lot of it as donât be toxic and be respectful of other people and their circumstances.
Donât waste peoples time with excess process and focus on âjust doing things.â
Praetorian New Hire Survival Guide
https://www.praetorian.com/wp-content/uploads/2024/06/2024-New-Hire-Survival-Guide.pdf
Like the idea of a new hire survival guide in general. Very healthy practice and evergreen note to keep building towards. A good exercise could be for new hires to contribute to the new hire survival guide at the end of their first week.
First week goals, similar to what I saw at Microsoft with the goal for first commit or PR by the end of the week.
Main focus in this is the culture page and the 11 principles.
- Default to open
- Orient to action
- Lean into discomfort
- Be Humble
- Yes, and
- Follow your passion
- Put the customer first
- Make craters
- Performance matters
- Try harder
- Struggle and celebrate together
All bangers. Really nothing in here that I would push back or not want to instill in my own organization. Open and clear communication, being a small team that understands we donât know everything but we can figure it out and make strides, putting the customer first and being obsessed, and remembering that it is a team effort.
Work Life Harmony at Praetorian
https://www.praetorian.com/blog/work-life-harmony-at-praetorian/
Key takeaway is that as a team we should be understanding of each other. A startup makes it harder to have a distinct work life balance with a strict schedule, but the advantage of being small is we can be flexible.
Work the hours you need to, do what you need to to stay healthy and manage your life, but letâs get stuff done.
None of us are trying to be assholeâs and we should be here for each other.
Thereâs No Speed Limit
Select quotes
- âIf youâre more driven than most people, you can do way more than anyone expectsâ
Really just a concept/idea I want to our team to have instilled. Donât get caught up with arbitrary prequisites or credentials and be driven enough to realize we can figure out and learn whatever we need.
Have the agency and drive to do what you want and not get blocked by mental blocks. Be ambitious and have a voracious appetite to grow and learn.
Hereâs how to live: Create
Love this idea here. We want creators not consumers. What matters is what you can do and put out there. Whether that be ideas or products or whatever put it out there.
Bias towards action and putting stuff out. This will make it easier to communicate your value from a career perspective and always keep the company/team moving forward. Locking up ideas in your head forever makes it harder for people to know what you are doing and can just cause confusion.
Be transparent and act. Another quote I want to highlight here is: âDonât wait for inspiration. Inspiration will never make the first move.â Iâve found this to be a huge unlock in my career. You get ideas as you do stuff, you canât just wait. Itâs a similar thing with startups. You shouldnât just think of an idea then make a startup, do stuff and youâll see the problems that are worth solving.
A thing to be careful of here is to not fall victim to Symbolic Self Completion Theory
Hereâs how to live: Love
My main takeaway here is have passion. Meet things where they are, love to learn, love the craft, and be put yourself into your work.
Stripe Operating Principles
Lotâs of great ideas here and company principles to stick too. The first one that always sticks out to me is Customer Obsession. Which they call Users first.
The other principles are sorta no brainers to me. Thereâs definitely a sense of what should be implied and what should be directly stated.
- Move fast and urgently, bias for action
- I think bias for action is the key takeaway here âď¸
- Seek feedback is one that should be without saying but I want to focus on. The team should grow from each other. We want a team not a cluster of ICs.
I like all of the âwho are weâ. Highlights include:
- Resilient: This is important as a startup where every day is a rollercoaster and you never know what works out to being the big thing that matters.
- Macro-optimistic: This is important because we need people who realize that every problem can be figured out. They canât say I donât know and give up the job is going to entail doing things we donât have expertise in.
- Humble: Donât be a dick
For leaders
- Obsess over talent is an obvious one for me - it should be a privilege not a right to work at a place. Thatâs the type of culture and team we should strive to create.
- Being accountable â blame games are fruitless
Other slogans I love
- We havenât won yet
- Love this one a ton. Encapsulates a lot of ideas of urgency, the market and the relentlessness the company has. Especially at our stage but even moving forward we donât want to entshitify ourselves.
- Really, really, really care
- You want a culture where caring helps and people are rewarded for it.
Some mistakes I made as a new manager
- Managing doesnât hav ethe same fast feedback loop and can be riddled with more
uncertainty and angst.
- Be honest about your feelings
- Ask for specific feedback
- Remember what the critical task for your role is and focus on that
- Could be writing, could be coordination (linear), could be code
- You wonât have the bandwidth to do everything perfectly so understand what is the priority
- Choose the amount of management you give for a person on a case by case basis
- âManage projects according to the ownerâs level of task-relevant maturity"
- "People with low task-relevant maturity appreciate some amount of micromanagement (if theyâre self-aware and youâre nice about it)â
- You will be faced with many emotionally draining hard questions where thereâs no clear right answer. You need to develop this skill and learn not to procrastinate on the answers.
- Debt builds up with managers just like it does with coding.
- Build in slack and time to address it.
- Actually prioritize and put things below the cut line.
- If you have anxiety about your impact on an individual the best thing to do is just have an open dialogue and resolve it with them.
Look Stupid
Not so much as advice, but a general sentiment I agree with is that you should be willing to look stupid and be ok with it. Weâre here to grow and we donât all have the answers.
Culture Matters
The post more talks about the importance of culture over incetives and processes for driving action. Just echoes why I want to think through the type of culture I want.
- The culture wasnât as much a function of hiring as much as it was the onboarding process. Thatâs the real point where you can mold people around a culture (atleast in the more junior roles)
- With more senior hires there is a real risk of them impacting the culture and there should be scrutiny for it.
How (some) good corporate engineering blogs are written
I want blogging and being public to be a big part of the culture at Plastic. So interested in the thoughts around this.
Common processes
- Easy approval process, not many approvals necessary
- Few or no non-engineering approvals required
- Implicit or explicit fast SLO on approvals
- Approval/editing process mainly makes posts more compelling to engineers
- Direct, high-level (co-founder, C-level, or VP-level) support for keeping blog process lightweight
Mainly remove barriers to writing content and actually value it.
You donât want to actively stop people from putting interesting stuff into the blog posts.
95%-ile isnât that good
An ambitious and greedy mindset I want in our engineers. They should feel like they are capable of quickly learning and getting very very good at something they are unfamiliar with.
Understand that if they focus they can quickly get to the top of their field and that the secret to life it that no one knows what theyâre doing.
Staring into the abyss as a core life skill
Characterizes the act as thinking reasonably about things that are uncomfortable to contemplate. Often these can be emotionally draining an deasy to procrastinate on.
This is a skill leaders are going to have to keep getting better at and this pot just does a godo job identifying and arguing for it.
Be Impatient
Another aspect I want to instill in the team. Be greedy and be impatient. We should want to ship as fast as possible and move as fast as impossible. Strive to get rid of blockers as fast as possible.
This doesnât mean cut corners, but donât waste time doing useless things that arenât moving you forward.
Categories of leadership on technical teams
- Overall direction
- ensuring the team is headed in the right direction
- Set the teamâs mission, vision, charter
- Choose goals, plans, and roadmap
- prioritize different potential projects
- communicate that to the team
- People management
- Coaching people to improve and grow in their careers
- Design and oversee hiring process
- Communicate and evaluate performance expectations
- Project Management
- Setting operating cadence
- Splitting up work between team and delegating
- Keeping work visible and communcated between different parties
- POC for the rest of the company
- Technical leadership
- Set tech direction
- Review execution against that direction
- Mentor ICs
- Doing some level of IC work yourself
What it means to be resourceful
An annecdote about how to be subversive and resourceful. Being subversive is in the DNA and roots of Plastic and something we really want to emphasize. Especially at this stage we may not always have the most resources but we find ways to have creative solutions.
âď¸ Resourcefulness and Subversiveness
Becoming a magician
https://autotranslucence.wordpress.com/2018/03/30/becoming-a-magician/
My interest in this post largely comes from the desire to have highly ambitious people with a desire to grow and ones that donât necessarily want to take the traditional roads to get there.
âdescribe the version of you that seems impossible right nowâ
Reminds a lot of a quote I think Elon said of think about your 5 year goal and try to get to it by the end of the week. Youâll fail, but youâll be hell of a lot closer than if you did nothing.
Being impatient to get to your goals and working to get to them are really key for me.
Rest in motion
A good model I think about for managing work and life and the relationship to work. Having work and rest both be integral never ending games that you can keep growing into. With that in mind you can also position both as necessary and both are things you need to do. One canât exist without the other and the same expectation should be in the team.
The Product Minded Engineer
https://blog.pragmaticengineer.com/the-product-minded-engineer/
An engineer that would likely make a good PM if they gave up the joy of engineering.
By focusing on customer obsessions and user-centric design, having product minded engineers is going to be critical to the success of our team.
I think this idea might be encapsulated well in customer obsession, but this post presents a good framework for how to actually do it.
Traits:
- Proactive with product ideas/opinions
- coming from a place of genuine interest and care. Not just status signalling or trying to get credit
- Data driven
- Look for feedback and data about the user, donât just have decisions based on their own vibes or random opinions.
- Keen interest in the âwhyâ?
- Looking to understand decisions. This is a culture that will need to exist with PMs as well. They need to be able to back up and explain decisions.
- Strong communicators and good relationship with non-engineers
- Have scope and visibility outside of engineering
- Offering product/engineering tradeoffs upfront
- Similar to some of th eposts on what make a good senior engineer
- Quick product validation cycles
- Seek feedback early and work fast to validate ideas
- Bias for action, just do it and check donât think excessively
- End-to-end product feature ownership
- Engage after the development is done
- steak in upkeep and results
Being multidisciplinary and customer obsessed will contribute largely to this culture.
Write code that is easy to delete, not easy to extend
https://programmingisterrible.com/post/139222674273/write-code-that-is-easy-to-delete-not-easy-to
A good philosophy for preventing technical debt and presumptuous optimizations. If we want to be impatient and move fast, quickly validate our ideas and move forward, this is a mental model to adopt to prevent it from shooting ourselves in the foot.
We Hire Folks Who Work Like Founders
https://wellfound.com/blog/we-hire-folks-who-work-like-founders
5 employer principles
- Serve (customer obsession)
- Respect (humble, honest, be nice)
- Trust (High agency)
- Lead (Ownership)
- Deliver (Get the job done, the details are largely unimportant)
- Remote work is fine
- Work the hours you need to
Values for how to actually do the work
- Defer to the DRI if there is a conflict the task owner should make the call.
- Small teams and let people make decisions themselves.
- Take responsibility
- For every project you have monitor and report on its metrics, good or bad.
- Own your decisions
- Automate where you can
- If youâre going to have small/low resource teams invest in automation.
- Save your energy for the high impact work
- Think through things and care about the details
- Think through edge cases especially if theyâll be high visibility
- Ship fast, but ship to learn
- Fast feedback cycles
- Learn from customers and dictate future work
Product Engineering at AngelList Talent
https://wellfound.com/blog/product-engineering-at-angellist-talent
More on the product minded engineer and qualities they have.
- Contributes more than just code
- Docs, blogs, processes, etc.
- Collaborate closely with designers.
- Work full-stack
- Letâs engineers truly own a project
- Make fast, impactful decisions
- Small teams, high quality, continuously shipping
- Serve customers
- Customer obsession
Working Backwards (the Amazon Method)
https://www.productplan.com/glossary/working-backward-amazon-method/
The infamous work backwards from a Press Release method.
- Quicker than an MVP
- Useful gut-check about a productâs viability
- Is it exciting?
- Is it worthwhile?
- Useful during development
- Customer centric
I think the formal process might be too much at the small scale of the company now. I like the Stripe more flexible method of having shipping culture and blog posts and not being prescriptive about it.
Could be something to grow into.
Appendix
- A good template for documentation and general communication: https://flower.codes/2020/02/12/documentation-strategy-template.html
- A good set of frameworks for asking good questions: https://jvns.ca/blog/2016/08/31/asking-questions/
- Repository of engineering titles, bands, and expectations: https://github.com/urbanairship/techladder/tree/master
- Basecamp book on their planning process: https://basecamp.com/shapeup