[G1-Sync] Manual knowledge update
This commit is contained in:
@@ -0,0 +1,332 @@
|
||||
---
|
||||
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]]
|
||||
Reference in New Issue
Block a user