Skip to product information
Software Engineer's Guidebook
Software Engineer's Guidebook
Description
Book Introduction
“That day I decided.

“If I were a manager, I would give my team members the advice they need to grow.”


To build a successful career as a software engineer in the modern IT industry, outstanding coding skills alone are not enough.
In a rapidly changing technological environment, more preparation is needed to perform tasks effectively and achieve long-term career advancement.
This book contains the secrets of career management that the author, who has worked as an engineering manager at many companies, discovered while giving advice to team members in the field.
This is a guidebook that introduces solutions to various situations that software engineers encounter in the real world.
It goes beyond simple theory and contains useful information that can be applied directly in the field.
From junior to senior engineers to staff engineers, discover the information you need to take the next step at every career stage, a concrete roadmap for career advancement, and a blueprint for long-term career success.
  • You can preview some of the book's contents.
    Preview

index
[Part 1: The Basics of a Developer Career]

Chapter 1 Career Path
_1.1 Types of Technology Companies
_1.2 Typical Software Engineering Career Path
_1.3 Corporate Tiers Based on Compensation
_1.4 Cost Center, Profit Center
_1.5 Alternative Thinking for Career Development

Chapter 2 Career Management
_2.1 Career Ownership
_2.2 People who are good at their jobs
_2.3 Writing a work log
_2.4 Feedback from colleagues
_2.5 How to make a manager your ally
_2.6 Face adjustment

Chapter 3 Performance Evaluation
_3.1 Quick Preparation: Assess the Situation and Set Goals
_3.2 The Power of Habit
_3.3 Things to do before performance evaluation
_3.4 Performance Evaluation

Chapter 4 Promotion
_4.1 How are promotions determined?
_4.2 Types of Promotion Procedures
_4.3 Terminal Level
_4.4 Promotion in Big Tech
_4.5 Advice for Promotion
_4.6 Long-term career

Chapter 5: A Universal Approach
_5.1 Product Team and Product-Oriented Engineers
_5.2 Platform Team
_5.3 Peacetime vs. Wartime
_5.4 Business Types

Chapter 6: Changing Jobs
_6.1 Exploring New Opportunities
_6.2 Promotion vs. Job Change
_6.3 Preparing for Technical Interviews
_6.4 Transfer to a lower position
_6.5 Transfer to a higher position
_6.6 Adapting to a new job

[Part 2: Competent Software Developer]

Chapter 7: Developers who get the job done
_7.1 Focus on the most important tasks
_7.2 Unblocking the blockage
_7.3 Breaking down work into smaller units
_7.4 Estimating the time required for work
_7.5 Finding a Mentor
_7.6 Goodwill Account
_7.7 Take the lead

Chapter 8 Coding
_8.1 Coding Practice
_8.2 Readable code
_8.3 Writing high-quality code

Chapter 9 Software Development
_9.1 Becoming proficient in programming languages
_9.2 Debugging
_9.3 Refactoring
_9.4 Test

Chapter 10: Tools for Productive Software Developers
_10.1 Local development environment
_10.2 Frequently used tools
_10.3 How to maintain a rapid development cycle

[Part 3: The Multi-Talented Senior Engineer]

Chapter 11: Engineers Who Get the Job Done
_11.1 Perception and Reality
_11.2 Securing my own work time
_11.3 Complete it 'properly'
_11.4 Team
_11.5 Understanding the Big Picture

Chapter 12 Collaboration and Teamwork
_12.1 Code Review
_12.2 2-person collaboration
_12.3 Mentoring
_12.4 Feedback
_12.5 Collaboration with other engineering teams
_12.6 Spreading positive influence to others

Chapter 13 Software Engineering
_13.1 Language, Platform, and Domain
_13.2 Debugging
_13.3 Technical Debt
_13.4 Document
_13.5 Software Engineering Methodology

Chapter 14 Test
_14.1 Unit Tests
_14.2 Integration Testing
_14.3 UI Testing
_14.4 Mental Models for Automated Testing
_14.5 Tests for specific purposes
_14.6 Testing in a Production Environment
_14.7 Pros and Cons of Test Automation

Chapter 15 Software Architecture
_15.1 Design Documents, RFCs, and Architecture Documents
_15.2 Prototyping and PoC
_15.3 Domain-Driven Design
Software Architecture for _15.4 Release

[Part 4: Pragmatic Tech Lead]

Chapter 16 Project Management
_16.1 A company where engineers lead projects
_16.2 Why do we manage projects?
_16.3 Project Kickoff and Milestone Setting
_16.4 Software Physics
_16.5 Routine Project Management
_16.6 Risks and Dependencies
_16.7 Project Completion

Chapter 17 Production Release
_17.1 Extreme circumstances leading up to production release
_17.2 Typical Release Process
_17.3 Principles and Tools
_17.4 Additional Verification Steps
_17.5 Taking Practical Risks
_17.6 Additional Considerations
_17.7 Choosing an Approach

Chapter 18 Stakeholder Management
_18.1 The True Goal of Stakeholder Management
_18.2 Stakeholder Types
_18.3 Identifying Stakeholders
_18.4 Ongoing Management
_18.5 Uncooperative Stakeholders
_18.6 Learning from Stakeholders

