LeadershipTechnical ManagerPeople Management

Session 04 - Hiring & Team Building

Writing Effective Job Descriptions

Structure chuẩn

markdown
## [Role Title] - [Team/Product]

### About the Team (3-4 câu)
Mô tả team làm gì, impact thế nào, tech stack chính.

### What You'll Do (5-7 bullet points)
- Cụ thể tasks và responsibilities
- Focus vào IMPACT, không phải laundry list

### What We're Looking For (must-have vs nice-to-have)
**Must-have:**
- X năm kinh nghiệm với [specific tech]
- Kinh nghiệm design distributed systems

**Nice-to-have:**
- Kinh nghiệm với [specific cloud/tool]
- Contribution to open source

### What We Offer
- Benefits cụ thể, không generic

Tips viết JD tốt

DODON'T
Tách rõ must-have vs nice-to-haveYêu cầu 15 technologies đều "required"
Mô tả impact của roleList 20 responsibilities chung chung
Include salary range (nếu có thể)"Competitive salary"
Show team cultureCopy-paste template generic
Giới hạn must-have 5-7 itemsFilter quá nhiều → miss good candidates

Interview Process Design

Pipeline chuẩn

Screening (30 phút) → Technical (60-90 phút) → System Design (60 phút) → Culture Fit (45 phút) → Offer
    HR/Lead              Senior Dev(s)           Staff/Principal           Manager/Team

Chi tiết từng vòng

RoundDurationEvaluatorFocus
1. Resume Screening5 phútLeadRelevance, trajectory, red flags
2. Phone Screen30 phútHR + Tech leadMotivation, basic technical, salary expectation
3. Coding/Technical60-90 phút2 Senior devsProblem solving, code quality, .NET knowledge
4. System Design60 phútStaff+ engineerArchitecture thinking, trade-offs, scalability
5. Culture Fit45 phútManager + 1 team memberValues alignment, collaboration, growth mindset
6. Reference Check15 phút × 2HR/LeadVerify claims, past performance

Avoid Bias Checklist

  • Structured interview - cùng câu hỏi cho mọi candidate
  • Rubric scoring trước khi discuss với interviewer khác
  • Diverse interview panel
  • Không hỏi tuổi, tình trạng gia đình, tôn giáo
  • Evaluate skills, không evaluate "culture fit" theo kiểu "giống mình"

Technical Interview Rubric Template

Coding Round Rubric

Criteria1 - Poor2 - Below3 - Meet4 - Exceed5 - OutstandingWeight
Problem SolvingKhông hiểu problemCần nhiều hintsSolve với ít hintsSolve clean, consider edge casesOptimal solution, multiple approaches30%
Code QualityMessy, no structureSome structureClean, readableSOLID principles, design patternsProduction-ready quality25%
.NET KnowledgeBasic syntax errorsJunior levelSolid mid-levelDeep understanding async/LINQ/DIExpert, knows internals20%
CommunicationSilent, unclearAnswers only when askedExplain reasoningThink aloud clearlyExcellent, teaches while coding15%
Testing MindsetKhông mentionMention nhưng không viếtWrite basic testsTDD approach, edge casesComprehensive test strategy10%

System Design Round Rubric

CriteriaSignalsWeight
Requirements GatheringHỏi clarifying questions, define scope, estimate scale20%
High-Level DesignChia components hợp lý, data flow rõ ràng25%
Deep DiveDatabase schema, API design, caching strategy25%
Scalability & Trade-offsDiscuss bottlenecks, propose solutions, articulate trade-offs20%
Operational ConcernsMonitoring, deployment, failure scenarios10%

Scoring Matrix

Candidate Comparison Template

CandidateCoding (30%)System Design (25%).NET Deep (20%)Culture (15%)Communication (10%)Total
Candidate A4 (1.2)3 (0.75)4 (0.8)3 (0.45)4 (0.4)3.60
Candidate B3 (0.9)4 (1.0)3 (0.6)4 (0.6)3 (0.3)3.40
Candidate C5 (1.5)2 (0.5)5 (1.0)2 (0.3)3 (0.3)3.60

Decision Framework

Score >= 3.5 → Strong Hire
Score 3.0-3.4 → Hire (nếu team cần)
Score 2.5-2.9 → Borderline - cần thêm signal
Score < 2.5  → No Hire
Bất kỳ criteria nào = 1 → No Hire (red flag)

