6.3 KiB
6.3 KiB
id, title, category, status, source_trust_level, verification_status, created_at, updated_at, tags, tech_stack, applied_in, aliases
| id | title | category | status | source_trust_level | verification_status | created_at | updated_at | tags | tech_stack | applied_in | aliases | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| productivity-onboarding-process | Engineering Onboarding — first 30 / 60 / 90 days | Coding | draft | B | conceptual | 2026-05-09 | 2026-05-09 |
|
|
|
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
## 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
## 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
## Month 1
- [ ] 작은 feature 완료 (1주)
- [ ] On-call shadowing
- [ ] Code review 시작 (1-2 PR / week)
- [ ] Customer 한 번 talk
- [ ] Retro 참여
Month 3
## Month 3
- [ ] 큰 feature 완료
- [ ] On-call (primary)
- [ ] 다른 사람 onboard 의 buddy
- [ ] 90-day review
Devcontainer
// .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
# 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
# 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.