0% found this document useful (0 votes)
11 views32 pages

Timeless Career Advice For Engineers Slides

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views32 pages

Timeless Career Advice For Engineers Slides

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 32

Timeless Career Advice for

Software Engineers

By Louie Bacaj
Agenda
1. Core Principles for Engineering Careers
○ Quick Overview of the Basics of Software Engineering Careers
○ Timeless and evergreen advice I saw work for hundreds of engineers

2. Getting Ahead as a Software Engineer


My decade + experience in tech
1. Junior Dev around 2010
2. Worked at Startups: Jet
3. Worked at Big Cos: Bank of America, Walmart
4. Climbed 6 levels from 2015 - 2019
5. Grew to manage multiple teams, 50+ engineers
6. Managed Product Managers and TPMs
7. Helped Countless people get promoted
8. Had amazing Mentors and Managers
9. In 2021 walked away from nearly $1m in TC
The Start as an Engineer
1. Do whatever it takes to get your foot in the door

2. Experience overrides everything, even degrees

3. The Interview Process is hard


a. But there are many great resources!
b. Communication Skills
c. Whiteboard Skills
Startup vs Big Tech

1. What are your goals?


a. To learn A LOT? Or to make more money?
b. To get promoted fast and defer money to later?

2. What if you can't do startup or big tech?


a. Just get experience and move to one of those!
Tech Company vs Non Tech Company

1. In a Tech Company
○ There is an Engineering Organization
○ There are Product and Design Organizations
○ There is a Business Organization
○ These three (sometimes 4) orgs that partner together with equal say.

2. Non Tech Company


○ Business Organization Rules
○ Tech is a Second Class Citizen
An Engineering Organization usually reports to the CTO

1. Tech orgs are broken up into these groups:


○ Usually Engineering Teams are separated by Domains or by Products
○ Almost always has an IT organization (managing the laptops / tools / access / accounts etc.)
○ Almost always has an Infrastructure / DevOps group (managing hardware / deployments / cloud)
○ Almost always has Security
○ Almost always includes Technical Product and Project people
○ Sometimes includes Data Science
○ Sometimes includes Product and Design (although rarer now)
The Levels and U.S. Salaries (TC, includes Equity + Bonuses)

1. Junior Engineers (Usually only entry level engineers)


○ 75k - 200k ~
2. Mid-Level Engineers(titles like Software Engineer II or Software Engineer III)
○ 85k - 250k ~
3. Senior Engineers (Some companies have Senior Engineer I and II, etc)
○ 95k - 350k ~
4. Staff Engineers (Around this level some start becoming TLs and Architects)
○ 125k - 550k ~
5. Principal Engineers (Senior Managers / Associate Directors)
○ 175k - 750k ~
6. Distinguished Engineers+ (Senior Directors / VPs / EVPs / CTOs)
○ 250k - 1m+
Individual Contributor vs Manager

1. Management is usually only an option once you get to certain levels

2. The major difference is that Managers don't usually code


○ There are exceptions where some folks have a transitory hybrid role or at a startup.

3. Almost ALL respectable tech companies drill ICs and Managers on a whiteboard
○ Sometimes there are non-technical people in management roles, although more rare now.

4. Tech leads / Architects vs Team leads


What does a Software Engineer do?

1. Partners with Product and Business (and Design for FE devs)

2. Great Software Engineers on Product teams earn a seat at the table


○ For every feature and task they have say
○ I say earn because not every org works like that but you need to push it to be like that.

3. Engineers after Sprint Plannings, Groomings, and Standups build Software.


What does a Software Engineer do continued..

1. In the best places they own and support the software forever.
○ These places are the best for engineering careers to grow.
○ They do on calls
○ They write automated tests
A Software Engineer is not a Code Monkey.

It is not a factory job.

Roles that treat Engineers as such are not


good for Engineering Careers
Let’s Talk about Value

You are there to Add Value first and foremost.

If your code does not add value it does not matter


how good it is.
The code
● Every team I ran at a Big Co. or Startup followed this pattern:

● Make it work
○ Also make it secure, getting hacked can be ruinous
○ Make it work also means it adds value

● Make it fast and Make it Beautiful


○ Depend on the business type
■ Speed is a feature in B2C
■ Maintainability is always important
Growth Fixes Many Problems
If you can grow the pie, you’ll have all the time and
resources in the world to do what you want.

This was incredibly true at a Startup but was also


true in a big company.
The Soft Skills
● The world is run by people!
○ Find and work with great people
○ Have conversations
○ Never be a jerk to the people you work with or interview
○ Learn to communicate with people.

● If you learn to write you'll pass 90%+ of those who wont