Onboarding - 30-60-90 Day Plan

30-60-90 Template

markdown
## Onboarding Plan - [Tên] - [Start Date]
Buddy: [Tên buddy]    Manager: [Tên]

### Day 1-7: Setup & Orientation
- [ ] Laptop, accounts, access setup
- [ ] Meet team members 1:1 (15 phút mỗi người)
- [ ] Dev environment setup (README → working local)
- [ ] Read architecture overview docs
- [ ] Join all relevant Slack channels, meetings

### Day 1-30: Learn & Observe (First Win)
- [ ] Complete first small PR (bug fix hoặc small feature)
- [ ] Understand CI/CD pipeline, deployment process
- [ ] Shadow on-call 1 rotation
- [ ] Attend all team ceremonies
- [ ] 1:1 với manager weekly
- [ ] KT session cho 2-3 core services
**Success criteria:** Có thể deploy code to production independently

### Day 31-60: Contribute (Build Confidence)
- [ ] Own 1 medium feature end-to-end
- [ ] Participate code reviews (give & receive)
- [ ] Start contributing to design discussions
- [ ] Understand 3-5 core services deeply
- [ ] Pair với team members on complex tasks
**Success criteria:** Tự tin contribute trong sprint planning

### Day 61-90: Impact (Add Value)
- [ ] Lead 1 feature hoặc technical improvement
- [ ] Participate on-call rotation independently
- [ ] Identify 1 improvement opportunity
- [ ] Present something tại team meeting
- [ ] 90-day review conversation
**Success criteria:** Team member nói "không tưởng tượng team không có bạn"

Team Composition

T-shaped Engineers

Breadth of knowledge (generalist)
├── Frontend basics
├── DevOps fundamentals
├── Database design
├── Cloud services
└── Testing strategies
         │
         │ Depth (specialist)
         │
    Backend / .NET
    (deep expertise)

Team Composition Checklist

  • Mix seniority: 1 Staff/Principal + 2-3 Senior + 2-3 Mid + 1-2 Junior
  • T-shaped: mỗi người có 1 deep expertise + breadth
  • Cross-functional: có thể ship feature end-to-end mà không depend team khác
  • Diversity of thought: khác background, experience, perspective

Tuckman's Stages of Team Development

StageĐặc điểmLead nên làmTimeline
FormingLịch sự, tìm hiểu, unclear rolesDirective: set expectations rõ ràng, define roles2-4 tuần
StormingConflict, power struggles, frustrationCoaching: mediate, normalize conflict, facilitate2-8 tuần
NormingAgreement, trust building, processes gelSupportive: empower, delegate, reinforce norms4-8 tuần
PerformingHigh productivity, autonomous, collaborativeDelegating: step back, remove obstaclesOngoing

Red flags cần chú ý

Forming kéo dài:  Team quá "nice", không ai challenge → fake harmony
Storming kéo dài: Conflict không resolve → toxicity
Skip Storming:    Chưa address issues → sẽ explode sau
Regress:          Thêm/bớt member → quay lại Forming

Building Psychological Safety

Định nghĩa (Amy Edmondson): Niềm tin rằng mình sẽ không bị punished khi take risks, ask questions, admit mistakes, hoặc challenge ý kiến.

4 Levels of Psychological Safety

LevelMô tảIndicator
1. Inclusion SafetyCảm thấy được chấp nhậnMọi người được mời vào discussions
2. Learner SafetyAn toàn để hỏi và saiCâu hỏi "stupid" được welcome
3. Contributor SafetyAn toàn để contribute ideasMọi ý kiến được lắng nghe
4. Challenger SafetyAn toàn để challenge status quoDisagreement được encourage

Actions để build Psychological Safety

ActionFrequencyImpact
Lead admits mistakes publiclyAs neededVery High
Thank people khi họ raise concernsAlwaysHigh
Blameless postmortemsAfter incidentsHigh
Ask for feedback as a leaderWeekly (1:1)High
Celebrate failed experimentsWhen relevantMedium
Rotate meeting facilitatorWeeklyMedium
Anonymous suggestion boxAlways openMedium

Checklist Assessment

  • Team members thoải mái hỏi "stupid questions"
  • Mistakes được discuss openly mà không blame
  • Junior members speak up trong meetings
  • Disagreements xảy ra mà không có personal attacks
  • People volunteer cho risky/new tasks
  • Feedback flows trong mọi direction (up, down, peer)