@shaykec/bridge 0.4.24 → 0.4.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/journeys/ai-engineer.yaml +34 -0
  2. package/journeys/backend-developer.yaml +36 -0
  3. package/journeys/business-analyst.yaml +37 -0
  4. package/journeys/devops-engineer.yaml +37 -0
  5. package/journeys/engineering-manager.yaml +44 -0
  6. package/journeys/frontend-developer.yaml +41 -0
  7. package/journeys/fullstack-developer.yaml +49 -0
  8. package/journeys/mobile-developer.yaml +42 -0
  9. package/journeys/product-manager.yaml +35 -0
  10. package/journeys/qa-engineer.yaml +37 -0
  11. package/journeys/ux-designer.yaml +43 -0
  12. package/modules/README.md +52 -0
  13. package/modules/accessibility-fundamentals/content.md +126 -0
  14. package/modules/accessibility-fundamentals/exercises.md +88 -0
  15. package/modules/accessibility-fundamentals/module.yaml +43 -0
  16. package/modules/accessibility-fundamentals/quick-ref.md +71 -0
  17. package/modules/accessibility-fundamentals/quiz.md +100 -0
  18. package/modules/accessibility-fundamentals/resources.md +29 -0
  19. package/modules/accessibility-fundamentals/walkthrough.md +80 -0
  20. package/modules/adr-writing/content.md +121 -0
  21. package/modules/adr-writing/exercises.md +81 -0
  22. package/modules/adr-writing/module.yaml +41 -0
  23. package/modules/adr-writing/quick-ref.md +57 -0
  24. package/modules/adr-writing/quiz.md +73 -0
  25. package/modules/adr-writing/resources.md +29 -0
  26. package/modules/adr-writing/walkthrough.md +64 -0
  27. package/modules/ai-agents/content.md +120 -0
  28. package/modules/ai-agents/exercises.md +82 -0
  29. package/modules/ai-agents/module.yaml +42 -0
  30. package/modules/ai-agents/quick-ref.md +60 -0
  31. package/modules/ai-agents/quiz.md +103 -0
  32. package/modules/ai-agents/resources.md +30 -0
  33. package/modules/ai-agents/walkthrough.md +85 -0
  34. package/modules/ai-assisted-research/content.md +136 -0
  35. package/modules/ai-assisted-research/exercises.md +80 -0
  36. package/modules/ai-assisted-research/module.yaml +42 -0
  37. package/modules/ai-assisted-research/quick-ref.md +67 -0
  38. package/modules/ai-assisted-research/quiz.md +73 -0
  39. package/modules/ai-assisted-research/resources.md +33 -0
  40. package/modules/ai-assisted-research/walkthrough.md +85 -0
  41. package/modules/ai-pair-programming/content.md +105 -0
  42. package/modules/ai-pair-programming/exercises.md +98 -0
  43. package/modules/ai-pair-programming/module.yaml +39 -0
  44. package/modules/ai-pair-programming/quick-ref.md +58 -0
  45. package/modules/ai-pair-programming/quiz.md +73 -0
  46. package/modules/ai-pair-programming/resources.md +34 -0
  47. package/modules/ai-pair-programming/walkthrough.md +117 -0
  48. package/modules/ai-test-generation/content.md +125 -0
  49. package/modules/ai-test-generation/exercises.md +98 -0
  50. package/modules/ai-test-generation/module.yaml +39 -0
  51. package/modules/ai-test-generation/quick-ref.md +65 -0
  52. package/modules/ai-test-generation/quiz.md +74 -0
  53. package/modules/ai-test-generation/resources.md +41 -0
  54. package/modules/ai-test-generation/walkthrough.md +100 -0
  55. package/modules/api-design/content.md +189 -0
  56. package/modules/api-design/exercises.md +84 -0
  57. package/modules/api-design/game.yaml +113 -0
  58. package/modules/api-design/module.yaml +45 -0
  59. package/modules/api-design/quick-ref.md +73 -0
  60. package/modules/api-design/quiz.md +100 -0
  61. package/modules/api-design/resources.md +55 -0
  62. package/modules/api-design/walkthrough.md +88 -0
  63. package/modules/clean-code/content.md +136 -0
  64. package/modules/clean-code/exercises.md +137 -0
  65. package/modules/clean-code/game.yaml +172 -0
  66. package/modules/clean-code/module.yaml +44 -0
  67. package/modules/clean-code/quick-ref.md +44 -0
  68. package/modules/clean-code/quiz.md +105 -0
  69. package/modules/clean-code/resources.md +40 -0
  70. package/modules/clean-code/walkthrough.md +78 -0
  71. package/modules/clean-code/workshop.yaml +149 -0
  72. package/modules/code-review/content.md +130 -0
  73. package/modules/code-review/exercises.md +95 -0
  74. package/modules/code-review/game.yaml +83 -0
  75. package/modules/code-review/module.yaml +42 -0
  76. package/modules/code-review/quick-ref.md +77 -0
  77. package/modules/code-review/quiz.md +105 -0
  78. package/modules/code-review/resources.md +40 -0
  79. package/modules/code-review/walkthrough.md +106 -0
  80. package/modules/daily-workflow/content.md +81 -0
  81. package/modules/daily-workflow/exercises.md +50 -0
  82. package/modules/daily-workflow/module.yaml +33 -0
  83. package/modules/daily-workflow/quick-ref.md +37 -0
  84. package/modules/daily-workflow/quiz.md +65 -0
  85. package/modules/daily-workflow/resources.md +38 -0
  86. package/modules/daily-workflow/walkthrough.md +83 -0
  87. package/modules/debugging-systematically/content.md +139 -0
  88. package/modules/debugging-systematically/exercises.md +91 -0
  89. package/modules/debugging-systematically/module.yaml +46 -0
  90. package/modules/debugging-systematically/quick-ref.md +59 -0
  91. package/modules/debugging-systematically/quiz.md +105 -0
  92. package/modules/debugging-systematically/resources.md +42 -0
  93. package/modules/debugging-systematically/walkthrough.md +84 -0
  94. package/modules/debugging-systematically/workshop.yaml +127 -0
  95. package/modules/demo-test/content.md +68 -0
  96. package/modules/demo-test/exercises.md +28 -0
  97. package/modules/demo-test/game.yaml +171 -0
  98. package/modules/demo-test/module.yaml +41 -0
  99. package/modules/demo-test/quick-ref.md +54 -0
  100. package/modules/demo-test/quiz.md +74 -0
  101. package/modules/demo-test/resources.md +21 -0
  102. package/modules/demo-test/walkthrough.md +122 -0
  103. package/modules/demo-test/workshop.yaml +31 -0
  104. package/modules/design-critique/content.md +93 -0
  105. package/modules/design-critique/exercises.md +71 -0
  106. package/modules/design-critique/module.yaml +41 -0
  107. package/modules/design-critique/quick-ref.md +63 -0
  108. package/modules/design-critique/quiz.md +73 -0
  109. package/modules/design-critique/resources.md +27 -0
  110. package/modules/design-critique/walkthrough.md +68 -0
  111. package/modules/design-patterns/content.md +335 -0
  112. package/modules/design-patterns/exercises.md +82 -0
  113. package/modules/design-patterns/game.yaml +55 -0
  114. package/modules/design-patterns/module.yaml +45 -0
  115. package/modules/design-patterns/quick-ref.md +44 -0
  116. package/modules/design-patterns/quiz.md +101 -0
  117. package/modules/design-patterns/resources.md +40 -0
  118. package/modules/design-patterns/walkthrough.md +64 -0
  119. package/modules/exploratory-testing/content.md +133 -0
  120. package/modules/exploratory-testing/exercises.md +88 -0
  121. package/modules/exploratory-testing/module.yaml +41 -0
  122. package/modules/exploratory-testing/quick-ref.md +68 -0
  123. package/modules/exploratory-testing/quiz.md +75 -0
  124. package/modules/exploratory-testing/resources.md +39 -0
  125. package/modules/exploratory-testing/walkthrough.md +87 -0
  126. package/modules/git/content.md +128 -0
  127. package/modules/git/exercises.md +53 -0
  128. package/modules/git/game.yaml +190 -0
  129. package/modules/git/module.yaml +44 -0
  130. package/modules/git/quick-ref.md +67 -0
  131. package/modules/git/quiz.md +89 -0
  132. package/modules/git/resources.md +49 -0
  133. package/modules/git/walkthrough.md +92 -0
  134. package/modules/git/workshop.yaml +145 -0
  135. package/modules/hiring-interviews/content.md +130 -0
  136. package/modules/hiring-interviews/exercises.md +88 -0
  137. package/modules/hiring-interviews/module.yaml +41 -0
  138. package/modules/hiring-interviews/quick-ref.md +68 -0
  139. package/modules/hiring-interviews/quiz.md +73 -0
  140. package/modules/hiring-interviews/resources.md +36 -0
  141. package/modules/hiring-interviews/walkthrough.md +75 -0
  142. package/modules/hooks/content.md +97 -0
  143. package/modules/hooks/exercises.md +69 -0
  144. package/modules/hooks/module.yaml +39 -0
  145. package/modules/hooks/quick-ref.md +93 -0
  146. package/modules/hooks/quiz.md +81 -0
  147. package/modules/hooks/resources.md +34 -0
  148. package/modules/hooks/walkthrough.md +105 -0
  149. package/modules/hooks/workshop.yaml +64 -0
  150. package/modules/incident-response/content.md +124 -0
  151. package/modules/incident-response/exercises.md +82 -0
  152. package/modules/incident-response/game.yaml +132 -0
  153. package/modules/incident-response/module.yaml +45 -0
  154. package/modules/incident-response/quick-ref.md +53 -0
  155. package/modules/incident-response/quiz.md +103 -0
  156. package/modules/incident-response/resources.md +40 -0
  157. package/modules/incident-response/walkthrough.md +82 -0
  158. package/modules/llm-fundamentals/content.md +114 -0
  159. package/modules/llm-fundamentals/exercises.md +83 -0
  160. package/modules/llm-fundamentals/module.yaml +42 -0
  161. package/modules/llm-fundamentals/quick-ref.md +64 -0
  162. package/modules/llm-fundamentals/quiz.md +103 -0
  163. package/modules/llm-fundamentals/resources.md +30 -0
  164. package/modules/llm-fundamentals/walkthrough.md +91 -0
  165. package/modules/one-on-ones/content.md +133 -0
  166. package/modules/one-on-ones/exercises.md +81 -0
  167. package/modules/one-on-ones/module.yaml +44 -0
  168. package/modules/one-on-ones/quick-ref.md +67 -0
  169. package/modules/one-on-ones/quiz.md +73 -0
  170. package/modules/one-on-ones/resources.md +37 -0
  171. package/modules/one-on-ones/walkthrough.md +69 -0
  172. package/modules/package.json +9 -0
  173. package/modules/prioritization-frameworks/content.md +130 -0
  174. package/modules/prioritization-frameworks/exercises.md +93 -0
  175. package/modules/prioritization-frameworks/module.yaml +41 -0
  176. package/modules/prioritization-frameworks/quick-ref.md +77 -0
  177. package/modules/prioritization-frameworks/quiz.md +73 -0
  178. package/modules/prioritization-frameworks/resources.md +32 -0
  179. package/modules/prioritization-frameworks/walkthrough.md +69 -0
  180. package/modules/prompt-engineering/content.md +123 -0
  181. package/modules/prompt-engineering/exercises.md +82 -0
  182. package/modules/prompt-engineering/game.yaml +101 -0
  183. package/modules/prompt-engineering/module.yaml +45 -0
  184. package/modules/prompt-engineering/quick-ref.md +65 -0
  185. package/modules/prompt-engineering/quiz.md +105 -0
  186. package/modules/prompt-engineering/resources.md +36 -0
  187. package/modules/prompt-engineering/walkthrough.md +81 -0
  188. package/modules/rag-fundamentals/content.md +111 -0
  189. package/modules/rag-fundamentals/exercises.md +80 -0
  190. package/modules/rag-fundamentals/module.yaml +45 -0
  191. package/modules/rag-fundamentals/quick-ref.md +58 -0
  192. package/modules/rag-fundamentals/quiz.md +75 -0
  193. package/modules/rag-fundamentals/resources.md +34 -0
  194. package/modules/rag-fundamentals/walkthrough.md +75 -0
  195. package/modules/react-fundamentals/content.md +140 -0
  196. package/modules/react-fundamentals/exercises.md +81 -0
  197. package/modules/react-fundamentals/game.yaml +145 -0
  198. package/modules/react-fundamentals/module.yaml +45 -0
  199. package/modules/react-fundamentals/quick-ref.md +62 -0
  200. package/modules/react-fundamentals/quiz.md +106 -0
  201. package/modules/react-fundamentals/resources.md +42 -0
  202. package/modules/react-fundamentals/walkthrough.md +89 -0
  203. package/modules/react-fundamentals/workshop.yaml +112 -0
  204. package/modules/react-native-fundamentals/content.md +141 -0
  205. package/modules/react-native-fundamentals/exercises.md +79 -0
  206. package/modules/react-native-fundamentals/module.yaml +42 -0
  207. package/modules/react-native-fundamentals/quick-ref.md +60 -0
  208. package/modules/react-native-fundamentals/quiz.md +61 -0
  209. package/modules/react-native-fundamentals/resources.md +24 -0
  210. package/modules/react-native-fundamentals/walkthrough.md +84 -0
  211. package/modules/registry.yaml +1650 -0
  212. package/modules/risk-management/content.md +162 -0
  213. package/modules/risk-management/exercises.md +86 -0
  214. package/modules/risk-management/module.yaml +41 -0
  215. package/modules/risk-management/quick-ref.md +82 -0
  216. package/modules/risk-management/quiz.md +73 -0
  217. package/modules/risk-management/resources.md +40 -0
  218. package/modules/risk-management/walkthrough.md +67 -0
  219. package/modules/running-effective-standups/content.md +119 -0
  220. package/modules/running-effective-standups/exercises.md +79 -0
  221. package/modules/running-effective-standups/module.yaml +40 -0
  222. package/modules/running-effective-standups/quick-ref.md +61 -0
  223. package/modules/running-effective-standups/quiz.md +73 -0
  224. package/modules/running-effective-standups/resources.md +36 -0
  225. package/modules/running-effective-standups/walkthrough.md +76 -0
  226. package/modules/solid-principles/content.md +154 -0
  227. package/modules/solid-principles/exercises.md +107 -0
  228. package/modules/solid-principles/module.yaml +42 -0
  229. package/modules/solid-principles/quick-ref.md +50 -0
  230. package/modules/solid-principles/quiz.md +102 -0
  231. package/modules/solid-principles/resources.md +39 -0
  232. package/modules/solid-principles/walkthrough.md +84 -0
  233. package/modules/sprint-planning/content.md +142 -0
  234. package/modules/sprint-planning/exercises.md +79 -0
  235. package/modules/sprint-planning/game.yaml +84 -0
  236. package/modules/sprint-planning/module.yaml +44 -0
  237. package/modules/sprint-planning/quick-ref.md +76 -0
  238. package/modules/sprint-planning/quiz.md +102 -0
  239. package/modules/sprint-planning/resources.md +39 -0
  240. package/modules/sprint-planning/walkthrough.md +75 -0
  241. package/modules/sql-fundamentals/content.md +160 -0
  242. package/modules/sql-fundamentals/exercises.md +87 -0
  243. package/modules/sql-fundamentals/game.yaml +105 -0
  244. package/modules/sql-fundamentals/module.yaml +45 -0
  245. package/modules/sql-fundamentals/quick-ref.md +53 -0
  246. package/modules/sql-fundamentals/quiz.md +103 -0
  247. package/modules/sql-fundamentals/resources.md +42 -0
  248. package/modules/sql-fundamentals/walkthrough.md +92 -0
  249. package/modules/sql-fundamentals/workshop.yaml +109 -0
  250. package/modules/stakeholder-communication/content.md +186 -0
  251. package/modules/stakeholder-communication/exercises.md +87 -0
  252. package/modules/stakeholder-communication/module.yaml +38 -0
  253. package/modules/stakeholder-communication/quick-ref.md +89 -0
  254. package/modules/stakeholder-communication/quiz.md +73 -0
  255. package/modules/stakeholder-communication/resources.md +41 -0
  256. package/modules/stakeholder-communication/walkthrough.md +74 -0
  257. package/modules/system-design/content.md +149 -0
  258. package/modules/system-design/exercises.md +83 -0
  259. package/modules/system-design/game.yaml +95 -0
  260. package/modules/system-design/module.yaml +46 -0
  261. package/modules/system-design/quick-ref.md +59 -0
  262. package/modules/system-design/quiz.md +102 -0
  263. package/modules/system-design/resources.md +46 -0
  264. package/modules/system-design/walkthrough.md +90 -0
  265. package/modules/team-topologies/content.md +166 -0
  266. package/modules/team-topologies/exercises.md +85 -0
  267. package/modules/team-topologies/module.yaml +41 -0
  268. package/modules/team-topologies/quick-ref.md +61 -0
  269. package/modules/team-topologies/quiz.md +101 -0
  270. package/modules/team-topologies/resources.md +37 -0
  271. package/modules/team-topologies/walkthrough.md +76 -0
  272. package/modules/technical-debt/content.md +111 -0
  273. package/modules/technical-debt/exercises.md +92 -0
  274. package/modules/technical-debt/module.yaml +39 -0
  275. package/modules/technical-debt/quick-ref.md +60 -0
  276. package/modules/technical-debt/quiz.md +73 -0
  277. package/modules/technical-debt/resources.md +25 -0
  278. package/modules/technical-debt/walkthrough.md +94 -0
  279. package/modules/technical-mentoring/content.md +128 -0
  280. package/modules/technical-mentoring/exercises.md +84 -0
  281. package/modules/technical-mentoring/module.yaml +41 -0
  282. package/modules/technical-mentoring/quick-ref.md +74 -0
  283. package/modules/technical-mentoring/quiz.md +73 -0
  284. package/modules/technical-mentoring/resources.md +33 -0
  285. package/modules/technical-mentoring/walkthrough.md +65 -0
  286. package/modules/test-strategy/content.md +136 -0
  287. package/modules/test-strategy/exercises.md +84 -0
  288. package/modules/test-strategy/game.yaml +99 -0
  289. package/modules/test-strategy/module.yaml +45 -0
  290. package/modules/test-strategy/quick-ref.md +66 -0
  291. package/modules/test-strategy/quiz.md +99 -0
  292. package/modules/test-strategy/resources.md +60 -0
  293. package/modules/test-strategy/walkthrough.md +97 -0
  294. package/modules/test-strategy/workshop.yaml +96 -0
  295. package/modules/typescript-fundamentals/content.md +127 -0
  296. package/modules/typescript-fundamentals/exercises.md +79 -0
  297. package/modules/typescript-fundamentals/game.yaml +111 -0
  298. package/modules/typescript-fundamentals/module.yaml +45 -0
  299. package/modules/typescript-fundamentals/quick-ref.md +55 -0
  300. package/modules/typescript-fundamentals/quiz.md +104 -0
  301. package/modules/typescript-fundamentals/resources.md +42 -0
  302. package/modules/typescript-fundamentals/walkthrough.md +71 -0
  303. package/modules/typescript-fundamentals/workshop.yaml +146 -0
  304. package/modules/user-story-mapping/content.md +123 -0
  305. package/modules/user-story-mapping/exercises.md +87 -0
  306. package/modules/user-story-mapping/module.yaml +41 -0
  307. package/modules/user-story-mapping/quick-ref.md +64 -0
  308. package/modules/user-story-mapping/quiz.md +73 -0
  309. package/modules/user-story-mapping/resources.md +29 -0
  310. package/modules/user-story-mapping/walkthrough.md +86 -0
  311. package/modules/writing-prds/content.md +133 -0
  312. package/modules/writing-prds/exercises.md +93 -0
  313. package/modules/writing-prds/game.yaml +83 -0
  314. package/modules/writing-prds/module.yaml +44 -0
  315. package/modules/writing-prds/quick-ref.md +77 -0
  316. package/modules/writing-prds/quiz.md +103 -0
  317. package/modules/writing-prds/resources.md +30 -0
  318. package/modules/writing-prds/walkthrough.md +87 -0
  319. package/package.json +5 -3
  320. package/src/server.js +17 -7
