Successfully reported this slideshow.
Your SlideShare is downloading. ×

Engineering Career Paths.pdf

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
TDDinPractice.pdf
TDDinPractice.pdf
Loading in …3
×

Check these out next

1 of 26 Ad
Advertisement

More Related Content

Recently uploaded (20)

Advertisement

Engineering Career Paths.pdf

  1. 1. 1 Overview 1. How to think about your career 2. Technical Career Paths 3. Management and Executive Paths 4. Considerations on career choices. 5. General advice – Stories from my Career
  2. 2. How to think about your Career – G.R.O.W. Framework Goal: What do you want? Reality: What’s happening now? Options: What could you do? Will: What will you do? Where do you want to be in the next: 1, 3, or 5 years? What are the best/worst aspects of your current role? What skills do you need to learn, who can give you guidance? What is your plan for the next 3 months? If you didn't have to worry about money, what would be your dream job? Are you challenged enough? Too much? What tasks could you take on in order to grow? Whom will you ask for help and guidance? What are you deeply interested in? Have you gotten feedback (recently) about your abilities? Who can you ask for feedback? What is one simple thing you can do right now to move forward? While your manager can help you, ONLY YOU are finally responsible and accountable for your career growth. You must take action.
  3. 3. Engineering Path Expectations As you become more experienced, it's expected that you go from I-Shaped to Comb-shaped in your skills. Learn everything you can. Long term, you're expected to know it all anyway. Front end, back end, architecture... there is no such thing as "not relevant" to your long-term growth.
  4. 4. Technical Paths – Jr Developer GOAL #1: Deliver simple-medium complexity user stories, sometimes needing for help. GOAL #2: Grow your tech skills, as fast as you can. GOAL #3: Master your communications. First, try to go as deep as possible in a technology or framework. How does that technology work? What are the main frameworks? How do those work? Growth Examples for Java: Do you understand type erasure? Are you familiar with dependency injection? How does Spring do dependency injection? How does garbage collection WORK? What is a pointer? How does java handle these behind the scenes? Why do we use interfaces? Understand SOLID, DRY, etc.
  5. 5. Technical Paths – Mid Developer GOAL #1: Deliver simple-medium complexity user stories on your own, more advanced stories sometimes needing for help. GOAL #2: Keep growing your tech skills, as fast as you can. GOAL #3: Master your communications. First, try to go as deep as possible in a technology or framework. Take on some of your first technical breadth topics. Master databases, or state management libraries in React. Growth Examples for FE / React: Do you understand csrf, xss, jwt, oauth? How does React handle the component tree? How does React know what to update? How does the virtual DOM help performance? How can it actually HURT performance? How do react hooks work BEHIND THE SCENES?
  6. 6. Technical Paths – Senior Developer GOAL #1: Deliever medium-advanced level stories on your own with minimal help. GOAL #2: Coach jr. Developers and help them grow GOAL #3: Be a rolemodel for code that is clear, clean, maintainable, and performant. Be comb shaped. Understand enough about the end-to-end system that you understand what is going on. Be willing to own certain aspects of a system and ensure they work perfectly while coordinating with other parts of the system. Provide technical leadership and best practices. EVERYONE senior level and above is EXPECTED to help lead. Growth Examples Do you understand differences between OOP, AOP, and FOP programming styles? How can you debug application performance in a distributed system? How do you evaluate the best solution for a system design? Do you understand how everything works between the browser, to the server, to the database, and back?
  7. 7. Engineering Leadership At the senior level, you are expected to help lead. It's impossible for everyone to know everything, so everyone at the senior level must help communicate and suggest the best actions based on their knowledge. At higher levels, sometimes seniors are the only people who know certain things about a system: how it works, why choices were made. Help your team. Senior
  8. 8. Technical Paths – Senior Developer At the senior level, a few things change. • There will be fewer and fewer people able to coach/teach you. At the senior level, you are expected to drive your own learning. Your manager can help you focus your energy, but it is now your role to be the technical expert. You must have the skills, confidence, and communication ability to use that expertise. • After senior developer, it is only partly about skills. It is primarily about impact. As a senior developer, your success will not be measured in any academic way, but rather the success and failure of the systems you work on. - Does your system scale? - Does your system run relatively bug free? - Is the system fault tolerant? - Is it easy for other developers to work on your system? • At the staff/principal, etc level, the necessary impact only goes up. • Breadth: You should know "enough" about Agile, CI/CD, architecture, testing, logging, to be able to make informed decisions, and enough to be able to learn more on your own when needed.
  9. 9. Technical Paths – Staff/Principal Developer++ Examples from Amazon: If these systems they build don't work, it affects millions of customers and billions of dollars of revenue. The pressure is on. Your system MUST work.
  10. 10. Technical Paths – Architect Technical Architect Focused on specific technology or stack, goal is to optimize the utilization or value of that technology. Typical Goals: ● Maximizing throughput ● Ensuring proper design ● Guiding less experienced engineers ● Being a deep tech resource Solution Architect Focused on solving a specific business problem through a set of technologies Typical Goals: ● Design overall architecture ● Vendor and technology selection, for that problem. ● Ensuring technical specifications meet business needs Enterprise Architect Designing how multiple business units should interact with technology Typical Goals: ● Design architecture standards ● Vendor and technology selection and approval. ● Strategic/ecosystem level focus.
  11. 11. Management Path Engineers debug code and systems Managers debug people, process, teams, and organizations
  12. 12. Management – What makes a good Manager? Note: Even at GOOGLE, Only 1/10 traits for Management is technical. Good engineering managers stay technical enough to understand everything their engineers need.
  13. 13. Management is not about giving orders The goal of a manager IS NOT to tell you the answer to all your problems. The goal is to help you find the answers yourself, to set you up for success, and give you problems that they know you can solve well. They create processes to ensure that good decisions are made. Which is more powerful? To give you an answer today, or to teach you to answer that question/problem yourself – along with all similar problems, forever. An organization of highly capable people empowered to make their own decisions is vastly more successful than organizations where managers order people around all the time. Great managers make sure their team can succeed – with or without them.
  14. 14. Football Analogy – Managers as Coaches Imagine a football coach. The coach only wins if his team wins. Yet, he never kicks the ball. Instead, he must help his team be the absolute best players they can be, and ensure they work together as an amazing TEAM. It is only through them that he succeeds.
  15. 15. Engineering Manager / Lead Engineer GOAL #1: Manage Risks Risks include: - Technical risk, - People risks (resignations, friction, etc) - Project Risks GOAL #2: Empower/Grow the strength of the team (Hiring, coaching, etc) Debug Team processes, conflicts, etc. Help team members grow their skills, ensure appropriate challenge. Help set technical standards with input from their team. Create delivery forecasts with input from their team. Help break down stories with the rest of the team. Provide technical guidance and coaching Let their Manager/Director know about skills they are missing, need to hire. Contribute code and remain connected to day-to-day engineering delivery. While a Staff Engineer may provide coaching on how to write better code / Architecture, an Engineering Manager would help the team work together effectively, ensure everyone is growing, and work to leverage an Engineer's natural strengths/interests while keeping the team focused on results important to the company The EM can still coach on better code, and the Staff Engineer is free to give advice about an Engineer's interests. Just a difference in daily focus.
  16. 16. Management – Engineering Director/Head GOAL #1: MAKE SURE YOUR TEAMS SUCCEED GOAL #2: Invest in your teams' skills: i.e. Hiring/training/coaching STANDARDS GOAL #3: Be an effective long-term business partner Understand the large-scale/ongoing issues that teams face. Improve processes – making things simpler, faster, easier. Are we hiring the right people? How do we know? Do we have the right culture? The right focus/tools? Are we really using the best tech? How do we know? Engineering Director is the first role that is sometimes considered an executive role. An Engineering Director debugs coordination between teams and acts as a long-term planning partner with the overall business. This is the first level where a manager typically owns a financial budget (but not always). Best advice I ever got: "You must either hire well, or fire well. It's a lot more pleasant to hire well."
  17. 17. Management – VP+ GOAL #1: MAKE SURE YOUR COMPANY SUCCEEDS GOAL #2: Do we have a culture that fosters success? GOAL #3: What are the strategic investments we need to make? As a VP or other executive level manager, you are accountable for the results of an entire organization. At this level, you are not dealing with the day to day activities of each person. Instead, it is more like steering a ship – building systems of rewards, reporting, and feedback that ensure you (and others) get the right information to make decisions, ensure those decisions are made, and in particular coordinate with the rest of the business on long term strategy. A VP (Vice President) is an executive role. Executives are responsible for execution. They are accountable for the results of a large group of people. More and more, you need to make sure you have the right people, who have the right skills, doing the right thing. You need create and refine the systems that ensure these things happen.
  18. 18. How to think about your Career – G.R.O.W. Framework Goal: What do you want? Reality: What’s happening now? Options: What could you do? Will: What will you do? Where do you want to be in the next: 1, 3, or 5 years? What are the best/worst aspects of your current role? What skills do you need to learn, who can give you guidance? What is your plan for the next 3 months? If you didn't have to worry about money, what would be your dream job? Are you challenged enough? Too much? What tasks could you take on in order to grow? Whom will you ask for help and guidance? What are you deeply interested in? Have you gotten feedback (recently) about your abilities? Who can you ask for feedback? What is one simple thing you can do right now to move forward? Only you can choose your destiny. It's OK to change your mind and try different things. The most important part is to understand that you get out what you put in.
  19. 19. The importance of culture No matter your role, you can help contribute to a positive and empowering culture. Every person plays a part by honoring: Honesty, Humility, Drive, Courage, and Learning.
  20. 20. General Guidance Learn everything you can. Google/YouTube paid for my grad school. Why? (It wasn't because I was smart) I had gone to film school for 1 year. I thought it was a waste. When I got to grad school, I was the only person with that experience, so I was the one picked to have their education funded by Google, and help with video research. I thought all that learning about video was a waste, but it was the most valuable year of my education.
  21. 21. General Guidance Communication skills help you no matter what If you get the opportunity to write technical articles or do presentations or videos – do it. EVEN IF YOU THINK YOU SUCK. Story: Macmod.
  22. 22. General Guidance Help your team succeed Understand how your manager and co-workers are evaluated. Remember, your manager succeeds if you (and your team) succeed. With success, your manager is in a better position to help you even more. Understand company OKRs, KPIs, and why those goals were set. Good teamwork means a better career for everyone. Team success is your success.
  23. 23. General Guidance Be Empowered, Empower others 1. Make sure everyone (especially yourself) has a good idea of the decisions and actions for which they are responsible. * Speak up if you aren't clear 2. Once made, decisions are rarely second-guessed. * Trust your team 3. Information flows freely across organizational boundaries. * Share openly 4. Everyone usually has the information they need to understand the bottom-line impact of their day-to-day choices. * Understand the business and your role in it.
  24. 24. General Guidance Ask for help and coaching Remember that the goal of leaders and management is to make their teams succeed. It's better to ask for help and coaching than to hide. A good manager does not punish questions or the desire for growth. I've hired coaches, out of my own $. It's OK to ask for help.
  25. 25. General Guidance Balance No matter which path you pick, all the advanced roles require a BALANCE AND COMBINATION of skills. Don’t dismiss non-tech skills. +
  26. 26. Q / A

×