Software Engineer Advices
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