Mentoring Junior Engineers at Slack - The Lead Developer UK 2017

Mentoring Junior Engineers at Slack - The Lead Developer UK 2017

Abstract:
I have a degree from Northwestern University in film and musical theater. After working in theater for a few years, I had a crazy idea that I might be able to teach myself how to code. To get my foot in the door, I had to convince very smart people that I can write software because I can do ballet. It took a few tries.

Today I am a software engineer at Slack and a feature lead for our enterprise billing systems. In the year since I started working at Slack, not once has anyone made me feel stupid. Slack is empowering people to thrive. The fact that I still love what I'm doing and have the confidence to take on challenging projects is a reflection of what my manager is doing right. Attendees will learn best practices they can apply to empower junior members on their teams.

A3f9110bac726e9de95ccb14f99744ac?s=128

Carly Robinson

June 09, 2017
Tweet

Transcript

  1. Mentoring Junior Engineers at Slack HQ By Carly Robinson Application

    Software Engineer, Enterprise Grid
  2. About Me: ★ Current Software Engineer at Slack on Enterprise

    Grid ★ Former Musical Theater Actress ◦ Hairspray, Grease, Singin’ In The Rain, Pajama Game ★ Former Assistant Director to Freedom For All Foundation ◦ Non Profit that works to End Human Trafficking
  3. Overview ★ Transitioning from Acting to Software Engineering ★ The

    Promise of Mentorship ★ What Slack Does Right ★ Key Best Practices to Optimize your Junior Engineers ★ Engineering Culture
  4. Transitioning from Acting to Software Engineering Me on Graduation Day

    - aka when I had no idea I would ever become a software engineer
  5. Transitioning from Acting to Software Engineering ★ Acting => Engineering

    was not easy ★ Codecademy.com => Hackbright ★ Two 12-week coding intensives ★ Discovered an unexpected love of computers ★ Drive to learn the craft of programming
  6. Transitioning from Acting to Software Engineering ★ Junior Engineers are

    listening to The Horror Stories. ★ Imposter Syndrome starts before the job.
  7. Transitioning from Acting to Software Engineering ★ ...Despite the bad

    press, working in Tech is incredibly empowering ★ Tech is a tough industry, but not as bad as theater ★ The Tech Industry needs cultures of empathy and inclusion
  8. The Promise of Mentorship ★ Most companies promise mentorship to

    Junior Engineers ★ The quality of mentorship varies in practice ★ The role of engineering culture helps or hinders
  9. Perks of Being A Junior Engineer at Slack ★ “We’ll

    Grow you as an Engineer” - Cal Henderson, Slack CTO ★ Today: Feature Lead for Sales Tax and International Billing Systems, Enterprise Grid ★ I still love engineering ★ There have been few times where I have felt like an imposter
  10. - What makes Slack a supportive environment? - What made

    my mentorship experience effective? Perks of Being A Junior Engineer at Slack
  11. Mentorship is a Relationship: Establish a Foundation Upfront ★ The

    success of a mentorship relationship rests on the expectations established at the beginning ★ Figure out if it will be a good fit before it’s too late.
  12. Mentorship is A Relationship: Ask Questions, and Listen. ★ How

    do you prefer to be communicated with? ★ What does a good mentorship relationship mean to you? ★ What are your goals? Where do you see yourself in a year? ★ What do you expect from a mentee? ★ Be specific. Write down your answers.
  13. Mentorship is a Relationship - Encourage Self Reflection ★ Have

    your mentee communicate what they perceive as their technical strengths and weaknesses, and work together to develop a plan. ★ Mentee: “I learn the most when I’m out of my comfort zone, and I know that I’m weak in computer science theory. Are there any courses you could recommend? Or projects that could help me strengthen this area?” ★ Mentee: “I don’t know much about unit testing, but I’d like to start incorporating it into my workflow.”
  14. ★ Both mentor and mentee should reflect on their communication

    strengths and weaknesses, and share them with each other in the beginning. ★ Example: ◦ Mentee: “I prefer direct communication, but I’ve been told that sometimes it can come off curt. If it bothers you please tell me, but know that it is never my intention to be rude.” ◦ Mentor: “Please asks questions, but when you ask, please give me context for what you have done to try to find the answer on your own first, so I know what to suggest.” Communication + Self Reflection
  15. Learning Style vs. Teaching Style ★ MENTORS: ◦ How would

    you describe your teaching style? ◦ How do you feel about questions? What do you expect from your junior engineer? ◦ Do you have any pet peeves that they should avoid? ★ MENTEES: ◦ Learn how to ask good questions ◦ Approach feedback with a gratitude mindset ◦ Have empathy for your manager, and advocate for what you need
  16. ★ As a mentor, what does a “successful” junior engineer

    look like to you? ★ What do you expect from them in 3, 6, 12 months? Clear Expectations + Accountability ★ What does a successful mentor look like to you? How do you see yourself succeeding in this role? ★ Write your answers down. Share them with your mentee.
  17. Regular Meetings and Measurable Goals ★ Set up a recurring

    weekly meeting ★ Work together to develop specific, measurable goals
  18. Regular Meetings and Measurable Goals ★ Track progress ★ Acknowledge

    success
  19. Code Review ★ Be a resource for questions and an

    advocate for best practices related to design, architecture, and data structures
  20. Code Review ★ Communicate the expected coding and documentation standards

    for your company
  21. Code Review ★ Be aware of your tone. Respect goes

    a long way.
  22. Code Review ★ If you give a code example, make

    sure it root it in a lesson, state why it’s important, and why it will make them a better engineer.
  23. Code Review ★ Don’t be afraid to dig deeper

  24. Cultivate Empathy + Respect ★ Empathy in Pull Requests ★

    Intellectual Humility ★ Be aware of your emotions. ★ Reframe your internal “idiot” reaction: ◦ This is stupid => I don’t understand why they made this choice. Maybe they see something I am not seeing? ★ Mistakes are learning opportunities
  25. ★ The Six Month Stretch - Imposter Danger Zone ◦

    Mentee is no longer new ◦ Expectations are higher ★ Junior Engineer Fears ◦ Am I improving at the appropriate pace? ◦ I kind of know what I’m doing. I really hope I don’t suck. Opportunities for Growth + Impact
  26. ★ Demonstrated belief in a Junior Engineer’s Growth and Potential

    accelerates Improvement ★ What is a stretch project? ◦ You have more autonomy than you are comfortable with on a project with relatively high visibility. ◦ The technical difficulty level introduces a real potential for failure. Opportunities for Growth + Impact
  27. Perks of Being A Junior Engineer at Slack

  28. “Ever tried. Ever failed. No Matter. Fail again. Fail better.”

    - Samuel Beckett
  29. A Holistic Approach to Thriving ★ Creating Growth Infrastructure (for

    People) ◦ Opt-in Personal and Professional Development Funds ◦ Weekly Brownbag Presentations ◦ Non-technical workshops ★ Office Hours with Top Engineers
  30. A Culture of Learning vs. Academia Let’s be real; the

    tech industry is a workforce highly saturated by graduates with elite degrees. I’d like to limit the scope of what “academia” refers to. Academia is prestigious because of its association with the noble cause of intellectual rigor and reason. However, too often individuals privileged with an excellent education confuse intelligence with aggressive arrogance. In an ideal world, the best ideas win, and everyone is happy. But when a workplace environment becomes a battle of the brightest mind, team and individual morale are too often undermined by people overcompensating for weaknesses with a series of tactics that directly or indirectly aim to make their coworkers feel stupid.
  31. A Positive Culture of Learning ★ People matter. Protect your

    values. ★ How I describe my co-workers at Slack? ◦ Hardworking, talented, humble, kind, eager to share knowledge ★ Hired for Humility and Craftsmanship ★ Zero Tolerance for Arrogance ★ The engineers at Slack were not just hired for their talent, but for their demonstrated values of craftsmanship, courtesy, and empathy in their work and interactions with others.
  32. Developing a Growth Mindset ★ Demonstrated belief in a Junior

    Engineer’s Growth and Potential accelerates improvement ★ When I’ve made mistakes, not once has anyone gone out of their way to make me feel stupid or incapable — and I think that says a lot in itself. Instead, I’ve been encouraged to develop a growth mindset.
  33. Take Aways ★ Mentorship is A Relationship ◦ Clear Expectations

    - Know Yourself and Be Direct ◦ Mentors + Mentees : Make the Time ◦ Set Goals, Track Progress, Acknowledge Success ★ Take off the Training Wheels ◦ Empowering via Empathy in Code Review ◦ Measurable, Concrete Goals ◦ Fail Again. Fail better. ★ A Culture of Learning and Intellectual Humility ◦ Hire for Humility and Craftsmanship ◦ Creating Growth Infrastructure (for People) ◦ Growth Mindset
  34. Thank you! @carlyhasredhair carly@carly.codes