Very rough 5 min summary of the "The Software Engineer's Guidebook" book with advice for each level of Software Engineer Career.
## Career Fundamentals
- Keep a **brag document**
- Understand your **company tier** (1, 2, 3)
- Understand your **team focus** and company **environment** (product vs platform engineering / cost vs profit center, Peace-time vs War-time)
- Understand the **two track career** (IC and management)
- Get ready for **peformance review**, ask feedback and understand your manager
## Competent Software Engineer
- **Get things done**, most important advice. (unblock, breaking down work, estimating, focusing on important part, take initiative)
- **Practice code**, readability and quality
- **Learn your language**, debug, refactoring and testing
- **Learn local dev env**, git, terminal, Regex, SQL and find way to iterate quickly (fast build/test, feedback loop)
## Well Rounded Senior Engineer
- **Get things done**: let people know it, organize your work, help your team, see the big picture.
- **Collaborate**: code review, pairing, mentoring, feedback, other teams, influencing
- **Learn Software-Engineer**: 1 imperative, 1 declarative, 1 functional language, back+front, proper debugging, manage tech debt pros & cons, learn documentation (RFC, Test plan, Rollout Plan, Design Documents, Release notes, team handbook...), scale best practice across team (test, code review...)
- **Testing**: understand unit, integration, e2e tests. Automatic test, test in production...
- **Software architecture**: Design documents, RFCs. Prototype and PoC, domain-driven design, stakeholders and business understanding
## Pragmatic Tech Lead
- **Project managmeent**: kick-off, milestones, Software physics, day-to-day maangement, risk, dependencies and wrapping up projects.
- **Shipping to prod**: understand the different plans, risks, verification layers, selecting an approach
- **Stakeholder management**: Collaborate, understand types, understand who they are, keep in the loop, problematic stakeholders and learning from them
- **Team structure**: roles and titles, team processes, boost team focus
- **Team dynamics**: healthy/unhealthy teams. Growing pains, improve dynamics and relationship with other teams
## Role-model Staff and Principal Engineers
- **Understand the business**: North Stars, KPIs, OKR. Team & product, company, public company, startups, your industry
- **Collaboration:** Internal politics, influencing, with managers, with staff peers, networking and helping others
- **Software Engineering**:
- **Reliable Software Systems**: *todo*
- **Software architecture**: *todo*