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*