Chapter 19 Team Structure
_19.1 Titles and Roles
_19.2 Team Process
_19.3 Improving team focus

Chapter 20: Team Dynamics
_20.1 Healthy Team
_20.2 Unhealthy Team
_20.3 A team experiencing growing pains
_20.4 Improving Team Dynamics
_20.5 Relationships with other teams

[Part 5: Staff and Senior Engineers as Role Models]

Chapter 21: Understanding Business
_21.1 North Star, KPI, OKR
_21.2 Team and Product
_21.3 Workplace
_21.4 Listed Companies
_21.5 Startup
_21.6 Industrial Sector

Chapter 22 Collaboration
_22.1 Office Politics
_22.2 Having a positive influence on others
_22.3 Collaboration with Managers
_22.4 Collaborating with Staff and Colleagues
_22.5 Expanding your personal network
_22.6 Helping Others

Chapter 23 Software Engineering
_23.1 Coding by Staff + Engineers
_23.2 Useful Engineering Processes
_23.3 Engineering Practices for Rapid Iteration
_23.4 Tools to Increase Engineer Efficiency
_23.5 Compliance and Privacy
_23.6 Safe Development

Chapter 24: Reliable Software Systems
_24.1 Responsibility for Reliability
_24.2 Logging
_24.3 Monitoring
_24.4 Notification
_24.5 Oncall
_24.6 Incident Management
_24.7 Building a Resilient System

Chapter 25 Software Architecture
_25.1 Keep it as simple as possible
_25.2 Know the technical terms, but don't overuse them.
_25.3 Architectural Debt
_25.4 One-way vs. two-way decisions
_25.5 The 'radius of influence' of decision making
_25.6 Scalable Architecture
_25.7 Maintain sufficient distance from practical work
_25.8 Characteristics of a Software Architect

[Part 6 Conclusion]

Chapter 26: Never Stop Learning
_26.1 Maintaining curiosity
_26.2 Continue Learning
_26.3 Keep challenging
_26.4 Understanding Industry Trends
_26.5 Break time

[supplement]
Different perspectives on good developers
The Developer's Role: Technology Meets People
The world will one day tell us to become leaders.
The developer mindset to adapt and execute on change
The Growth and Future of Developers in the AI ​​Era

Detailed image
Detailed Image 1

Into the book
I worked as a software engineer for about 10 years and as a manager for 5 years.
During my first few years as a developer, I received little professional advice.
I just persevered, believing that if I worked hard, I would eventually grow.
But after a few years, things changed when I missed the opportunity to be promoted to senior engineer.
I thought I would naturally get promoted, so I needed advice.
When I asked my manager how I could get promoted, I didn't get any specific feedback.
That day I decided.
If I were a manager, I would give my team members the advice they need to grow.

I became an engineering manager at Uber.
By then I had become a skilled engineer, but even then I never forgot the promise I had made to myself.
So I do my best to support my team members in their professional development and advancement when they're ready, and I provide clear, actionable feedback when I feel a colleague isn't ready to take the next step.

As the team grew, there was less and less time to mentor team members in depth.
Instead, I started to see a pattern in the feedback I was giving.
Based on that, I started writing blog posts about how to write well and conduct good code reviews.
The post received a lot of positive feedback, with many more people reading it and sharing it with their colleagues than expected.
From then on, I started writing this book.
--- From the Author's Note

Take charge of your career! There's no better career advice for software engineers.
No one values ​​their career as much as you do.
This lesson has resonated deeply with me as I've worked as a manager, helping people build their careers, achieve their goals, and realize their ambitions.
--- From "Chapter 2 Career Management"

The key to stakeholder management is to ensure everyone is on the same page and on the same page to ensure project success.
The reason many projects fail is because stakeholders have different ideas about what to do and how to do it.
--- From “Chapter 18: Managing Interested Managers”

Publisher's Review
From the operator of the 750,000-subscribed newsletter
A Roadmap to Successful Career Management


This book covers the essentials for managing a career, from entry-level software developer to staff/senior/senior engineer, organized along the "typical" career path structure of a software engineer.
The author has compiled essential information for developers based on lessons he learned while working as a developer but no one told him, as well as his experience coaching engineers at various career stages while working as a manager.
It provides the secrets to building a successful career, from the hard skills of the job, such as the concepts and approaches needed to grow as an engineer, to the soft skills needed to make a good impression on colleagues as a member of society.
The Korean edition includes columns filled with valuable experiences and wisdom gained from developers working in Korea.
We hope you'll gain valuable insights for your career through stories from developers with diverse backgrounds and expertise on what makes a good developer, their roles, how to grow as a leader, strategies for adapting to the rapidly changing technology market, and how the role of developers is changing with the advancement of AI.

Target audience

· Engineers interested in career management
· Undergraduate students curious about career management as a software engineer
· Junior developers who are curious about the skills needed for a career
· Software engineers who are about to be promoted or have just been promoted
· Engineers considering a career change

Key Contents

· Career stage-specific growth strategy
· Problem-solving methods through real-life examples
· Develop leadership and team management skills
GOODS SPECIFICS
- Date of issue: October 30, 2024
- Page count, weight, size: 568 pages | 1,026g | 153*223*29mm
- ISBN13: 9791169213073
- ISBN10: 1169213073

You may also like

카테고리