--- id: productivity-onboarding-process title: Engineering Onboarding β€” first 30 / 60 / 90 days category: Coding status: draft source_trust_level: B verification_status: conceptual created_at: 2026-05-09 updated_at: 2026-05-09 tags: [productivity, onboarding, vibe-coding] tech_stack: { language: "process", applicable_to: ["Engineering"] } applied_in: [] aliases: [onboarding, ramp up, buddy, first PR, 30/60/90, new hire, devcontainer] --- # Engineering Onboarding > μƒˆ engineer 의 첫 90 days. **Day 1 = code clone. Week 1 = first PR. Month 3 = own feature**. Buddy + doc + checklist. ## πŸ“– 핡심 κ°œλ… - λͺ…μ‹œμ  timeline. - Buddy + manager 1-on-1. - Doc κ°€ catchup. - 첫 PR κ°€ λΉ λ₯Έ (small task). ## πŸ’» μ½”λ“œ νŒ¨ν„΄ ### Day 1 checklist ```markdown ## Day 1 - [ ] Laptop setup - [ ] Account: GitHub, Slack, AWS, Linear - [ ] Read [Engineering Handbook](#) - [ ] Read [README](#) - [ ] Run app locally (devcontainer ꢌμž₯) - [ ] Buddy 1-on-1 - [ ] Manager 1-on-1 - [ ] First Slack post (introduction) ``` ### Week 1 ```markdown ## Week 1 - [ ] 첫 PR (typo fix / docs) - [ ] Architecture overview 읽음 - [ ] 5 ADR 읽음 - [ ] Pair on a feature - [ ] Standup κ°€μž… - [ ] Sprint planning μ°Έμ—¬ - [ ] Daily 1-on-1 with buddy ``` ### Month 1 ```markdown ## Month 1 - [ ] μž‘μ€ feature μ™„λ£Œ (1μ£Ό) - [ ] On-call shadowing - [ ] Code review μ‹œμž‘ (1-2 PR / week) - [ ] Customer ν•œ 번 talk - [ ] Retro μ°Έμ—¬ ``` ### Month 3 ```markdown ## Month 3 - [ ] 큰 feature μ™„λ£Œ - [ ] On-call (primary) - [ ] λ‹€λ₯Έ μ‚¬λžŒ onboard 의 buddy - [ ] 90-day review ``` ### Devcontainer ```json // .devcontainer/devcontainer.json { "name": "MyApp Dev", "image": "mcr.microsoft.com/devcontainers/javascript-node:20", "postCreateCommand": "npm install && npm run db:setup", "extensions": ["dbaeumer.vscode-eslint", "esbenp.prettier-vscode"], "forwardPorts": [3000, 5432, 6379] } ``` β†’ "Clone + open in Codespaces / VS Code = λ™μž‘". ### Setup script ```bash # bin/setup #!/bin/bash set -e # Detect OS if [[ $OSTYPE == 'darwin'* ]]; then brew bundle fi npm install docker compose up -d npm run db:migrate npm run db:seed echo "Ready! Run: npm run dev" ``` β†’ "1 command setup". ### First PR (intentional small) ``` - Typo in README. - 1 unit test μΆ”κ°€. - μž‘μ€ refactor (rename variable). β†’ Goal: - Git workflow μ΅μˆ™. - Code review κ²½ν—˜. - λ§€ commit. - CI pass. ``` ### Buddy ``` 같은 team 의 mid-senior. - Day 1-7: 맀일 30 min 1-on-1. - Week 2-4: 맀일 짧은 check. - Month 2+: ad hoc. β†’ "Stupid question" channel. ``` ### Manager 1-on-1 ``` μ£Ό 1회. - Career goal. - Feedback. - Block / 어렀움. β†’ Onboarding 의 first 30 days = λ§€μ£Ό. ``` ### Architecture diagram ``` μƒˆ μ‚¬λžŒ 이 큰 κ·Έλ¦Ό 작기: - System diagram (Excalidraw). - Service map. - Data flow. - Critical path. ``` β†’ Onboarding doc 의 1 page. ### Codebase tour ``` 30-60 min: - λ§€ module 의 owner. - λ§€ 큰 file 의 purpose. - Dependency graph. - "Don't touch" zone. β†’ Walk-through video (Loom). ``` ### Reading list ``` 1. README. 2. CONTRIBUTING.md. 3. Architecture overview. 4. Top 5 ADR (recent decision). 5. Coding style guide. 6. Deployment process. 7. Incident playbook. β†’ 1 week μ•ˆ read. ``` ### Stupid question channel ``` Slack #help-{team} λ˜λŠ” #ask-anything. - 질문 κ°€ ν™˜μ˜. - λ§€ λ‹΅ κ°€ doc κ°€λŠ₯ (FAQ). ``` ### Pair programming (early) ``` μƒˆ μ‚¬λžŒ = navigator. Buddy = driver. - Real task κ°€ ν•¨κ»˜. - Implicit knowledge transfer. β†’ 1μ£Ό ν›„ swap. ``` ### Mentor vs buddy vs manager ``` Buddy: same team, μž‘μ€ questions. Mentor: career, technical depth. Manager: career, performance, growth. β†’ λ§€ λ‹€λ₯Έ role. ``` ### Anti-pattern ``` - "Sink or swim": μΉœμ ˆν•œ X. - λ§€ μ‚¬λžŒ κ°€ λ‹€λ₯Έ process: drift. - No buddy: lonely. - No 1-on-1: signal X. - 큰 first PR: discouraging. - No documentation: λͺ¨λ“  κ±° ask. ``` ### Onboarding survey ``` 30 day ν›„ survey: - Setup κ°€ smooth? - Doc κ°€ clear? - Buddy κ°€ helpful? - 첫 PR experience? - 무엇 missing? β†’ Onboarding 자체 의 improvement. ``` ### Remote onboarding ``` First-day video call (manager + buddy + team intro). Loom κ°€ walkthrough. Async doc κ°€ baseline. Periodic sync (weekly) β€” μ‚¬λžŒ. Coffee chat (random). β†’ In-person 의 lonely λ°©μ§€. ``` ### Tools setup automation ```bash # bin/onboard.sh - Generate AWS access key. - Add to GitHub team. - Slack invite. - Set up 1Password vault. - Schedule 1-on-1. - Send welcome email. β†’ λ§€ onboarding κ°€ manual = drift. ``` ### Pre-day-1 ``` Offer accepted β†’ Day 1 κΉŒμ§€ 1-2 weeks: - Hardware ship. - Account 미리 setup. - 첫 day schedule. - Welcome package. - Reading material (optional). β†’ Day 1 κ°€ "ready". ``` ### Buddy 의 commitment ``` Buddy = λ§€μ£Ό 4-8 hour (first month). - Manager κ°€ buddy 의 work load κ°μ†Œ. - Buddy reward (review, perf). β†’ Buddy κ°€ "free time" κ°€ μ•ˆ 됨. Recognized work. ``` ### Quick win ``` 1μ£Ό λ‚΄ ship κ°€λŠ₯ task. - Bug fix (low risk). - Small feature. - μž‘μ€ refactor. β†’ "I shipped to production!" κ°€ self-confidence. ``` ### 90-day review ``` Manager + new hire: - Goal achieved? - Onboarding κ°€ μ’‹μŒ? - Career direction? - Improvement? β†’ λͺ…μ‹œμ  milestone. ``` ### Ramp-up time (industry) ``` Junior: 3-6 month. Senior: 1-3 month. Staff+: 1 month (큰 codebase) - 6 month (큰 system). β†’ "Productive" = first PR 보닀 own feature. ``` ### Public examples - **GitLab handbook**: λ§€ process public. - **Basecamp**: shape up + onboarding. - **Stripe**: pair programming heavy. - **Shopify**: dev environment μžλ™. ## πŸ€” μ˜μ‚¬κ²°μ • κΈ°μ€€ | 단계 | μΆ”μ²œ | |---|---| | Day 1 | Setup + buddy meet | | Week 1 | First PR + read | | Month 1 | Small feature + on-call shadow | | Month 3 | Big feature + own | | Big team | Cohort (group hire) | | Remote | Async + sync sync | ## ❌ μ•ˆν‹°νŒ¨ν„΄ - **Sink or swim**: morale ↓. - **No buddy**: lonely. - **Big first PR**: discouraging. - **No doc**: λͺ¨λ“  question = sync. - **Manual setup**: λ§€ μ‚¬λžŒ κ°€ 닀름. - **No 90-day review**: signal X. - **Buddy κ°€ free time**: μ•ˆ 됨. ## πŸ€– LLM ν™œμš© 힌트 - Day 1 / Week 1 / Month 1 / 3 timeline. - Buddy + manager 1-on-1. - Devcontainer κ°€ "1 command setup". - First PR κ°€ small + quick. ## πŸ”— κ΄€λ ¨ λ¬Έμ„œ - [[Productivity_Documentation]] - [[Productivity_Knowledge_Sharing]] - [[Quality_Mentoring]]