I met with Coinbase, Google, Lyft, Netflix, Robinhood, Spotify, Shopify, Twitter, Twilio, and Uber to discuss Engineering Onboarding best practices and compiled them into a summary.
Engineer Onboarding Goals
- Create a world-class onboarding experience and model excellence
- Ensuring engineers have the tools necessary to find the information when they need it in the future.
- Provide a holistic understanding of company technologies and the engineering ecosystem.
- Increase engineering velocity, reduce time to effectiveness, get engineers ready to ship.
- Introduction to engineering culture and guiding principles, cultural immersion, imbue culture, and camaraderie.
- Foster collaboration and community with the opportunity to engage with other engineers outside their team.
- Stack processes understanding, give them the foundation for which they can stack additional knowledge.
- Unite engineers to a shared mission.
- Asynchronous - Deliver training and materials that can be consumed at any time.
- Supplemental Training - Provide additional training from third-party providers like Linkedin Learning, Pluralsight, Udemy.
- Fireside chat with eng leader - Provide an opportunity for new hires to meet and hear from their engineering leader.
- Internal tooling and processes - Share information on team expectations and norms.
- Lightning talks and Ask me Anything (AMA) consultations with SME’s - Host short, focused talks and Q&A sessions with subject matter experts.
- Tech talks - Host talks by tech experts to educate new hires.
Belonging and Support
- 1:1 pairing - Pair new hires with an experienced team member for on-the-job training.
- Belonging - Communicate that the new hire belongs to the team and company.
- Buddy - Assign a buddy to support and guide the new hire.
- Mentoring - Provide formal or informal mentorship opportunities.
- Social events to foster connection - Organize events to promote socializing and team bonding.
- Personalizing onboarding to the type of engineer as well as a general onboarding for all engineers - Tailor onboarding to meet the unique needs of each type of engineer.
Documentation and Knowledge Sharing
- Architecture Overview - Provide a detailed overview of the company's technical architecture.
- Business area deep dives - Provide training and information about the different business areas within the company.
- Code Lab exercises or starter tasks - Provide opportunities for new hires to practice coding and learn by doing.
- Completing support tickets - Assign support tickets to new hires to help them learn about the product and support processes.
- Compliance Training - Provide training on security, privacy, anti-harassment, etc.
- Create a developer handbook - Develop a comprehensive handbook that covers development practices and procedures.
- Department Index & Descriptions - Create a guide that provides an overview of each department in the organization.
- Engineering org overview - Provide an overview of the engineering organization and how it fits within the company.
- Glossary - Provide a list of acronyms and terms used within the company.
- High-level architecture - Provide an overview of the company's technology stack and architecture.
- Labs - Develop labs to teach new hires the top programming languages and devops tools.
- Overviews - Provide high-level overviews of the company, department, team, and engineering culture.
- Product Training - Train new hires on the company's product and how it works.
- Tools Catalog - Provide a list of common tools used by each department and how to use them.
- Meeting the Team - Set up opportunities for new hires to meet and connect with their team.
- Team-specific documents and tasks - Create team-specific onboarding tasks and documents.
- 30/60/90 - Set 1-week, 2-week, and 30-day written goals on Day 1.
- Individual Confluence Pages - Create a page for each team member that outlines their role, responsibilities, and contact information.
- Identify Overlaps - Identify commonalities across different onboarding documents and create a generalized onboarding based on those overlaps.
- Create New Hire Engineering Personas - Identify the different types of engineers and develop training to meet their unique needs.
- Checklist of things all engineers should have completed - Develop a checklist of important tasks and activities for new hires to complete.
- Learning path - Map out a clear path of learning for new hires.
- Narrative-driven - Use storytelling techniques to deliver engaging training.
- Remote-friendly - Ensure that onboarding is designed to accommodate both synchronous and asynchronous remote learning.
- Tactical (Development environment setup) - Set up the development environment for new hires.
- Course satisfaction survey offered at the end of each session or the end of each day.
- If using google forms for surveys use an app script to convert the form submissions into a report for training facilitators
- Survey of Self-perceived confidence to complete key tasks
- Manager Survey of manager reported confidence across key tasks for employee
- Onboarding experience surveys at 1 month, 3 months, and 6 months
- DevEd team observing and giving notes to facilitators.
- In-activity questions (using Camtasia, Ellucidat or Articulate to add assessments of understanding in videos or slides)
- Zoom or Google Meet polls to test understanding
- Stand up retrospective with onboarding participants at the end of onboarding
- Measuring developer productivity (time to first commit)
- Retrospection - Ask your most recent new hire what they wish they'd been told sooner, write that down
Example of Onboarding Modules
- Setup your Computer - A written and video tutorial with step-by-step instructions on how to set up your development environment on your laptop.
- Engineering Ecosystem - A high-level overview of the various engineering categories at your company (examples: platform, security, data, device, cloud). Including what they do, how they contribute to the overall company goals, and how to contact them with questions.
- How we code - A high-level walk-through of the software design life cycle at your company. Including an introduction to the Paved Road (Golden Path) which are the tools and services that are officially supported by your Platform Engineering teams.
- Tech Architecture - An overview of the infrastructure (cloud, microservices, etc..)
- Tech Essentials - A list of productivity tips including how to find information, ask for help, search code, go links, and all the various essential services or quick tips.
- Security Essentials - how to securely deploy code, an overview of the tools and systems used to solve common security challenges. Provide context on some of the security choices in the cloud architecture, and get introduced to the security teams.
- Tools Training - You may need separate sessions for the tools used for development at your company. Examples: Docker, Generic OSX tools, Git, Homebrew, Internal CLI, Internal Libraries or Plugins, Internal Deployment Tools, Jenkins.
Examples of Discipline-Specific Onboarding
- Coordinate with the company L&D team to align schedules since L&D performs the general company onboarding.
- Automated email that points to an onboarding website with instructions on how to set up their computer for development, a high-level overview of engineering, and quick links of commonly used resources with descriptions.
- An onboarding course in an event management platform with automated enrollment into events for new engineers.
- Recorded onboarding sessions and slides hosted in a Learning Management System with engaging activities, self-assessment, labs, and discussion forums.
- Live AMA sessions with various SMEs on tools and services. Collect and vote on questions using a service like Sli.do. Store all questions and answers in a knowledge base as a resource for future new hires.