Podlodka Techlead Crew #5. Масштабирование архитектуры
Неделя «Масштабирование архитектуры»: разберёмся, когда пора масштабировать архитектуру, и как договариваться об этом с бизнесом; научимся определять, когда архитектуру ещё можно спасти, а когда пора начинать строить заново; выясним, как перестраивать существующее решение при росте нагрузки; научимся масштабировать процессы тестирования; обсудим, а всегда ли нужны микросервисы; вместе решим System Design задачи на масштабирование архитектуры;
Премиум
- Selfishness
- Trying to do everything themselves
- Good tech lead
- lead a team
- build reliable product
- owner of the technology
- be responsible for everything
## Mastering the technology
---
- Go deep, not broad
- Example: Build Backend API expert
- become the go-to person
- focus on deep mastery rather than broad knowledge
- Think High-Level, Plan Long-Term
- example - when a glitch in app lead to changing a feature which increased the revenue
- focus on overarching goals and objectives, rather than getting lost in minutiae:
- Minutiae - this is how we should name the new video APIs
- Goals - over the next year, we need to extend the video player in the following ways to build these mission-critical features
- understand who you depends on and who depends on you
- Be the code guardian
- protect and enhance codebase
- refactoring legacy code
- make code guidelines
- review LOTS of code, as much as possible (quality assurance)
- better scalability
- stay up to date
- prioritize early PRs
- influence the team
- System design discussions
- be involved and helpful
- get involved in the early design to be influential on the whole outcome
- always be helpful - THIS IS NOT EASY!!!
- do not participate just for the sake of participation
- deeply understand before talking
- build relationships with sub-leads
- ML lead
- Backend lead
- Android Lead
- Frontend Lead
- etc
- Tips: How to be helpful in tech review
- throughly read the teach spec beforehand
- participate in async doc discussions
- ask clarifying questions in the meeting
- listen very intently (never zone out!)
- Foster technical innovation
## Effective Leadership
---
- It’s all about the team
- be the leader of the tech team who ‘conducts the orchestra’
- your team’s success is your success
- be an excellent communicator
- Bad tech “lead”
- Good tech lead
- how to be an excellent communicator
- have empathy
- let people know you care
- be a leader, not a boss
- communicate clearly
- always be writing
- paper trails are crucial for alignment
- overcommunicate
- overcommunication never really happens
- Don’t be shy. Speak up
- set the direction
- how to set the direction?
- maintain a clear vision for the project
- everyone should be able to envision the ideal end state before a single line of code is written
- empower your team to deliver cohesive outcomes
- timeline
- what is due when?
- division of labor
- who is responsible for each of the What’s?
- Foster Trust
- Why is fostering trust crucial?
- Enhance work efficiency
- less time wasted on contracts and bureaucracy
- higher motivation
- when people feel trusted, they also feel responsible
- it strengthens bonds within the team
- How do we foster trust?
- be transparent and genuine
- don’t hide your mistakes
- set the example to encourage honesty
- Show appreciation openly and often
- leverage every opportunity to add more positive energy to the team
- Leverage the power of feedback
- Be a feedback sponge
- feedback is a gift
- be open and make it clear that you welcome feedback
- tip: End your 1:1 meetings with a variant of “Do you have any feedback for me?”
- make the ask as specific as possible (e.g. “Any thoughts on how I drove the meeting?”)
- how to give it:
- Tip 1: Praise in public, criticize in private
- Tip 2: Always focus on the issue, not the person
- bad: you always jump to conclusions without thinking
- good: I think your comments in the meeting were premature because you didn’t hear the full explanation”
- Tip 3: List out action items after delivering your feedback
- the goal of feedback is to drive behavioral change
- Example: “try speaking up more in meetings”
- start going to every weekly team meeting
- pre-read meeting docs before going in
- ask at least 1 question per meeting
- Manage expectations
- Expectations are everywhere
- supervisor reports
- PM engineers
- tech lead junior engineers
- feeling frustrated by misunderstandings can lead to tension and conflict within the team
- tips for managing expectations
- regular project status updates
- be honest when things are falling behind
- capture all communications in writing
- Unite the non-engineers (XFN)
- become your product manager’s best friend, find that synergy
- unite all members - PM, Designer, Data Scientist, Data Engineer = TEAM
- Be visible
- claim credit appropriately
- spend significant time on documentation
- being a tech lead means walking that fine line between serving your team and making sure your efforts are recognized
## Key takeaways
Great Tech lead = Tech + Leadership
| Technology | Leadership |
| --- | --- |
| Go deep, not broad | It’s all about the team |
| Think high-level, plan long term | Set the direction |
| Be the code guardian | Forest trust |
| Participate in system design | Leverage the power of feedback |
| Foster technical innovation | Manage Expectation |
| | Unite the non-engineers |
## What to do next?
Tech:
- review 50% of your team’s PRs next week
- Write up code guidelines if your team doesn’t have it
- or make it better you already have one
- Hold a brown bag session discussion about AI this month
Leadership
- ask for feedback from 3 of your team members and list out your action items
- Give people for 3 of your team members, and work on action items with them
- Share written summary to the team after all meetings next week