HomeThe Software Engineer's Guidebook

The Software Engineer's Guidebook

Last edited on January 31, 2024

These are my notes for the book The Software Engineer's Guidebook by Gergely Orosz.

Chapter 1 - Career Paths

  • There are many types or tiers of companies to work for, each with different expectations and requirements for success.

    Understanding these differences can have an impact on compensation, the type of work you will be exposed to, and the trajectory of your career. Tech companies can be broadly classified into three tiers, with Tier 1 being the lowest and Tier 2 being at the top of the market.

  • As with company paths, there are also different types of software engineering career paths.

    These paths vary by company, but typically there is a single career path where an engineer must move into management to progress, and a dual track where an engineer can choose between the managerial path or remain an individual contributor.

  • The idea of cost centers and profit centers - Profit centers bring in the money; as such, they are more stable. Cost centers do not generate revenue. Choosing between cost and profit centers requires balance, and working in both gives different perspectives.

  • A career is more than just jobs, promotions, and compensation. There are many other important intangibles that can contribute to a great career, including the quality of work, colleagues, team dynamics, company culture, personal motivations, among other things.

Chapter 1 Action Points

  • What tier is the company I am working in? Is it Tier 1, 2, or 3?

  • Is the team you are currently working on a cost center or profit center?

Chapter 2 - Owning Your Career

  • Your career is your responsibility, so own it. There are many ways to own your career: talk to your manager about your goals, share your work with colleagues, and create opportunities for feedback.

  • Make sure you get stuff done. Ensure that this stuff is impactful, and make sure people know that you get stuff done. Do impactful work and then make noise about it.

  • We suffer from recency bias - we only remember recent things. A great way to ensure we remember the work we do is to keep a work log and record key tasks each week.

  • Feedback is a gift, so give, ask for, and seek out feedback. Create opportunities to receive feedback through code reviews, design documents, and performance reviews. Make sure to acknowledge good work in specific terms.

  • Make your manager an ally by understanding their goals and making their job easier. Keep them informed about your current and ongoing work. Ensure that your one-on-one meetings with your manager are regular.

  • Remember, it's a marathon and not a sprint. Pace yourself during the different ups and downs of your career to avoid burnout.

Chapter 2 Action Points

  • Do you currently have a work log? If not, start maintaining a regular work log and save it on Github.

  • When was the last time you gave actionable and specific feedback to a colleague? Consider doing this more often.

  • What are your career goals? Where do you see yourself as an Engineer in 5 years? Does your manager know about these goals?

  • Document 1 on 1 meetings.

Chapter 3 - Performance Reviews

  • Understand what is valued by the business and how you can add that value. This includes understanding how the promotion system works. There are many kinds of performance review processes, so identify which one applies at work and act accordingly.

  • Let your manager know that you want to be promoted. Share your goals with them and come to an agreement on goals and expectations.

  • Use your work log to record your wins and successes, and share them with your manager. Don't forget to include the work you do to help others.

  • Be honest with yourself and create a self-review. Determine if you are meeting expectations, falling short, or exceeding them. It is important to have established these expectations with your manager.

  • Remember that performance reviews are a snapshot of time. Play the long game and remember that individual reviews hold little significance in the context of a decade-old career.

Chapter 3 Action Points

  • Do you know what your current level is? Are you meeting the expectations, exceeding them, or falling below the expectations of your level?

  • Do you want to get promoted? If so, establish expectations with your manager and set and agree on goals.

Chapter 4 - Promotions

  • Understand how promotions work at your company. Find people who have been promoted in the past and analyse what they did to get promoted.

  • It's not enough to just do good work. You also need to collaborate with others and promote your work to create awareness. Focus on producing, organising, and publishing. Keep track of your achievements on a weekly, monthly, and quarterly basis.

  • Your manager is a valuable asset. Make sure to build a good relationship with them and keep them informed with updates and feedback.

  • Avoid being too focused on promotions and titles. This can be perceived negatively by your colleagues. Instead, prioritise learning and curiosity. Remember that many career investments pay off in the long run.

  • Don't let titles define your self-worth. Remember that work is more than just titles and progression.

Chapter 4 Action Points

  • Understand how promotions work in your current place of employment.

  • Identify the most recent person to be promoted in your team or organisation - what did they do to get promoted ?

  • Is your manager your ally ?

Chapter 5 - Thriving in different environments

  • Aim to be a product-minded engineer. Develop an interest in the product you are working on itself. Ask yourself, "How are product decisions being made?"

  • Companies go through different modes: peacetime and wartime. You should be able to identify when your company is in peacetime or wartime mode. These modes will influence the time pressure to deliver. You should learn how to thrive in both modes, and ideally, a company should not always be in peacetime or wartime mode. You should be adaptable to changes that happen when modes change.

  • Know the difference between startups and big tech companies and optimize for each of them differently, depending on the company. But the key thing at the end of the day for both companies is to get things done.

Chapter 5 Action Points

  • In your current place of employment, are you in peacetime or wartime mode?

  • When was the last time you were either in peacetime or wartime mode in your current place of employment?

Chapter 6 - Switching Jobs

  • We cannot control when opportunities arise, but we can control how we engage with them and how seriously we take them.

  • There is a balance between waiting for a promotion and getting a new role. However, pursuing more senior roles can be risky as tenure becomes more important. Consider what you will be leaving behind if you leave your current position.

  • Depending on the size of the company you are joining, onboarding can take different forms. At smaller companies, it is important to ship something into production in the first week, although this may be more challenging at larger companies.

Chapter 7 - Getting things done

  • Always make sure that your single most important task is completed. You may have to say no to some other tasks to give yourself more capacity to complete your key priority.

  • Sometimes you can be blocked due to a bug or by something you do not understand. Always make sure you can unblock yourself. This starts with identifying when you are blocked and getting the required support to get unblocked. Based on the blocker, you may want to escalate. This is especially true when you are blocked by code review from another team. Remember, escalations are delicate. Make sure you escalate without causing any conflicts.

  • The best way to get things done is to break down your work. When you break down your work, your priority should be on completing work that gets you closer to shipping something. That means focusing on the order of work that gets you closer to working functionality. Breaking down your work helps with estimation, which is a skill that takes practice.

  • Find a group of people who you can learn from as mentors. This may be a formal relationship with regular meetings or something more ad hoc like online communities, but make sure the mentors you pick are reliable.

  • Always ensure you have adequate goodwill within your team. When you help someone, your goodwill increases. When you ask for favors, it decreases. Always make sure to maintain a balance.

Chapter 7 Action Points

  • Do you have a mentor? If not, find one online or in your current place of employment.

  • Making estimates is a skill. What was the last estimate you made? Was it accurate? How far off was it?