Creates comprehensive developer onboarding documentation and materials including step-by-step setup guides, first-task assignments, expected time per step, common troubleshooting, team introductions,...
Create frictionless first-day experiences for new team members.
# 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](https://volta.sh/))
- [ ] 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)
```bash
git clone git@github.com:company/project-name.git
cd project-name
```
Why: Get the codebase on your machine
Troubleshooting:
# 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# 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:
Troubleshooting:
# 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:
lsof -ti:5432 | xargs killpnpm db:resetpnpm dev
Expected output:
ā Ready on http://localhost:3000
Test: Open http://localhost:3000 - you should see the homepage
Troubleshooting:
rm -rf .next && pnpm devpnpm test
Expected output: All tests passing ā
If tests fail:
We've labeled some issues as good-first-issue for new team members.
Goal: Successfully complete one small PR to learn our workflow
Steps:
git checkout -b fix/issue-123-descriptionpnpm lint and pnpm testEstimated time: 2-4 hours
Success criteria:
Mentors: @alice (backend), @bob (frontend), @charlie (full-stack)
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
| 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 |
src/app/page.tsx - Homepage (entry point)src/app/api/users/route.ts - Simple API endpointsrc/services/user.service.ts - Business logic examplesrc/components/ui/button.tsx - UI component patternsrc/lib/hooks/useUser.ts - Custom hook exampleExercise: Find the code that handles user registration. Hint: Start at the API route!
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
}
}
Alice (@alice) - Tech Lead
Bob (@bob) - Senior Backend Engineer
Charlie (@charlie) - Senior Frontend Engineer
Your Manager (@manager)
When reviewing PRs:
When requesting review:
Problem: relation "users" does not exist
Solution: Run migrations: pnpm db:migrate
Problem: Seed data not appearing
Solution: Reset database: pnpm db:reset
Problem: Changes not reflecting Solution:
rm -rf .nextProblem: Port already in use
Solution: Kill process: lsof -ti:3000 | xargs kill
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)
**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]
By end of week 1, you should have:
We're always improving onboarding! Please share:
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
1. Prerequisites and access
2. Step-by-step setup with time estimates
3. First task assignment
4. Codebase tour
5. Team structure
6. Communication channels
7. Common issues and solutions
8. 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)