On this page
I met with representatives from Coinbase, Google, Lyft, Netflix, Robinhood, Spotify, Shopify, Twitter, Twilio, and Uber to discuss engineering onboarding best practices. Below is a summary of the key insights.
Engineering Onboarding Goals
- Create a world-class onboarding experience: Model excellence in onboarding.
- Tool Accessibility: Ensure engineers have access to the necessary tools and information when needed.
- Holistic Understanding: Provide a comprehensive overview of company technologies and the engineering ecosystem.
- Increase Engineering Velocity: Reduce time to effectiveness and prepare engineers to start shipping code.
- Cultural Integration: Introduce engineering culture and guiding principles, fostering cultural immersion and camaraderie.
- Foster Collaboration: Encourage engagement with engineers outside their immediate team.
- Foundational Knowledge: Provide an understanding of stack processes for building further knowledge.
- Mission Alignment: Unite engineers towards a shared mission.
Onboarding Sections
Asynchronous Learning
- Flexible Training: Deliver training and materials that can be accessed anytime.
- Supplemental Resources: Offer additional training from third-party providers like LinkedIn Learning, Pluralsight, and Udemy.
Synchronous Sessions
- Leadership Interaction: Host fireside chats with engineering leaders.
- Tooling and Processes: Share team expectations and norms.
- Expert Sessions: Conduct lightning talks and Ask Me Anything (AMA) sessions with subject matter experts.
- Technical Talks: Organize tech talks by experts to educate new hires.
Belonging and Support
- 1:1 Pairing: Pair new hires with experienced team members for on-the-job training.
- Sense of Belonging: Communicate the new hire’s place within the team and company.
- Buddy System: Assign buddies to support and guide new hires.
- Mentorship: Provide formal or informal mentorship opportunities.
- Social Events: Organize events to promote socializing and team bonding.
- Personalized Onboarding: 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 Insights: Offer training on different business areas within the company.
- Hands-on Exercises: Include code lab exercises or starter tasks.
- Support Tickets: Assign support tickets to help new hires learn about the product and support processes.
- Compliance Training: Cover security, privacy, anti-harassment, etc.
- Developer Handbook: Develop a comprehensive handbook covering development practices and procedures.
- Department Guide: Create a guide with an overview of each department.
- Engineering Overview: Provide an overview of the engineering organization and its role within the company.
- Glossary: Offer a list of acronyms and terms used within the company.
- High-level Architecture: Overview of the company's technology stack and architecture.
- Labs: Develop labs to teach the top programming languages and DevOps tools.
- Company Overviews: Provide high-level overviews of the company, department, team, and engineering culture.
- Product Training: Train new hires on the company's products.
- Tools Catalog: List common tools used by each department and instructions on how to use them.
Team Specific
- Team Introductions: Arrange opportunities for new hires to meet and connect with their team.
- Team-specific Onboarding: Create tasks and documents specific to each team.
Tips
- 30/60/90 Goals: Set 1-week, 2-week, and 30-day written goals on Day 1.
- Confluence Pages: Create a page for each team member outlining their role, responsibilities, and contact information.
- Identify Overlaps: Find commonalities across different onboarding documents to create a generalized onboarding program.
- Engineering Personas: Identify different types of engineers and develop targeted training.
- Checklist: Develop a checklist of important tasks and activities for new hires to complete.
- Learning Path: Map out a clear learning path for new hires.
- Narrative-driven Training: Use storytelling techniques for engaging training.
- Remote-friendly: Ensure onboarding accommodates both synchronous and asynchronous remote learning.
- Development Setup: Provide instructions for setting up the development environment.
Evaluation
- Surveys: Conduct course satisfaction surveys at the end of each session or day.
- Self-assessment: Use surveys to gauge self-perceived confidence in completing key tasks.
- Manager Feedback: Survey managers on their confidence in the new hire's capabilities.
- Periodic Surveys: Conduct onboarding experience surveys at 1 month, 3 months, and 6 months.
- Facilitator Feedback: Have the DevEd team observe and provide feedback to facilitators.
- Interactive Assessments: Use tools like Camtasia, Ellucidat, or Articulate to add assessments within videos or slides.
- Polls: Use Zoom or Google Meet polls to test understanding.
- Retrospectives: Hold stand-up retrospectives with onboarding participants.
- Productivity Metrics: Measure developer productivity, such as time to first commit.
- New Hire Feedback: Ask recent hires what they wish they’d known sooner and document it.
Example Onboarding Modules
- Setup Your Computer: Written and video tutorials for setting up the development environment.
- Engineering Ecosystem: Overview of engineering categories and their contributions to company goals.
- Coding Practices: Walk-through of the software design life cycle and the Paved Road (Golden Path).
- Technical Architecture: Overview of infrastructure, including cloud and microservices.
- Productivity Tips: Essential services, quick tips, and how to find information and ask for help.
- Security Essentials: Training on secure code deployment and common security challenges.
- Tools Training: Separate sessions for development tools (e.g., Docker, Git, internal CLI).
Discipline-Specific Onboarding
- Backend
- Data
- Frontend
- GraphQL
- Mobile
- Observability/Monitoring
- Production
- Platform
- Resiliency
Example Workflow
- L&D Coordination: Align schedules with the company’s Learning & Development team.
- Automated Emails: Send instructions on setting up the development environment and provide resource links.
- Event Management: Use a platform to manage onboarding events for new engineers.
- Recorded Sessions: Host recorded sessions and slides in a Learning Management System with interactive elements.
- Live AMA Sessions: Conduct live AMA sessions with SMEs, collect and vote on questions, and store Q&A in a knowledge base.