Slide 1

Slide 1 text

How to keep solid engineering skills as an Engineering Manager? Oren Ellenbogen VP Engineering at Forter and maker of potentially useful stuff: SoftwareLeadWeekly, LeadingSnowflakes, ManagerREADME, Downleft

Slide 2

Slide 2 text

So much to know... Handling the basics (code, OS, network, etc.) Coding techniques (TDD, DDD, etc.) Tools (IDEs, CLI, etc.) Pair programming, Code/Design Reviews CI, tests, deployments, CD Ops (debugging, monitoring, alerts, etc.) Distributed systems concepts (queues, back pressure, etc.) System design (composability, DX, etc.) The hottest and latest languages, libs & tools! Effective Communication Project Management Product thinking Development Processes Business understanding Org design

Slide 3

Slide 3 text

“I’m still hands on” You manage a team of: 1. 1-2 engineers 2. 2-4 engineers 3. 5+ engineers 4. Manager of managers (+different seniority ratio) Should you be hands on?

Slide 4

Slide 4 text

Legit concerns 1. “Nobody will hire me (for my next job) if I cannot write code” 2. “I won’t be able to provide good feedback if I cannot understand how things work and do it myself. People won’t trust me or my opinion” 3. “I won’t understand new technologies” 4. “It will be harder to have empathy for my teammates without knowing how easy it is to do or understand something in our systems” Right? Anything else?

Slide 5

Slide 5 text

“Solid” engineering skills The framing is a bit misleading. Desirable engineering skills is maybe a better way to look at it? Useful engineering skills? The question is - to whom? For what?

Slide 6

Slide 6 text

Complement, don’t compete As Engineering Managers, what is our biggest LEVERAGE to help our team? What’s in it for them to have us as their managers? 1. Design requirements, trade offs, risks, teach 2. Operate sustainability, quality of life, focus 3. Hire puzzle, level up, momentum 4. Envision pitch, alignment, personal growth

Slide 7

Slide 7 text

Investing time in your eng skills “It will be harder to have empathy for my teammates without knowing how easy it is to do or understand something in our systems” 30% in the present: Write code in areas you’ll gain insights and feel pains → Level up Design & Operate 70% in the future: Research for missing knowledge your team is lacking → Level up Envision & Hire A day per week? More? Less? Hours should fluctuate, keep the ratios

Slide 8

Slide 8 text

How to do X → How X works (and why was it invented) Seek to understand how things work. fundamentals. How to choose the right level of data consistency for the app’s reads/writes? Who invented Spark? What was missing at the time? How is it different? How Virtual DOM works? What should I worry about when using event-loop based framework? Why Kafka is using append-only log? What becomes more difficult when using microservices?

Slide 9

Slide 9 text

Design Great talks & posts: - Dan North - Decisions, Decisions - Replicated Data Consistency Explained Through Baseball - Silence is Golden: Coordination-Avoiding Systems Design - Turning the database inside out

Slide 10

Slide 10 text

Operate Great talks & posts: - How to Write Documentation for People that Don't Read - Practicalities of Productionizing Distributed Systems - How NOT to Measure Latency - Stability Patterns & Antipatterns

Slide 11

Slide 11 text

Hire Great talks & posts: - There is no talent shortage - https://staffeng.com - The Accidental Diminisher

Slide 12

Slide 12 text

Envision Great talks & posts: - How to Move Beyond Gamification - Streams as the team interface - https://www.useronboard.com/

Slide 13

Slide 13 text

Is it working? The EM’s technical skills time Team’s technical skills Common end result Desired end result But they still seek your opinion and respect it Envision → Hire

Slide 14

Slide 14 text

How to keep solid engineering skills as an Engineering Manager? Would you like to go much deeper into the 70%? Ping me for a workshop I plan... Feedback? Questions? Say hello 👋 oren.ellenbogen@gmail.com oren@forter.com Build empathy. Understand the fundamentals. Live in the future.