@@ -0,0 +1,92 @@
1
+ # Git Walkthrough — Learn by Doing
2
+
3
+ ## Step 1: Your First Repository
4
+
5
+ Let's start by creating a Git repository from scratch.
6
+
7
+ <!-- hint:terminal -->
8
+
9
+ **Task:** Create a new directory and initialize it as a Git repository.
10
+
11
+ **Question:** Before we run any commands — what do you think `git init` actually creates? What would you expect to find in the directory afterward?
12
+
13
+ **Checkpoint:** The user should mention the `.git` hidden directory and understand it stores Git's internal data.
14
+
15
+ ---
16
+
17
+ ## Step 2: Understanding the Three Areas
18
+
19
+ Now let's explore how Git tracks changes.
20
+
21
+ <!-- hint:diagram mermaid-type="flowchart" topic="Git three areas: working directory, staging area, repository" -->
22
+
23
+ **Task:** Create a file called `hello.txt` with some content. Then run `git status`.
24
+
25
+ **Question:** Git says your file is "untracked." What do you think that means? Where does the file live in Git's three-area model (working directory, staging area, repository)?
26
+
27
+ **Checkpoint:** The user should explain that untracked means Git sees the file but isn't tracking changes to it yet. It exists only in the working directory.
28
+
29
+ ---
30
+
31
+ ## Step 3: Staging and Committing
32
+
33
+ <!-- hint:terminal -->
34
+
35
+ **Task:** Stage `hello.txt` with `git add`, then commit it.
36
+
37
+ **Question:** Why do you think Git has a separate staging area instead of committing directly from the working directory? What advantage does this give you?
38
+
39
+ **Checkpoint:** The user should understand that staging lets you choose exactly which changes to include in a commit — you can have 10 modified files but only commit 3.
40
+
41
+ ---
42
+
43
+ ## Step 4: Making Changes
44
+
45
+ <!-- hint:terminal -->
46
+
47
+ **Task:** Edit `hello.txt` to add a second line. Run `git diff` to see the changes.
48
+
49
+ **Question:** What does the `+` and `-` notation in the diff output mean? Can you read the diff and predict exactly what changed?
50
+
51
+ **Checkpoint:** The user can read diff output and explain additions (`+`) and removals (`-`).
52
+
53
+ ---
54
+
55
+ ## Step 5: Branching
56
+
57
+ <!-- hint:card type="concept" title="Branches are lightweight pointers to commits — no files copied" -->
58
+
59
+ **Embed:** https://learngitbranching.js.org/
60
+
61
+ **Task:** Create a new branch called `feature` and switch to it. Make a change and commit it.
62
+
63
+ **Question:** When you created the branch, did Git copy all your files? What actually happened under the hood?
64
+
65
+ **Checkpoint:** The user should understand that a branch is just a pointer to a commit — no files are copied. It's extremely lightweight.
66
+
67
+ ---
68
+
69
+ ## Step 6: Merging
70
+
71
+ <!-- hint:diagram mermaid-type="flowchart" topic="Fast-forward vs three-way merge" -->
72
+
73
+ **Task:** Switch back to `main` and merge your `feature` branch.
74
+
75
+ **Question:** What kind of merge happened — fast-forward or three-way? How can you tell?
76
+
77
+ **Checkpoint:** The user should be able to identify the merge type from the output and explain why that type was used.
78
+
79
+ ---
80
+
81
+ ## Step 7: Handling Conflicts
82
+
83
+ <!-- hint:celebrate -->
84
+
85
+ **Task:** Create a conflict scenario:
86
+ 1. On `main`, edit line 1 of `hello.txt` and commit
87
+ 2. Create a branch, edit the same line differently, and commit
88
+ 3. Try to merge
89
+
90
+ **Question:** When you see the conflict markers (`<<<<<<<`, `=======`, `>>>>>>>`), what does each section represent? How do you decide which version to keep?
91
+
92
+ **Checkpoint:** The user can resolve a conflict manually, understanding that the top section is their current branch and the bottom is the incoming branch.
@@ -0,0 +1,145 @@
1
+ scenarios:
2
+ - id: git-init
3
+ title: "Initialize a Repo and Make Your First Commit"
4
+ difficulty: beginner
5
+ xp: 20
6
+ setup: []
7
+ files:
8
+ - name: README.md
9
+ content: "# My Project"
10
+ language: markdown
11
+ readonly: false
12
+ task: "Initialize a new Git repository here, add README.md to staging, and make your first commit with message \"Initial commit\"."
13
+ validations:
14
+ - label: ".git directory exists"
15
+ check: output-contains
16
+ pattern: "Initialized empty Git repository|\.git"
17
+ - label: "First commit made"
18
+ check: output-contains
19
+ pattern: "Initial commit|\[master.*\] Initial"
20
+ hints:
21
+ - "What command creates a new Git repository in the current directory?"
22
+ - "You'll need to stage files before committing. What does git add do?"
23
+ - "git init, then git add README.md, then git commit -m \"Initial commit\""
24
+ agent_prompts:
25
+ on_start: "Before we run any commands — what do you think happens when you initialize a Git repository? What gets created?"
26
+ on_complete: "You've made your first commit. What's the difference between the working directory, staging area, and repository? How does git add fit in?"
27
+
28
+ - id: branching
29
+ title: "Create and Switch Between Branches"
30
+ difficulty: beginner
31
+ xp: 25
32
+ setup:
33
+ - "git init && git branch -M main"
34
+ - "echo 'line 1' > notes.txt"
35
+ - "git add notes.txt && git commit -m 'First commit'"
36
+ - "echo 'line 2' >> notes.txt && git add notes.txt && git commit -m 'Second commit'"
37
+ files: []
38
+ task: "Create branch feature/notes, switch to it, add \"line 3\" to notes.txt, commit, then switch back to main. Use git branch to confirm both branches exist."
39
+ validations:
40
+ - label: "Feature branch created"
41
+ check: output-contains
42
+ pattern: "feature/notes|Switched to branch"
43
+ - label: "Commit on feature branch"
44
+ check: output-contains
45
+ pattern: "line 3|Third|feature"
46
+ hints:
47
+ - "Git has a shortcut to create and switch in one step. What might git checkout -b do?"
48
+ - "After making changes on the branch, commit them before switching back."
49
+ - "git checkout -b feature/notes, edit notes.txt, git add, git commit, then git checkout main"
50
+ agent_prompts:
51
+ on_start: "Why might you want multiple branches? What problem does branching solve when several people work on the same project?"
52
+ on_complete: "When you switched back to main, did notes.txt still have 'line 3'? Why or why not?"
53
+
54
+ - id: merge-conflict
55
+ title: "Resolve a Merge Conflict"
56
+ difficulty: intermediate
57
+ xp: 35
58
+ setup:
59
+ - "git init && git branch -M main"
60
+ - "echo 'Hello World' > greeting.txt"
61
+ - "git add greeting.txt && git commit -m 'Initial commit'"
62
+ - "git checkout -b feature-a"
63
+ - "echo 'Hello from branch A' > greeting.txt"
64
+ - "git add greeting.txt && git commit -m \"A's version\""
65
+ - "git checkout main"
66
+ - "git checkout -b feature-b"
67
+ - "echo 'Hello from branch B' > greeting.txt"
68
+ - "git add greeting.txt && git commit -m \"B's version\""
69
+ - "git checkout main"
70
+ - "git merge feature-a -m 'Merge A'"
71
+ files: []
72
+ task: "Merge feature-b into main. Resolve the conflict in greeting.txt by editing the file, removing conflict markers, staging, and completing the merge."
73
+ validations:
74
+ - label: "Merge attempted"
75
+ check: command-match
76
+ pattern: "git merge"
77
+ - label: "Conflict resolved"
78
+ check: output-contains
79
+ pattern: "Merge made|merge successful|Automatic merge"
80
+ - label: "Merge committed"
81
+ check: output-contains
82
+ pattern: "Merge branch|merge commit"
83
+ hints:
84
+ - "Run git merge feature-b. When you see CONFLICT, open greeting.txt and look for <<<<<<<, =======, >>>>>>>."
85
+ - "Edit the file to remove the markers and keep the content you want, then git add greeting.txt."
86
+ - "After staging the resolved file, run git commit (Git will suggest a default merge message)."
87
+ agent_prompts:
88
+ on_start: "When two branches change the same line in the same file, Git can't decide automatically. What would you look for in a conflicted file to understand what each branch changed?"
89
+ on_complete: "Could you have avoided this conflict? How might rebasing have changed the situation?"
90
+
91
+ - id: interactive-rebase
92
+ title: "Squash Commits with Interactive Rebase"
93
+ difficulty: intermediate
94
+ xp: 40
95
+ setup:
96
+ - "git init && git branch -M main"
97
+ - "echo 'fix 1' > changelog.txt && git add . && git commit -m 'wip'"
98
+ - "echo 'fix 2' >> changelog.txt && git add . && git commit -m 'typo fix'"
99
+ - "echo 'fix 3' >> changelog.txt && git add . && git commit -m 'oops forgot'"
100
+ - "echo 'fix 4' >> changelog.txt && git add . && git commit -m 'all done'"
101
+ files: []
102
+ task: "Use git rebase -i HEAD~4 to squash the 4 commits into 2. Change the second and fourth 'pick' to 'squash', save, and complete the rebase."
103
+ validations:
104
+ - label: "Rebase started"
105
+ check: command-match
106
+ pattern: "git rebase -i|git rebase --interactive"
107
+ - label: "Commit count reduced"
108
+ check: output-contains
109
+ pattern: "Successfully rebased|2 commits|2 files changed"
110
+ hints:
111
+ - "Interactive rebase lets you edit, squash, or reorder commits. Try git rebase -i HEAD~4."
112
+ - "In the todo list, 'pick' keeps a commit, 'squash' (or 's') combines it with the previous one."
113
+ - "Change lines 2 and 4 from 'pick' to 'squash', save and close. Git will then prompt for new commit messages."
114
+ agent_prompts:
115
+ on_start: "Why might you want to squash commits before pushing? What's the trade-off between a detailed history and a clean one?"
116
+ on_complete: "When would you avoid rebasing? Think about commits that others have already pulled."
117
+
118
+ - id: cherry-pick
119
+ title: "Cherry-Pick a Specific Commit Between Branches"
120
+ difficulty: advanced
121
+ xp: 40
122
+ setup:
123
+ - "git init && git branch -M main"
124
+ - "echo 'base' > config.txt && git add . && git commit -m 'base'"
125
+ - "git checkout -b feature"
126
+ - "echo 'A' >> config.txt && git add . && git commit -m 'Commit A'"
127
+ - "echo 'B' >> config.txt && git add . && git commit -m 'Commit B - the fix we need'"
128
+ - "echo 'C' >> config.txt && git add . && git commit -m 'Commit C'"
129
+ - "git checkout main"
130
+ files: []
131
+ task: "The feature branch has 3 commits (A, B, C). Cherry-pick only the middle one (Commit B) onto main. Use git log feature to find its hash."
132
+ validations:
133
+ - label: "Cherry-pick command used"
134
+ check: command-match
135
+ pattern: "git cherry-pick"
136
+ - label: "Correct commit applied"
137
+ check: output-contains
138
+ pattern: "Commit B|the fix we need|cherry-pick"
139
+ hints:
140
+ - "git log feature --oneline will show the commit hashes. The middle one is Commit B."
141
+ - "Cherry-pick applies a specific commit from another branch onto your current branch."
142
+ - "git cherry-pick <hash-of-B>. Use the full hash or the short 7-character prefix."
143
+ agent_prompts:
144
+ on_start: "Sometimes you want one commit from a branch but not the whole branch. What Git operation would you use? How is it different from merge?"
145
+ on_complete: "When might cherry-picking cause problems? Consider what happens if the picked commit depends on earlier commits from its branch."
@@ -0,0 +1,130 @@
1
+ # Technical Hiring — Structured Interviews That Find Signal
2
+
3
+ <!-- hint:slides topic="Structured interview pipeline: scorecard, question types, rubrics, independent scoring, and bias mitigation" slides="6" -->
4
+
5
+ ## Why Structured Interviews Matter
6
+
7
+ Unstructured interviews are **poor predictors** of job performance. They favor charisma, similarity bias, and the "gut feel" that often reflects our own biases. **Structured interviews**—same questions, same rubrics, independent scoring—improve reliability, fairness, and legal defensibility. The goal: **find signal, reduce noise.**
8
+
9
+ Sources: *Who* (Smart & Street), *Work Rules!* (Laszlo Bock, ex-Google). Both emphasize: define what you need, ask the same questions, score against a rubric.
10
+
11
+ ## Designing a Scorecard
12
+
13
+ Before writing questions, define the **scorecard**: what competencies matter, and how you'll evaluate them.
14
+
15
+ **Must-have vs. nice-to-have:**
16
+ - **Must-have** — Non-negotiable. Missing one = no hire.
17
+ - **Nice-to-have** — Strengths that differentiate; can compensate elsewhere.
18
+
19
+ **Example scorecard for a mid-level engineer:**
20
+
21
+ | Competency | Must/Need | How We Assess |
22
+ |------------|-----------|---------------|
23
+ | Problem-solving | Must | Technical screen, system design |
24
+ | Communication | Must | Behavioral, technical (explain reasoning) |
25
+ | Collaboration | Must | Behavioral (STAR) |
26
+ | Domain experience | Nice | Resume, technical depth |
27
+ | Culture add | Nice | Behavioral, values alignment |
28
+
29
+ **Rule:** Scorecard first. Questions and rubrics flow from it.
30
+
31
+ ## Interview Types
32
+
33
+ | Type | Purpose | Format |
34
+ |------|---------|--------|
35
+ | **Behavioral** | Past behavior predicts future | STAR format; same questions for all |
36
+ | **Technical** | Technical skill, problem-solving | Coding, debugging, or architecture; clear rubric |
37
+ | **System design** | Architecture, trade-offs, scale | Whiteboard or diagram; scenario-based |
38
+ | **Take-home** | Async signal; work sample | Bounded task; blind or semi-blind review |
39
+
40
+ **Balance the mix:** Don't over-index on any one. Behavioral + technical + one other is typical.
41
+
42
+ ## Writing Good Questions
43
+
44
+ ### Behavioral: STAR Format
45
+
46
+ - **S**ituation — Context
47
+ - **T**ask — Their responsibility
48
+ - **A**ction — What they did
49
+ - **R**esult — Outcome, what they learned
50
+
51
+ **Example:** "Tell me about a time you disagreed with a technical decision. What was the situation, what did you do, and what was the result?"
52
+
53
+ **Rubric:** Strong answer = specific situation, clear ownership, concrete action, reflective outcome. Weak = vague, someone else did it, no reflection.
54
+
55
+ ### Technical: Clear Rubric
56
+
57
+ - **Question:** Bounded, unambiguous. "Given an array of integers, find two that sum to target."
58
+ - **Rubric:** What does strong/medium/weak look like? Edge cases? Optimization?
59
+ - **Follow-ups:** Pre-prepared so interviewers probe consistently.
60
+
61
+ **Example rubric:** Strong = correct solution, handles edge cases, discusses complexity. Medium = correct with hint. Weak = stuck, wrong approach, can't explain.
62
+
63
+ ## Conducting the Interview
64
+
65
+ 1. **Rapport (2–3 min)** — Brief intro, set expectations, put them at ease.
66
+ 2. **Calibration** — If multiple interviewers, align on rubric before the day.
67
+ 3. **Note-taking** — Take notes *during*; don't rely on memory. Quote key phrases.
68
+ 4. **Time management** — Reserve 5–10 min for their questions.
69
+ 5. **No leading** — Don't hint at answers; let them perform.
70
+
71
+ **Candidate experience:** Start and end on time. Explain what's next. Thank them.
72
+
73
+ ## Evaluation: Independent Scoring and Debrief
74
+
75
+ 1. **Independent scoring** — Each interviewer scores *before* the debrief. No groupthink.
76
+ 2. **Debrief meeting** — Compare scores, discuss evidence, resolve discrepancies.
77
+ 3. **Hire/no-hire** — Based on scorecard; must-haves must be met.
78
+ 4. **Document** — Notes and scores for legal and calibration.
79
+
80
+ **Calibration:** Periodically review: Are we too lenient? Too harsh? Use data.
81
+
82
+ ## Common Biases
83
+
84
+ | Bias | What It Is | Mitigation |
85
+ |------|------------|------------|
86
+ | **Halo effect** | One strength overshadows weaknesses | Score each competency separately |
87
+ | **Similarity bias** | Prefer people like us | Structured questions; diverse panel |
88
+ | **Anchoring** | First impression dominates | Independent scoring; evidence-based |
89
+ | **Recency** | Remember the end of the interview | Take notes throughout |
90
+ | **Confirmation** | Seek evidence that matches initial view | Rubric first; look for disconfirming evidence |
91
+
92
+ **Inclusive hiring:** Reduce unnecessary requirements (e.g., "CS degree"); focus on competency. Diverse interview panels. Bias training.
93
+
94
+ ## Candidate Experience
95
+
96
+ - **Clear communication** — What to expect, how long, who they'll meet.
97
+ - **Respect their time** — Start on time; don't overrun.
98
+ - **Feedback** — If you reject, provide brief constructive feedback (where legally appropriate).
99
+ - **Speed** — Don't leave them hanging for weeks.
100
+
101
+ ## Hiring Pipeline Flow
102
+
103
+ ```mermaid
104
+ flowchart TD
105
+ A[Define scorecard] --> B[Screen resumes]
106
+ B --> C[Phone/technical screen]
107
+ C --> D[On-site: Behavioral]
108
+ C --> E[On-site: Technical]
109
+ C --> F[On-site: System design]
110
+ D --> G[Independent scoring]
111
+ E --> G
112
+ F --> G
113
+ G --> H[Debrief meeting]
114
+ H --> I{Hire/No-hire}
115
+ I -->|Hire| J[Offer]
116
+ I -->|No-hire| K[Reject + feedback]
117
+
118
+ style A fill:#3fb950
119
+ style G fill:#58a6ff
120
+ style H fill:#f85149
121
+ ```
122
+
123
+ ## Key Takeaways
124
+
125
+ 1. **Structured > unstructured** — Same questions, same rubric, independent scoring.
126
+ 2. **Scorecard first** — Define competencies before writing questions.
127
+ 3. **STAR for behavioral** — Situation, Task, Action, Result.
128
+ 4. **Clear rubrics for technical** — What does strong/medium/weak look like?
129
+ 5. **Mitigate bias** — Separate scoring, diverse panel, evidence-based.
130
+ 6. **Candidate experience** — Clear, respectful, timely.
@@ -0,0 +1,88 @@
1
+ # Technical Hiring — Exercises
2
+
3
+ ## Exercise 1: Create an Interview Scorecard
4
+
5
+ **Task:** For a "Senior Backend Engineer" role, create a scorecard. Include: 4–5 competencies, must-have vs. nice-to-have, and how each will be assessed. Make it specific enough that two hiring managers would agree on what "strong" looks like.
6
+
7
+ **Validation:**
8
+ - [ ] 4–5 competencies
9
+ - [ ] Must vs. nice clearly marked
10
+ - [ ] Assessment method for each (behavioral, technical, system design)
11
+ - [ ] At least one competency has a concrete "strong" description
12
+
13
+ **Hints:**
14
+ 1. Common competencies: technical depth, problem-solving, communication, collaboration, ownership
15
+ 2. Must-have: can't ship without it. Nice: differentiates top candidates
16
+ 3. "How assessed" prevents overlap (e.g., don't assess "communication" in 3 different interviews)
17
+
18
+ ---
19
+
20
+ ## Exercise 2: Write Behavioral Questions
21
+
22
+ **Task:** Write 3 behavioral questions using STAR format. Each should target a different competency (e.g., conflict, failure, collaboration). For one question, write a 3-level rubric (strong, medium, weak).
23
+
24
+ **Validation:**
25
+ - [ ] All 3 questions are open-ended and STAR-friendly
26
+ - [ ] Questions don't overlap
27
+ - [ ] Rubric has distinct levels with observable differences
28
+ - [ ] Rubric is usable by another interviewer
29
+
30
+ **Hints:**
31
+ 1. "Tell me about a time when..." — forces specificity
32
+ 2. Strong: specific situation, clear ownership, concrete action, reflection
33
+ 3. Weak: vague, someone else did it, no outcome, defensive
34
+
35
+ ---
36
+
37
+ ## Exercise 3: Design a Technical Screen
38
+
39
+ **Task:** Design a 45-minute technical phone screen. Include: the question (or question type), rubric (strong/medium/weak), time allocation (setup, problem, follow-ups, candidate Q&A), and how you'd communicate the format to the candidate beforehand.
40
+
41
+ **Validation:**
42
+ - [ ] Question is bounded (solvable in 30–35 min)
43
+ - [ ] Rubric covers correctness, approach, communication
44
+ - [ ] Time allocation is realistic
45
+ - [ ] Candidate gets clear pre-interview instructions
46
+
47
+ **Hints:**
48
+ 1. Bounded: "Find two numbers that sum to target" not "Build a social graph"
49
+ 2. Follow-ups: edge cases, optimization, alternate approaches
50
+ 3. Pre-email: "You'll have 45 min. We'll share a doc; you can use any language. Camera on for discussion."
51
+
52
+ ---
53
+
54
+ ## Exercise 4: Bias Mitigation Checklist
55
+
56
+ **Task:** Create a 5-item "bias mitigation" checklist for your interview process. Each item should be concrete and actionable (e.g., "Score each competency before debrief"). For each, explain which bias it addresses.
57
+
58
+ **Validation:**
59
+ - [ ] 5 items, each actionable
60
+ - [ ] Each linked to a specific bias (halo, similarity, anchoring, etc.)
61
+ - [ ] Checklist could be used by any interviewer
62
+ - [ ] Items are implementable without major process change
63
+
64
+ **Hints:**
65
+ 1. Independent scoring → reduces anchoring, groupthink
66
+ 2. Same questions for all → reduces similarity bias
67
+ 3. Rubric-first evaluation → reduces halo effect
68
+ 4. Diverse panel → reduces similarity bias
69
+ 5. Note-taking during → reduces recency bias
70
+
71
+ ---
72
+
73
+ ## Exercise 5: Candidate Experience Audit
74
+
75
+ **Task:** Audit a hypothetical or real hiring pipeline from application to offer. List 5 touchpoints. For each, identify: what the candidate experiences, one potential pain point, and one improvement.
76
+
77
+ **Validation:**
78
+ - [ ] 5 touchpoints identified
79
+ - [ ] Pain point is specific (not "could be better")
80
+ - [ ] Improvement is concrete
81
+ - [ ] Covers: application, screening, onsite, follow-up, offer
82
+
83
+ **Hints:**
84
+ 1. Application: Is the form long? Is there a way to track status?
85
+ 2. Screening: How long do they wait? Do they get feedback?
86
+ 3. Onsite: Is the schedule clear? Are they left alone in a room?
87
+ 4. Follow-up: How quickly do you decide? Do you communicate?
88
+ 5. Offer: Is the process clear? Is the timeline respectful?
@@ -0,0 +1,41 @@
1
+ slug: hiring-interviews
2
+ title: "Technical Hiring — Structured Interviews That Find Signal"
3
+ version: 1.0.0
4
+ description: "Conduct fair, structured technical interviews: scorecards, question design, bias mitigation, and candidate experience."
5
+ category: leadership
6
+ tags: [hiring, interviews, recruiting, structured-interviews, evaluation, team-building]
7
+ difficulty: intermediate
8
+
9
+ xp:
10
+ read: 15
11
+ walkthrough: 40
12
+ exercise: 25
13
+ quiz: 20
14
+ quiz-perfect-bonus: 10
15
+
16
+ time:
17
+ quick: 5
18
+ read: 20
19
+ guided: 50
20
+
21
+ prerequisites: []
22
+ related: [one-on-ones, technical-mentoring]
23
+
24
+ triggers:
25
+ - "How do I conduct technical interviews?"
26
+ - "How do I evaluate candidates fairly?"
27
+ - "What makes a structured interview?"
28
+ - "How do I avoid bias in hiring?"
29
+
30
+ visuals:
31
+ diagrams: [diagram-flow, diagram-mermaid]
32
+ quiz-types: [quiz-drag-order, quiz-timed-choice]
33
+ slides: true
34
+
35
+ sources:
36
+ - label: "Who by Geoff Smart and Randy Street"
37
+ type: book
38
+ url: "https://whothebook.com/"
39
+ - label: "Work Rules! by Laszlo Bock"
40
+ type: book
41
+ url: "https://www.workrules.net/"
@@ -0,0 +1,68 @@
1
+ # Technical Hiring — Quick Reference
2
+
3
+ ## Why Structured
4
+
5
+ **Same questions, same rubric, independent scoring.** Improves reliability, fairness, legal defensibility.
6
+
7
+ ## Scorecard First
8
+
9
+ 1. Define competencies (4–6)
10
+ 2. Must-have vs. nice-to-have
11
+ 3. How each is assessed
12
+ 4. Write questions from scorecard
13
+
14
+ ## Interview Types
15
+
16
+ | Type | Purpose |
17
+ |------|---------|
18
+ | Behavioral | Past behavior → future; STAR |
19
+ | Technical | Coding, problem-solving, rubric |
20
+ | System design | Architecture, trade-offs |
21
+ | Take-home | Async work sample |
22
+
23
+ ## Behavioral: STAR
24
+
25
+ - **S**ituation — Context
26
+ - **T**ask — Their responsibility
27
+ - **A**ction — What they did
28
+ - **R**esult — Outcome, learning
29
+
30
+ **Example:** "Tell me about a time you disagreed with a technical decision. Situation, task, action, result?"
31
+
32
+ ## Technical Rubric
33
+
34
+ - **Strong** — Correct, edge cases, explains reasoning, optimization
35
+ - **Medium** — Correct with hint, partial edge cases
36
+ - **Weak** — Stuck, wrong approach, can't explain
37
+
38
+ ## Conducting
39
+
40
+ 1. Rapport (2–3 min)
41
+ 2. Calibrate before the day
42
+ 3. Take notes during
43
+ 4. Reserve time for candidate questions
44
+ 5. No leading — let them perform
45
+
46
+ ## Evaluation
47
+
48
+ 1. **Independent scoring** — Before debrief
49
+ 2. **Debrief** — Compare, discuss evidence
50
+ 3. **Hire/no-hire** — Must-haves met
51
+ 4. **Document** — Notes and scores
52
+
53
+ ## Common Biases
54
+
55
+ | Bias | Mitigation |
56
+ |------|------------|
57
+ | Halo effect | Score each competency separately |
58
+ | Similarity bias | Structured questions; diverse panel |
59
+ | Anchoring | Independent scoring first |
60
+ | Recency | Notes throughout |
61
+ | Confirmation | Look for disconfirming evidence |
62
+
63
+ ## Candidate Experience
64
+
65
+ - Clear communication (what to expect)
66
+ - Start and end on time
67
+ - Feedback when possible
68
+ - Don't leave them hanging
@@ -0,0 +1,73 @@
1
+ # Technical Hiring — Quiz
2
+
3
+ ## Question 1
4
+
5
+ Why do structured interviews outperform unstructured ones?
6
+
7
+ A) They take less time
8
+ B) They improve reliability, fairness, and legal defensibility
9
+ C) They are easier to design
10
+ D) They require fewer interviewers
11
+
12
+ <!-- ANSWER: B -->
13
+ <!-- EXPLANATION: Structured interviews use the same questions and rubrics for all candidates. This improves reliability (consistent evaluation), fairness (reduces bias), and legal defensibility (documented, job-related criteria). Unstructured interviews favor charisma and similarity bias. -->
14
+
15
+ ## Question 2
16
+
17
+ When should you define the interview scorecard?
18
+
19
+ A) After writing the first question
20
+ B) Before writing any questions
21
+ C) During the debrief
22
+ D) After the first candidate
23
+
24
+ <!-- ANSWER: B -->
25
+ <!-- EXPLANATION: Scorecard first. Define what competencies matter and how you'll assess them before writing questions. Questions and rubrics flow from the scorecard. This ensures alignment and prevents ad-hoc, inconsistent evaluation. -->
26
+
27
+ ## Question 3
28
+
29
+ What does STAR stand for in behavioral interviews?
30
+
31
+ A) Skill, Task, Action, Result
32
+ B) Situation, Task, Action, Result
33
+ C) Strategy, Time, Analysis, Response
34
+ D) Standard, Test, Assess, Review
35
+
36
+ <!-- ANSWER: B -->
37
+ <!-- EXPLANATION: STAR = Situation (context), Task (their responsibility), Action (what they did), Result (outcome, what they learned). It's a framework for getting specific, past-behavior examples that predict future performance. -->
38
+
39
+ ## Question 4
40
+
41
+ Which bias occurs when one positive trait overshadows weaknesses?
42
+
43
+ A) Similarity bias
44
+ B) Halo effect
45
+ C) Anchoring
46
+ D) Recency bias
47
+
48
+ <!-- ANSWER: B -->
49
+ <!-- EXPLANATION: The halo effect: one strength (e.g., charisma, pedigree) leads us to overlook weaknesses. Mitigation: score each competency separately; use a rubric; look for disconfirming evidence. -->
50
+
51
+ ## Question 5
52
+
53
+ When should interviewers score candidates?
54
+
55
+ A) During the debrief, together
56
+ B) After the debrief, individually
57
+ C) Before the debrief, independently
58
+ D) Only the hiring manager scores
59
+
60
+ <!-- ANSWER: C -->
61
+ <!-- EXPLANATION: Interviewers should score independently before the debrief. This prevents groupthink and anchoring—if you hear others first, you may adjust your score. Independent scoring preserves each person's judgment, then the debrief reconciles. -->
62
+
63
+ ## Question 6
64
+
65
+ What is a key principle of inclusive hiring?
66
+
67
+ A) Require a CS degree
68
+ B) Focus on competency; reduce unnecessary requirements
69
+ C) Prioritize "culture fit" above all
70
+ D) Use only technical interviews
71
+
72
+ <!-- ANSWER: B -->
73
+ <!-- EXPLANATION: Inclusive hiring focuses on competencies that predict performance. Unnecessary requirements (e.g., CS degree when equivalent experience works) exclude qualified candidates. Diverse panels, structured questions, and rubric-based evaluation support fairness. -->
@@ -0,0 +1,36 @@
1
+ # Technical Hiring — Resources
2
+
3
+ ## Books
4
+
5
+ - **Who: The A Method for Hiring** by Geoff Smart and Randy Street — Scorecard, structured interviews, topgrading.
6
+ - **Work Rules!** by Laszlo Bock — Google's hiring practices; structured interviews, bias reduction.
7
+ - **The Manager's Path** by Camille Fournier — Hiring for eng managers; interviewing, calibration.
8
+ - **Hiring for the Startup** by Y Combinator — Practical hiring for early-stage teams.
9
+
10
+ ## Articles
11
+
12
+ - [Google — How We Hire](https://rework.withgoogle.com/) — Re:Work guides on structured interviewing.
13
+ - [First Round Review — Interviewing](https://review.firstround.com/) — Aggregated hiring and interview best practices.
14
+ - [Lara Hogan — Demystifying the Engineering Manager](https://larahogan.me/blog/) — Hiring, interviewing, bias.
15
+ - [Triplebyte Blog](https://triplebyte.com/blog) — Technical interviewing, bias, candidate experience.
16
+ - [Workable — Structured Interview Guide](https://resources.workable.com/) — How to design and run structured interviews.
17
+
18
+ ## Videos
19
+
20
+ - [LeadDev — Technical Hiring](https://leaddev.com/) — Conference talks on hiring.
21
+ - [InfoQ — Hiring in Tech](https://www.infoq.com/) — Panels and talks.
22
+ - [Laszlo Bock — Work Rules! Talk](https://www.youtube.com/results?search_query=laszlo+bock+work+rules) — Key concepts from the book.
23
+
24
+ ## Podcasts
25
+
26
+ - [Engineering Culture by InfoQ](https://www.infoq.com/podcasts/engineering-culture/) — Hiring, interviews.
27
+ - [LeadDev podcast](https://leaddev.com/podcast) — Hiring, team building.
28
+ - [Lenny's Podcast](https://www.lennyspodcast.com/) — Hiring leaders, interview design.
29
+
30
+ ## Tools
31
+
32
+ - [Lever](https://www.lever.co/) — ATS with structured interview support, scorecards.
33
+ - [Greenhouse](https://www.greenhouse.io/) — Hiring software; structured interview kits.
34
+ - [Interviewing.io](https://interviewing.io/) — Anonymous technical interviewing practice.
35
+ - [Lattice](https://lattice.com/) — Performance and hiring; scorecards.
36
+ - [Notion](https://www.notion.so/) — Scorecard templates, interview guides.