○ Write blog posts about your work, its free credibility for you AND your company
○ Write internal memos, write architecture documents, write documentation, just write!
○ Highlight your team, Give! It will all come back to you.
○ Writing is thinking! You'll out-think people if you write
○ A public body of essays is FAR BETTER than a resume and LinkedIn
The Soft Skills cont…
● Present your ideas and what you are working on to people regularly
○ Hear about what other people are working on
○ Put in front of fellow engineers, present designs, present what your working on
○ If your company has design reviews that are engineering wide, go there and present
■ It’s tough to show your architecture to others and get negative feedback
● People are more understanding than you think, they are afraid to present too

● Setup team wide then eventually company wide initiatives


○ Setup tech talks where the team learns from the outside world
○ Setup company blog if one does not exist, if it does get your team involved
○ Setup design reviews for architecture docs
○ Setup boot camps and teach other teams
Empathy is a Superpower as an Engineer
People that stare at screens seem to be less empathetic to others
situations.

If you can change that, your career will sky rocket.


The mythical 10x Engineer

Why are some of the smartest people in the


world saying this?
Compounding Engineers vs Detracting Engineers

1. Compounding Engineers aka 10x Engineers


○ They are just humans that consistently make solid tradeoffs
○ Their knowledge compounds and they compound the teams efforts
○ They live the pareto distribution, the 80 / 20 rule.
○ They understand leverage well, they can go in debt and then get out
○ They can communicate and help their whole team

2. Detracting Engineers aka .1x Engineers


○ Not .1x because they are slow
○ .1x because they cause more work for the team
○ .1x because they don't communicate
○ .1x because they are Jerks
Let's talk a little more about risk and leverage
The formula to get promoted has two steps

1. Add Value

2. Make Noise

We will talk in depth about both.


How do promotions work?

1. Always about future scope


○ It’s about what you did for them
○ But really it's about what else you can do for them

2. From Promo Nomination to Official Promotion


○ Calibrations at multiple levels
○ Always a fight between managers
○ At times done by committee, especially for very Senior ICs
Promos at Startups vs Big Companies

1. Startups are about


a. Speed wins
b. Wearing multiple hats
c. Taking more hills, planting flags
d. Taking on debt then doubling back to fix it.

2. Big Companies
a. Working well with others
b. Doing things “right”
c. Writing maintainable code
Promos and Relationships

1. Add Value

2. Make Noise and have difficult conversations


Promos and Time and Scope

1. It’s not instant!

2. Time at level matters unless they are desperate and you are doing incredible work
Company Culture and Values

1. The teams culture will impact you far more than the company
○ Your direct manager and TLs and Partners matter far more

2. Company Culture usually sets the tone for the teams


○ Jet had trust and transparency at its core
○ Walmart had frugality at its core
One on One’s

1. The most important meetings of your career are One on Ones

2. Have One on Ones with your manager REGULARLY


○ Ask them, if the meeting lapses, add it to their calendar.

3. Don’t stop with your manager


○ Have them with peers, business people, product people, engineers from other teams, other leaders
Mid year and Annual reviews

1. Mid year reviews and annual reviews


○ Take these seriously, I believe in them very much
○ That means take notes on your work throughout the year
○ Write a great review for yourself
○ Even if your company does not have a culture of this force it
What to learn

1. The timeless stuff


○ Learn the fundamentals
i. Data Structures and Algorithms
ii. Operating Systems
iii. Understand Concurrency, understand Threads, understand Asynchronous programing
iv. Understand Storage and Databases
○ Learn at least one Functional Programming Language and at least one OO (Imperative) language well
○ Learn patterns of successful systems as you become more senior it's more important
○ As you become more senior learn Domain Driven Design if you can
○ Play around with different frameworks and technologies
○ Learn some fundamentals of scaling a system, of uptime, and DevOps
The Junior to Senior to Very Senior Progression

1. As a Junior
○ Can you do your own tasks? Great!
○ Can you ask questions and ask for help?
2. As a Senior
○ You have to do your own tasks and you have to make sure lower ranks do them too
○ You have to mentor juniors, help them when they have questions
○ You have to help up, you have to help your TL with code reviews and designs
○ You have to start being representing your team to the outside world, other teams, etc.
○ You have to start doing high leverage activities
3. Very Senior
○ You have to do all the stuff a senior does
○ But you have to understand and set the architecture and patterns of your team
○ You have to set the core principles e.g. we don't just introduce random stuff into our system
○ You have to build things not just for your team but other teams (high leverage)
○ You have to educate at all levels, including up
○ Etc.
Thank you!
Thank you for watching.

You might also like