onboarding-helper by aiskillstore
Generate comprehensive onboarding documentation and guides for new developers joining your team o...
Content & Writing
85 Stars
2 Forks
Updated Jan 19, 2026, 04:39 AM
Why Use This
This skill provides specialized capabilities for aiskillstore's codebase.
Use Cases
- Developing new features in the aiskillstore repository
- Refactoring existing code to follow aiskillstore standards
- Understanding and working with aiskillstore's codebase structure
Install Guide
2 steps- 1
Skip this step if Ananke is already installed.
- 2
Skill Snapshot
Auto scan of skill assets. Informational only.
Valid SKILL.md
Checks against SKILL.md specification
Source & Community
Skill Stats
SKILL.md 1170 Lines
Total Files 1
Total Size 0 B
License NOASSERTION
--- name: onboarding-helper description: Generate comprehensive onboarding documentation and guides for new developers joining your team o... --- # Onboarding Helper Skill Generate comprehensive onboarding documentation and guides for new developers joining your team or project. ## Instructions You are an onboarding and developer experience expert. When invoked: 1. **Assess Onboarding Needs**: - Project complexity and technology stack - Team size and structure - Development workflow and processes - Domain knowledge requirements - Common onboarding challenges 2. **Create Onboarding Materials**: - Welcome documentation - Development environment setup guides - Codebase architecture overview - First-task tutorials - Team processes and conventions 3. **Organize Learning Path**: - Day 1, Week 1, Month 1 goals - Progressive complexity - Hands-on exercises - Checkpoint milestones - Resources and references 4. **Document Team Culture**: - Communication channels - Meeting schedules - Code review practices - Decision-making processes - Team values and norms 5. **Enable Self-Service**: - FAQ sections - Troubleshooting guides - Links to resources - Who to ask for what - Common gotchas ## Onboarding Documentation Structure ### Complete Onboarding Guide Template ```markdown # Welcome to [Project Name]! π Welcome! We're excited to have you on the team. This guide will help you get up to speed quickly and smoothly. ## Table of Contents 1. [Overview](#overview) 2. [Day 1: Getting Started](#day-1-getting-started) 3. [Week 1: Core Concepts](#week-1-core-concepts) 4. [Month 1: Making Impact](#month-1-making-impact) 5. [Team & Processes](#team--processes) 6. [Resources](#resources) 7. [FAQ](#faq) --- ## Overview ### What We're Building We're building a modern e-commerce platform that helps small businesses sell online. Our platform handles: - Product catalog management - Shopping cart and checkout - Payment processing (Stripe integration) - Order fulfillment and tracking - Customer relationship management **Our Mission**: Make e-commerce accessible to businesses of all sizes. **Our Users**: Small to medium business owners with 10-1000 products. ### Technology Stack **Frontend**: - React 18 with TypeScript - Redux Toolkit for state management - Material-UI component library - React Query for API calls - Vite for build tooling **Backend**: - Node.js with Express - PostgreSQL database - Redis for caching - Stripe for payments - AWS S3 for file storage **Infrastructure**: - Docker for local development - Kubernetes for production - GitHub Actions for CI/CD - AWS (EC2, RDS, S3, CloudFront) - DataDog for monitoring ### Project Statistics - **Started**: January 2023 - **Team Size**: 12 engineers (4 frontend, 5 backend, 3 full-stack) - **Codebase**: ~150K lines of code - **Active Users**: 5,000+ businesses - **Monthly Transactions**: $2M+ --- ## Day 1: Getting Started ### Your First Day Checklist - [ ] Complete HR onboarding - [ ] Get added to communication channels - [ ] Set up development environment - [ ] Clone the repository - [ ] Run the application locally - [ ] Deploy to your personal dev environment - [ ] Introduce yourself to the team - [ ] Schedule 1:1s with your manager and buddy ### Access & Accounts **Required Accounts**: 1. **GitHub** - Source code ([github.com/company/project](https://github.com)) - Request access from @engineering-manager 2. **Slack** - Team communication - Channels: #engineering, #frontend, #backend, #general 3. **Jira** - Project management ([company.atlassian.net](https://company.atlassian.net)) 4. **Figma** - Design files 5. **AWS Console** - Production access (read-only initially) 6. **DataDog** - Monitoring and logs **Development Tools**: - Docker Desktop - Node.js 18+ (use nvm) - PostgreSQL client (psql or pgAdmin) - Postman or Insomnia (API testing) - VS Code (recommended, see extensions below) ### Environment Setup #### 1. Install Prerequisites **macOS**: ```bash # Install Homebrew /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # Install Node.js via nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash nvm install 18 nvm use 18 # Install Docker Desktop brew install --cask docker # Install PostgreSQL client brew install postgresql@14 ``` **Windows**: ```bash # Install using Chocolatey choco install nodejs-lts docker-desktop postgresql14 ``` #### 2. Clone Repository ```bash # Clone the repo git clone [email protected]:company/ecommerce-platform.git cd ecommerce-platform # Install dependencies npm install # Copy environment variables cp .env.example .env.local ``` #### 3. Configure Environment Variables Edit `.env.local`: ```bash # Database (local Docker) DATABASE_URL=postgresql://postgres:password@localhost:5432/ecommerce_dev # Redis REDIS_URL=redis://localhost:6379 # Stripe (use test keys) STRIPE_SECRET_KEY=sk_test_... # Get from @backend-lead STRIPE_PUBLISHABLE_KEY=pk_test_... # AWS S3 (dev bucket) AWS_ACCESS_KEY_ID=... # Get from @devops AWS_SECRET_ACCESS_KEY=... AWS_S3_BUCKET=ecommerce-dev-uploads # Session SESSION_SECRET=your-random-secret-here ``` **Where to get credentials**: - Stripe test keys: 1Password vault "Development Secrets" - AWS credentials: Request from @devops in #engineering - Session secret: Generate with `openssl rand -base64 32` #### 4. Start Development Environment ```bash # Start Docker services (PostgreSQL, Redis) docker-compose up -d # Run database migrations npm run db:migrate # Seed database with sample data npm run db:seed # Start development server npm run dev ``` **Expected output**: ``` β Database migrated successfully β Seeded 100 products, 50 users β Server running on http://localhost:3000 β API available at http://localhost:3000/api ``` #### 5. Verify Installation Open your browser to http://localhost:3000 You should see the application home page with sample products. **Test credentials**: - Email: `[email protected]` - Password: `password123` **Troubleshooting**: - **Port 3000 in use**: Kill the process with `lsof -ti:3000 | xargs kill -9` - **Database connection failed**: Check Docker is running with `docker ps` - **Module not found**: Delete `node_modules` and run `npm install` again See [Troubleshooting Guide](docs/TROUBLESHOOTING.md) for more help. ### VS Code Setup **Recommended Extensions**: ```json { "recommendations": [ "dbaeumer.vscode-eslint", "esbenp.prettier-vscode", "bradlc.vscode-tailwindcss", "ms-azuretools.vscode-docker", "eamodio.gitlens", "orta.vscode-jest", "prisma.prisma" ] } ``` **Settings** (`.vscode/settings.json`): ```json { "editor.formatOnSave": true, "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.codeActionsOnSave": { "source.fixAll.eslint": true }, "typescript.tsdk": "node_modules/typescript/lib" } ``` ### Your First Commit Let's make a simple change to verify your setup: 1. **Create a branch**: ```bash git checkout -b test/your-name-setup ``` 2. **Add your name to the team page**: Edit `src/pages/About.tsx`: ```typescript const teamMembers = [ // ... existing members { name: 'Your Name', role: 'Software Engineer', joinedDate: '2024-01-15' } ]; ``` 3. **Test your change**: ```bash npm run test npm run lint ``` 4. **Commit and push**: ```bash git add . git commit -m "docs: Add [Your Name] to team page" git push origin test/your-name-setup ``` 5. **Create a PR**: - Go to GitHub - Click "Compare & pull request" - Fill out the PR template - Request review from your buddy Congrats on your first contribution! π ### End of Day 1 **You should now have**: - β Development environment running locally - β Application accessible in your browser - β First PR created - β Access to all team tools and channels **Questions?** Ask in #engineering or DM your buddy! --- ## Week 1: Core Concepts ### Project Architecture #### High-Level Architecture ``` βββββββββββββββ β Browser β β (React) β ββββββββ¬βββββββ β HTTPS βΌ βββββββββββββββ ββββββββββββββββ β API Gateway ββββββΆβ Auth Serviceβ β (Express) β β (JWT) β ββββββββ¬βββββββ ββββββββββββββββ β ββββββΆ Product Service β ββββββΆ Order Service β ββββββΆ Payment Service βββββΆ Stripe API β ββββββΆ User Service β βΌ ββββββββββββ βPostgreSQLβ ββββββββββββ ``` #### Directory Structure ``` ecommerce-platform/ βββ client/ # Frontend React app β βββ src/ β β βββ components/ # Reusable UI components β β βββ pages/ # Page components β β βββ hooks/ # Custom React hooks β β βββ store/ # Redux store and slices β β βββ api/ # API client functions β β βββ utils/ # Utility functions β β βββ types/ # TypeScript type definitions β βββ tests/ # Frontend tests β βββ server/ # Backend Node.js app β βββ src/ β β βββ routes/ # Express route handlers β β βββ controllers/ # Business logic β β βββ services/ # External integrations β β βββ models/ # Database models (Prisma) β β βββ middleware/ # Express middleware β β βββ utils/ # Utility functions β β βββ types/ # TypeScript types β βββ tests/ # Backend tests β βββ docs/ # Documentation βββ scripts/ # Build and deployment scripts βββ .github/ # GitHub Actions workflows βββ docker-compose.yml # Local development services ``` ### Key Concepts #### 1. Authentication Flow ```javascript // User logs in POST /api/auth/login { email, password } β // Server validates credentials // Generates JWT token β // Client stores token localStorage.setItem('token', token) β // Client includes token in requests Authorization: Bearer <token> β // Server validates token // Attaches user to request req.user = decodedToken ``` **Code location**: `server/src/middleware/auth.ts` #### 2. State Management (Redux) We use Redux Toolkit for client-side state: ```typescript // Store structure { auth: { user: User | null, isAuthenticated: boolean, loading: boolean }, cart: { items: CartItem[], total: number }, products: { list: Product[], filters: FilterState, loading: boolean } } ``` **Reading from store**: ```typescript import { useAppSelector } from '@/hooks/redux'; const user = useAppSelector(state => state.auth.user); const cartItems = useAppSelector(state => state.cart.items); ``` **Dispatching actions**: ```typescript import { useAppDispatch } from '@/hooks/redux'; import { addToCart } from '@/store/slices/cartSlice'; const dispatch = useAppDispatch(); dispatch(addToCart({ productId, quantity: 1 })); ``` **Code location**: `client/src/store/` #### 3. API Communication We use React Query for server state: ```typescript import { useQuery, useMutation } from '@tanstack/react-query'; import { api } from '@/api/client'; // Fetching data const { data, isLoading, error } = useQuery({ queryKey: ['products'], queryFn: () => api.products.getAll() }); // Mutating data const mutation = useMutation({ mutationFn: (product) => api.products.create(product), onSuccess: () => { queryClient.invalidateQueries(['products']); } }); ``` **Code location**: `client/src/api/` #### 4. Database Access (Prisma) We use Prisma ORM for database operations: ```typescript import { prisma } from '@/lib/prisma'; // Find one const user = await prisma.user.findUnique({ where: { id: userId } }); // Find many with filters const products = await prisma.product.findMany({ where: { category: 'electronics', price: { lt: 1000 } }, include: { images: true, reviews: true } }); // Create const order = await prisma.order.create({ data: { userId, total: 100, items: { create: [ { productId: 1, quantity: 2, price: 50 } ] } } }); ``` **Code location**: `server/src/models/` **Schema**: `prisma/schema.prisma` ### Your First Real Task **Goal**: Add a "Recently Viewed" feature to product pages. **Requirements**: - Track products a user views - Display last 5 viewed products - Persist across sessions (use localStorage) - Show on product detail page **Steps**: 1. **Create a feature branch**: ```bash git checkout -b feature/recently-viewed-products ``` 2. **Frontend: Add hook** (`client/src/hooks/useRecentlyViewed.ts`): ```typescript export function useRecentlyViewed() { const addToRecentlyViewed = (product: Product) => { // Get existing const recent = JSON.parse(localStorage.getItem('recentlyViewed') || '[]'); // Add new (avoid duplicates) const updated = [ product, ...recent.filter((p: Product) => p.id !== product.id) ].slice(0, 5); // Save localStorage.setItem('recentlyViewed', JSON.stringify(updated)); }; const getRecentlyViewed = (): Product[] => { return JSON.parse(localStorage.getItem('recentlyViewed') || '[]'); }; return { addToRecentlyViewed, getRecentlyViewed }; } ``` 3. **Frontend: Use in product page** (`client/src/pages/ProductDetail.tsx`): ```typescript const { addToRecentlyViewed, getRecentlyViewed } = useRecentlyViewed(); useEffect(() => { if (product) { addToRecentlyViewed(product); } }, [product]); const recentProducts = getRecentlyViewed(); ``` 4. **Frontend: Display component** (`client/src/components/RecentlyViewed.tsx`): ```typescript export function RecentlyViewed({ currentProductId }: Props) { const { getRecentlyViewed } = useRecentlyViewed(); const products = getRecentlyViewed() .filter(p => p.id !== currentProductId); if (products.length === 0) return null; return ( <section> <h2>Recently Viewed</h2> <ProductGrid products={products} /> </section> ); } ``` 5. **Add tests**: ```typescript describe('useRecentlyViewed', () => { it('should add product to recently viewed', () => { const { addToRecentlyViewed, getRecentlyViewed } = useRecentlyViewed(); addToRecentlyViewed(mockProduct); expect(getRecentlyViewed()).toContainEqual(mockProduct); }); it('should limit to 5 products', () => { // Add 6 products, check only 5 remain }); it('should move duplicate to front', () => { // Add same product twice, check it appears once at front }); }); ``` 6. **Test manually**: - View several products - Check localStorage in DevTools - Verify list appears on product pages - Test edge cases (empty state, single item) 7. **Create PR**: - Use PR template - Add screenshots - Request review from @frontend-team **Resources**: - [React Hooks Guide](https://react.dev/reference/react) - [LocalStorage API](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage) - [Our Testing Guide](docs/TESTING.md) ### Week 1 Learning Resources **Must Read**: - [ ] [Project README](README.md) - [ ] [Architecture Decision Records](docs/adr/) - [ ] [API Documentation](docs/API.md) - [ ] [Contributing Guidelines](CONTRIBUTING.md) **Optional Deep Dives**: - [ ] [Redux Toolkit Docs](https://redux-toolkit.js.org/) - [ ] [React Query Docs](https://tanstack.com/query/latest) - [ ] [Prisma Docs](https://www.prisma.io/docs) - [ ] [Our Style Guide](docs/STYLE_GUIDE.md) ### End of Week 1 **You should now**: - β Understand overall architecture - β Know key technologies and tools - β Have completed your first feature - β Understand our development workflow - β Feel comfortable asking questions **Checkpoint Meeting**: Schedule 30min with your manager to review progress. --- ## Month 1: Making Impact ### Month 1 Goals 1. **Ship Features**: Complete 3-5 features independently 2. **Code Reviews**: Provide meaningful feedback on 10+ PRs 3. **Fix Bugs**: Tackle 2-3 bug fixes 4. **Improve Something**: Find and fix a small pain point 5. **Learn Domain**: Understand e-commerce business basics ### Suggested Feature Ideas **Beginner Friendly**: - Add product sorting (price, rating, newest) - Implement wishlist functionality - Create order history page - Add email notifications **Intermediate**: - Implement product reviews and ratings - Add search autocomplete - Create admin dashboard for orders - Optimize image loading performance **Advanced**: - Implement shopping cart abandonment recovery - Add real-time inventory tracking - Create recommendation engine - Set up A/B testing framework **Finding Tasks**: Check Jira board for issues labeled `good-first-issue`. ### Code Review Best Practices **As an Author**: - Keep PRs small (< 400 lines changed) - Write clear descriptions - Add screenshots for UI changes - Respond to feedback promptly - Test thoroughly before requesting review **As a Reviewer**: - Review within 24 hours - Be kind and constructive - Ask questions rather than demand changes - Highlight good practices - Approve when ready (don't nitpick) **Review Checklist**: - [ ] Code follows style guide - [ ] Tests included and passing - [ ] No console.logs in production code - [ ] Error handling implemented - [ ] Performance considerations addressed - [ ] Security best practices followed **Resources**: [Code Review Guide](docs/CODE_REVIEW.md) ### Testing Guidelines **What to Test**: - Business logic (always) - User interactions (important flows) - Edge cases and error states - API integrations (with mocks) **Testing Pyramid**: ``` /\ / \ E2E Tests (few) /ββββ\ / \ Integration Tests (some) /ββββββββ\ / \ Unit Tests (many) /ββββββββββββ\ ``` **Running Tests**: ```bash # All tests npm test # Watch mode npm test -- --watch # Coverage npm test -- --coverage # Specific file npm test UserService.test.ts ``` **Writing Tests**: ```typescript describe('CartService', () => { describe('addToCart', () => { it('should add item to empty cart', () => { // Arrange const cart = new Cart(); const item = { productId: 1, quantity: 2 }; // Act cart.addItem(item); // Assert expect(cart.items).toHaveLength(1); expect(cart.items[0]).toEqual(item); }); it('should increase quantity if item exists', () => { // Test implementation }); it('should throw error if quantity is negative', () => { // Test implementation }); }); }); ``` **Resources**: [Testing Guide](docs/TESTING.md) ### Deployment Process **Environments**: - **Development**: Your local machine - **Staging**: https://staging.ecommerce.example.com - **Production**: https://ecommerce.example.com **Deployment Flow**: ``` main branch β βΌ CI runs (tests, lint, build) β βΌ Auto-deploy to Staging β βΌ Manual QA testing β βΌ Create release tag β βΌ Deploy to Production (gradual rollout) ``` **You can deploy**: Staging (automatic on merge to main) **You cannot deploy**: Production (requires approval) **Monitoring**: - Logs: DataDog dashboard - Errors: Sentry alerts - Metrics: Custom dashboards --- ## Team & Processes ### Team Structure **Engineering Team**: - **Engineering Manager**: @alice (1:1s, career growth) - **Tech Lead**: @bob (architecture decisions, technical direction) - **Frontend Team** (4 engineers): @carol, @dave, @eve, @frank - **Backend Team** (5 engineers): @grace, @henry, @ivy, @jack, @kate - **Full-Stack** (3 engineers): @liam, @maya, @noah **Adjacent Teams**: - **Product**: @olivia (product manager) - **Design**: @peter, @quinn (UI/UX designers) - **QA**: @rachel, @sam (test engineers) - **DevOps**: @taylor (infrastructure) ### Communication Channels **Slack Channels**: - `#engineering` - General engineering discussions - `#frontend` - Frontend-specific topics - `#backend` - Backend-specific topics - `#deploys` - Deployment notifications - `#incidents` - Production issues - `#random` - Non-work chat **When to use what**: - **Slack**: Quick questions, discussions, FYIs - **Jira**: Task tracking, bug reports - **GitHub**: Code discussions, PR reviews - **Email**: External communication, formal notices - **Zoom**: Meetings, pair programming, deep discussions ### Meetings **Weekly**: - **Team Standup** (Mon/Wed/Fri, 10am, 15min) - What you did - What you're doing - Any blockers - **Sprint Planning** (Monday, 1pm, 1hr) - Plan next sprint - Estimate stories - **Retro** (Friday, 2pm, 45min) - What went well - What could improve - Action items **Bi-weekly**: - **1:1 with Manager** (30min) - Career growth - Feedback - Questions **Monthly**: - **All-Hands** (First Friday, 3pm, 1hr) - Company updates - Team showcases **Meeting Norms**: - Cameras on when possible - Mute when not speaking - Be on time - Come prepared - Take notes ### Development Workflow **Git Workflow**: ``` main (protected) ββ feature/add-wishlist ββ fix/cart-bug ββ refactor/payment-service ``` **Branch Naming**: - `feature/description` - New features - `fix/description` - Bug fixes - `refactor/description` - Code refactoring - `docs/description` - Documentation - `test/description` - Tests only **Commit Messages**: ``` type(scope): description feat(cart): add wishlist functionality fix(auth): resolve token expiration issue docs(readme): update setup instructions test(orders): add integration tests refactor(database): optimize queries ``` **PR Process**: 1. Create feature branch 2. Make changes 3. Write tests 4. Create PR (use template) 5. Request review (minimum 1 approval) 6. Address feedback 7. Merge (squash and merge) ### On-Call Rotation **You won't be on-call** for your first 3 months. When you join rotation: - 1 week on-call per month - Respond to PagerDuty alerts - Fix production issues - Escalate if needed **Resources**: [On-Call Runbook](docs/ON_CALL.md) --- ## Resources ### Documentation - [README](README.md) - Project overview - [Architecture](docs/ARCHITECTURE.md) - System design - [API Docs](docs/API.md) - API reference - [Contributing](CONTRIBUTING.md) - How to contribute - [Style Guide](docs/STYLE_GUIDE.md) - Code conventions - [Testing Guide](docs/TESTING.md) - Testing practices - [Deployment](docs/DEPLOYMENT.md) - Deployment process - [Troubleshooting](docs/TROUBLESHOOTING.md) - Common issues ### Learning Resources **JavaScript/TypeScript**: - [TypeScript Handbook](https://www.typescriptlang.org/docs/) - [JavaScript.info](https://javascript.info/) - [You Don't Know JS](https://github.com/getify/You-Dont-Know-JS) **React**: - [React Docs](https://react.dev) - [React TypeScript Cheatsheet](https://react-typescript-cheatsheet.netlify.app/) - [Epic React by Kent C. Dodds](https://epicreact.dev/) **Node.js**: - [Node.js Best Practices](https://github.com/goldbergyoni/nodebestpractices) - [Express.js Guide](https://expressjs.com/en/guide/routing.html) **Databases**: - [Prisma Guides](https://www.prisma.io/docs/guides) - [PostgreSQL Tutorial](https://www.postgresqltutorial.com/) **System Design**: - [System Design Primer](https://github.com/donnemartin/system-design-primer) - [Web Architecture 101](https://engineering.videoblocks.com/web-architecture-101-a3224e126947) ### Internal Tools - **1Password**: Shared credentials - **Notion**: Team wiki and docs - **Figma**: Design files - **DataDog**: Monitoring and logs - **Sentry**: Error tracking - **GitHub**: Code repository - **Jira**: Project management ### Your Buddy Your onboarding buddy is **@buddy-name**. **Your buddy will**: - Answer day-to-day questions - Review your first few PRs - Introduce you to the team - Help you navigate processes - Meet with you weekly (first month) **Don't hesitate to ask them anything!** --- ## FAQ ### Development **Q: How do I reset my local database?** ```bash npm run db:reset # Drops all data and re-runs migrations npm run db:seed # Adds sample data ``` **Q: Tests are failing locally but passing in CI. Why?** - Check Node version matches (use `nvm use`) - Clear `node_modules` and reinstall - Check for environment-specific tests **Q: How do I debug the backend?** Add `debugger;` statement and run: ```bash node --inspect-brk server/src/index.ts ``` Then open Chrome DevTools. **Q: Where do I find API credentials for development?** Check 1Password vault "Development Secrets" or ask in #engineering. ### Code & Practices **Q: When should I create a new component vs. modify existing?** - Create new: Reusable, self-contained functionality - Modify existing: Extending current component's capabilities - When in doubt, ask in PR review **Q: How much test coverage is expected?** - Aim for 80% overall - 100% for business-critical logic (payments, auth) - Focus on valuable tests, not just coverage numbers **Q: Can I refactor code I'm working on?** Yes, but: - Keep refactoring in separate commits - Don't mix feature work with large refactors - For big refactors, create separate PR **Q: What if I disagree with PR feedback?** - Discuss politely in PR comments - Explain your reasoning - Escalate to tech lead if needed - Remember: we're all learning ### Process **Q: How do I report a production bug?** 1. Post in #incidents with details 2. Create Jira ticket (type: Bug, priority: based on severity) 3. If urgent, ping on-call engineer **Q: Can I work on something not in Jira?** - Small improvements: Yes, create ticket after - Large projects: Check with manager first - Tech debt: Discuss in sprint planning **Q: How do I request time off?** - Add to team calendar - Message manager on Slack - Update Jira board if you have active work **Q: I'm stuck on a problem for hours. What should I do?** 1. Try debugging and Googling (30 min) 2. Ask in #engineering (don't struggle alone) 3. Schedule pairing session with teammate 4. Escalate to tech lead if still stuck **Rule of thumb**: Ask for help after 30 minutes of being stuck. ### Career & Growth **Q: How is performance evaluated?** - Quarterly reviews with manager - Based on: code quality, velocity, collaboration, growth - Transparent rubric provided **Q: How do I learn more about [specific topic]?** - Ask in #engineering for recommendations - Check internal wiki for resources - Request Udemy/book budget from manager **Q: Can I switch teams/projects?** - Discuss with manager after 6 months - Internal mobility encouraged --- ## Welcome Aboard! Remember: - **Ask Questions**: No question is too small - **Take Breaks**: Onboarding is exhausting - **Be Patient**: It takes 3+ months to feel productive - **Have Fun**: We're building something cool together! **Need help?** Your buddy (@buddy-name) and manager (@manager-name) are here for you. Welcome to the team! π ``` ## Usage Examples ``` @onboarding-helper @onboarding-helper --type full-guide @onboarding-helper --type quick-start @onboarding-helper --type architecture-overview @onboarding-helper --focus frontend @onboarding-helper --include-exercises ``` ## Best Practices ### Make It Personal - Address new team member by name - Assign a buddy/mentor - Include team photos and bios - Share team culture and values ### Progressive Disclosure - Day 1: Just get running - Week 1: Understand basics - Month 1: Ship features - Month 3: Full productivity ### Make It Interactive - Include hands-on exercises - Provide starter tasks - Encourage pair programming - Set up regular check-ins ### Keep It Updated - Review quarterly - Get feedback from new hires - Update for tech stack changes - Improve based on common questions ### Make It Discoverable - Central location (wiki, README) - Easy to navigate - Searchable - Version controlled ## Notes - Onboarding is an ongoing process, not a one-time event - Great onboarding significantly reduces time-to-productivity - Documentation should be discoverable and up-to-date - Assign mentors/buddies for personal guidance - Include both technical and cultural onboarding - Celebrate early wins to build confidence - Check in regularly during first 3 months - Encourage questions and create safe learning environment - Provide clear learning path with milestones - Make resources easily accessible - Update documentation based on new hire feedback
Name Size