Developer Onboarding Builder
Create frictionless first-day experiences for new team members.
Core Workflow
-
Assess prerequisites: Identify required tools and access
-
Create setup guide: Step-by-step environment configuration
-
Design first task: Choose appropriate starter assignment
-
Add time estimates: Set expectations for each step
-
Document common issues: Preemptive troubleshooting
-
Introduce team: Context on people and structure
-
Provide codebase tour: Walkthrough of key areas
Onboarding Documentation Structure
ONBOARDING.md Template
Welcome to [Team/Project Name]! 🎉
This guide will help you get set up and productive on your first day.
Estimated completion time: 2-3 hours
Before You Start
Access Checklist
- GitHub organization access
- Slack workspace invitation
- Email account setup
- VPN credentials (if remote)
- Cloud console access (AWS/GCP/Azure)
- CI/CD dashboard access
- Project management tool (Jira/Linear)
Tools to Install
- Node.js 20+ (via Volta)
- pnpm 8+
- Docker Desktop
- PostgreSQL 15+
- VS Code or preferred editor
- Git configured with your work email
Day 1: Environment Setup
Step 1: Clone Repository (5 min)
git clone git@github.com:company/project-name.git
cd project-name
Why: Get the codebase on your machine
Troubleshooting:
-
SSH key not working? See GitHub SSH setup
-
Permission denied? Ask your manager to verify GitHub access
Step 2: Install Dependencies (10 min)
Install Volta (Node version manager)
curl https://get.volta.sh | bash
Install dependencies
pnpm install
Expected output: "Dependencies installed successfully"
Troubleshooting:
-
pnpm not found ? Restart terminal or run volta install pnpm
-
Installation hangs? Check VPN connection
Step 3: Configure Environment (10 min)
Copy environment template
cp .env.example .env
Edit .env with these values:
DATABASE_URL=postgresql://postgres:password@localhost:5432/projectname_dev REDIS_URL=redis://localhost:6379 API_KEY=ask-team-for-dev-key
Get credentials from:
-
Database: Local setup (see next step)
-
API keys: Ask @alice or @bob on Slack #dev-onboarding
-
External services: Check 1Password vault "Dev Credentials"
Troubleshooting:
-
Can't find credentials? Post in #dev-onboarding
-
Missing env var? Check .env.example for all required variables
Step 4: Setup Database (15 min)
Start PostgreSQL with Docker
docker run --name project-postgres
-e POSTGRES_PASSWORD=password
-p 5432:5432
-d postgres:15
Run migrations
pnpm db:migrate
Seed with test data
pnpm db:seed
Expected output: "Migration complete. Database seeded."
Verify: Open http://localhost:5432 and check for tables
Troubleshooting:
-
Port 5432 already in use? Kill existing process: lsof -ti:5432 | xargs kill
-
Migration fails? Drop and recreate: pnpm db:reset
Step 5: Start Development Server (5 min)
pnpm dev
Expected output:
✓ Ready on http://localhost:3000
Test: Open http://localhost:3000 - you should see the homepage
Troubleshooting:
-
Port 3000 in use? Kill process or change PORT in .env
-
Build errors? Clear cache: rm -rf .next && pnpm dev
Step 6: Run Tests (5 min)
pnpm test
Expected output: All tests passing ✓
If tests fail:
-
First time? This is a bug! Report in #dev-help
-
Known issue? Check #dev-help pinned messages
Day 1: Your First Task
Task: Fix a Starter Issue
We've labeled some issues as good-first-issue for new team members.
Goal: Successfully complete one small PR to learn our workflow
Steps:
-
Browse good first issues
-
Pick one that interests you (or ask for suggestion in #dev-onboarding)
-
Comment on the issue: "I'll take this!"
-
Create a branch: git checkout -b fix/issue-123-description
-
Make your changes
-
Write/update tests
-
Run pnpm lint and pnpm test
-
Commit following conventions
-
Push and create PR
-
Request review from your mentor
Estimated time: 2-4 hours
Success criteria:
-
Branch created with proper name
-
Code changes made
-
Tests written/updated
-
All checks passing
-
PR created with description
-
Code reviewed and merged
Mentors: @alice (backend), @bob (frontend), @charlie (full-stack)
Day 2-3: Codebase Tour
Project Structure Overview
src/ ├── app/ # Next.js routes (start here!) │ ├── api/ # API endpoints │ └── (auth)/ # Authentication pages ├── components/ # React components │ ├── ui/ # Base UI components │ └── features/ # Feature-specific components ├── lib/ # Utilities and helpers │ ├── api/ # API client │ ├── hooks/ # Custom React hooks │ └── utils/ # Helper functions ├── services/ # Business logic layer └── types/ # TypeScript definitions
Key Files to Understand
File What It Does When You'll Touch It
src/app/layout.tsx
Root layout & providers Adding global providers
src/lib/db.ts
Database client Database queries
src/lib/auth.ts
Authentication logic Auth-related features
src/middleware.ts
Request middleware Adding auth/redirects
Walking Tour (Read These Files in Order)
-
src/app/page.tsx
-
Homepage (entry point)
-
src/app/api/users/route.ts
-
Simple API endpoint
-
src/services/user.service.ts
-
Business logic example
-
src/components/ui/button.tsx
-
UI component pattern
-
src/lib/hooks/useUser.ts
-
Custom hook example
Exercise: Find the code that handles user registration. Hint: Start at the API route!
Common Patterns
API Route Pattern
// src/app/api/[resource]/route.ts export async function GET(req: Request) { // 1. Validate auth // 2. Parse request // 3. Call service layer // 4. Return response }
Service Layer Pattern
// src/services/[resource].service.ts export class UserService { async create(data: CreateUserDto) { // 1. Validate data // 2. Business logic // 3. Database operation // 4. Return result } }
Week 1: Learning Path
Day 1
-
Complete environment setup
-
Fix first issue
-
Meet your team (schedule 1:1s)
Day 2-3
-
Read codebase tour documents
-
Complete second issue (medium complexity)
-
Review 2-3 PRs from teammates
Day 4-5
-
Work on first feature (with mentor pairing)
-
Attend team standup/planning
-
Set up development tools (linters, extensions)
Team Structure
Engineering Team
Alice (@alice) - Tech Lead
-
Approves architecture decisions
-
Code review on complex PRs
-
Ask: System design questions
Bob (@bob) - Senior Backend Engineer
-
Database and API expert
-
Ask: Backend, performance questions
Charlie (@charlie) - Senior Frontend Engineer
-
UI/UX implementation
-
Ask: React, styling questions
Your Manager (@manager)
-
Weekly 1:1s on Fridays 2pm
-
Career development discussions
-
Ask: Process, priorities, career questions
Communication Channels
-
#dev-general - General development discussion
-
#dev-help - Ask questions, get unstuck
-
#dev-onboarding - New member support
-
#dev-releases - Release announcements
-
#dev-alerts - Production alerts
Meeting Schedule
-
Daily Standup - 10:00 AM (15 min)
-
Sprint Planning - Mondays 2:00 PM (1 hour)
-
Team Retro - Fridays 4:00 PM (45 min)
-
Tech Talks - Thursdays 3:00 PM (30 min)
Development Workflow
Daily Workflow
-
Morning: Check Slack, pull latest main
-
Standup: Share yesterday, today, blockers
-
Code: Work on assigned tickets
-
Lunch: Team usually eats at 12:30
-
Afternoon: Continue coding, review PRs
-
End of day: Update ticket status, push work
PR Review Guidelines
When reviewing PRs:
-
Check code quality and style
-
Verify tests cover changes
-
Run the code locally if significant
-
Ask questions if unclear
-
Approve when satisfied
Getting Code Reviewed
When requesting review:
-
Self-review first
-
Add clear description
-
Link related issues
-
Tag appropriate reviewers
-
Address feedback promptly
Common Gotchas
Database
Problem: relation "users" does not exist
Solution: Run migrations: pnpm db:migrate
Problem: Seed data not appearing Solution: Reset database: pnpm db:reset
Development Server
Problem: Changes not reflecting Solution:
-
Hard refresh (Cmd+Shift+R)
-
Clear .next folder: rm -rf .next
-
Restart dev server
Problem: Port already in use Solution: Kill process: lsof -ti:3000 | xargs kill
Environment
Problem: Missing environment variable Solution: Check .env.example, add to your .env
Problem: API key not working Solution: Verify it's the dev key, not prod (ask team)
Resources
Documentation
-
Architecture Overview
-
API Reference
-
Contributing Guide
-
Style Guide
Learning Resources
-
Next.js Documentation
-
Prisma Guides
-
TypeScript Handbook
Internal Resources
-
Company Wiki: https://wiki.company.com
-
Design System: https://design.company.com
-
API Playground: https://api-dev.company.com
Getting Help
When You're Stuck (5-15-30 Rule)
-
5 minutes: Try to solve it yourself
-
15 minutes: Search docs, Stack Overflow, past issues
-
30 minutes: Ask in #dev-help with context
Good Question Template
What I'm trying to do: [goal] What I tried: [attempts] Error message: [full error] Environment: [OS, Node version, etc.] Related code: [link to file/line]
Who to Ask
-
Setup issues: #dev-onboarding or #dev-help
-
Code questions: #dev-help or your mentor
-
Process questions: Your manager
-
Urgent/production: #dev-alerts
Week 1 Checklist
By end of week 1, you should have:
-
Completed environment setup
-
Fixed 2-3 good-first-issues
-
Created first feature PR
-
Met with all team members
-
Attended all team meetings
-
Read key documentation
-
Understood development workflow
-
Know how to get help
Feedback
We're always improving onboarding! Please share:
-
What went well?
-
What was confusing?
-
What's missing?
Share in: #dev-onboarding or with your manager
Welcome to the team! We're excited to have you here! 🚀
Onboarding Best Practices
Time Estimates
- Be realistic with timing
- Include buffer for troubleshooting
- Track actual time vs estimated
Progressive Complexity
- Day 1: Setup and simple task
- Week 1: Understanding patterns
- Month 1: Independent features
Clear Success Criteria
- Checklist for each step
- Objective completion markers
- Regular check-ins
Preemptive Troubleshooting
- Document known issues
- Provide solutions upfront
- Update based on new dev feedback
Human Connection
- Introduce team members
- Schedule 1:1s
- Provide mentors
First Task Selection Criteria
Good first task should:
- Be completable in 2-4 hours
- Touch multiple areas lightly
- Have clear acceptance criteria
- Require PR and review
- Be genuinely useful (not busy work)
- Have mentor availability
Examples:
- Fix typo in error message (touches: frontend, i18n, testing)
- Add validation to API endpoint (touches: backend, testing, docs)
- Improve loading state (touches: frontend, UX, components)
Documentation Components
Essential Sections
- Prerequisites and access
- Step-by-step setup with time estimates
- First task assignment
- Codebase tour
- Team structure
- Communication channels
- Common issues and solutions
- Resources and next steps
Optional but Valuable
- Video walkthrough
- Pair programming schedule
- Reading list
- Architecture diagrams
- Glossary of terms
Maintenance
Keep Updated
- Review after each new hire
- Update tool versions
- Refresh access instructions
- Add new common issues
Collect Feedback
- Exit survey after week 1
- Regular check-ins
- Track time to productivity
- Document pain points
Output Checklist
Complete onboarding package includes:
- ONBOARDING.md with step-by-step guide
- Time estimates for each step
- First task identified and documented
- Team structure and communication
- Troubleshooting for common issues
- Links to all necessary resources
- Checklists for progress tracking
- Feedback mechanism
- Mentor assignments
- Expected timeline (day/week/month)