init
Release Please / release-please (push) Failing after 4m2s
Web CI / web typecheck + build (push) Successful in 3m39s
CodeQL Analysis / Analyze (javascript-typescript) (push) Failing after 1h1m49s
CodeQL Analysis / Analyze (go) (push) Failing after 1h1m49s

This commit is contained in:
redlineo committed 2026-07-13 10:14:00 +03:00
commit d295c7f139
1527 files changed
+270726

No files matched your search

@@ -0,0 +1,106 @@
# Example -- dual-track engineer + instructor
This is for the case where one candidate has a real track record on two different archetypes at once. The example here is a senior AI engineer who is also a senior technical instructor, but the same structure works for backend + SRE, ML + research, IC + manager, or engineer + product manager.
The default career-ops examples assume one north-star archetype. Hybrid careers do not fit that mould. Bootcamp instructors, university lecturers, AI/ML educators inside companies, DevRel engineers, training architects, internal-enablement leads -- these people have two real jobs on the CV and the existing single-archetype config either flattens one side or the other.
This folder shows how to:
1. Configure `archetypes:` in `profile.yml` with two `fit: primary` entries instead of one.
2. Write a `cv.md` that puts measurable wins on both sides in front of the recruiter without diluting either.
3. Set two compensation ranges. Engineering and teaching pay differently, often by 20-40%, and the evaluator needs to know which range applies to a given offer.
4. At evaluation time, decide which track to lead with for the specific JD on the desk.
---
## Files
| File | Purpose |
|------|---------|
| `cv.md` | Fictional dual-track CV (Sam Rivera). Use as structural reference for your own. |
| `profile.yml` | Profile config with two primary archetypes and two comp ranges. |
| `README.md` | This file. |
The persona is fictional (`Sam Rivera <sam@example.com>`). Do not copy values directly -- adapt them.
---
## When to use the dual-track pattern
Use it only if all of these are true:
1. You have measurable, recent (under 3 years old) wins on two different archetypes. Not "I taught a workshop once", but real numbers: hours taught, alumni placed, retention rates, NPS -- and on the engineering side, LOC shipped, systems owned, latency or cost moved.
2. You will actually take an offer from either side. If you would only really accept one and grudgingly take the other, do single-track and treat the other side as one strong bullet in the summary.
3. The two tracks are at roughly the same seniority. A junior teacher who is also a staff engineer is a single-track engineer who happens to mentor.
Use single-track instead if:
- One side is hobby-grade. "I mentor on weekends" does not count as a teaching career.
- The seniorities are mismatched.
- You are early enough in your career that you don't actually know yet which side is the main one.
- Your salary expectations on one track are non-negotiable. Pick that track and use the other as a differentiator in the cover letter.
---
## How dual-track changes the rest of career-ops
### `modes/_shared.md`
List both archetypes in the "North Star -- Target Roles" table with `fit: primary`. The skill applies equal rigor to all primary archetypes, which is what you need here.
### `cv.md`
Two ways to structure it:
- Layered (what I recommend): one Professional Summary that names both tracks in the first sentence, then experience entries that include both engineering and teaching bullets per role. Use this when the roles actually combined both. See the `cv.md` in this folder.
- Sectioned: separate "Engineering Experience" and "Teaching Experience" headings. Use this when the two tracks happened at different employers and don't need to be told as one story.
Lead the Professional Summary with the combination itself -- "senior AI engineer who runs the curriculum", or whatever the equivalent is for your stack. The combination is the thing that's hard to hire. Either side alone is not.
### `profile.yml` -- compensation
Put your engineering range in `compensation.target_range` (it's usually the higher one) and the teaching range in the optional `compensation.alternate_ranges` block. The evaluator picks the right one based on the JD.
### Evaluation reports
When career-ops evaluates an offer, it should detect which archetype the JD targets and pick the matching salary range, the matching CV emphasis, and the matching STAR stories. With two `fit: primary` entries this mostly just works, but check the `Archetype:` line in the report header. If it picked wrong, the rest of the report is wrong too.
---
## Interview objection handling
A dual-track CV triggers objections that single-track CVs do not. Three you should expect.
### "Why are you applying for an engineering role if you also teach?"
The answer template I use:
> "Teaching is how I keep the engineering sharp. I have to ship code that students can actually run, debug, and extend, so I cannot get away with hand-waving. The reason I am here for [role] is [specific reason about the team / product / scope]. Teaching stays as a side activity, not a competing job."
Lead with engineering wins. Mention teaching as a credibility signal ("I have explained transformers about 200 times so I know exactly which parts trip people up"), not as a co-equal commitment.
### "Are you sure you want a teaching role? Your engineering background is intense, you will be bored."
> "The students I want to teach are going to ship production systems, not pass a quiz. My engineering background is exactly why I can get them there. I have done both for [N] years. This is not a step down. It is the same work in a different format."
Lead with the teaching wins (hours, alumni placed, retention, NPS). Use the engineering background as proof of credibility, not as a fallback plan.
### "Why not just pick one?"
> "Because the combination is the actual value. Engineers who can teach end up leading onboarding, writing internal docs people actually read, and running technical interviews. Teachers who can ship get hired to design curriculum that survives contact with production. I am looking for roles where both matter."
---
## Over/underqualified failure modes
Dual-track candidates get read as overqualified for pure teaching roles ("you will leave in six months for an engineering job") and as underqualified for pure engineering roles ("you have not been a full-time IC in two years"). Both kill applications. The mitigations:
| Risk | Mitigation in CV | Mitigation in interview |
|------|------------------|-------------------------|
| Overqualified for teaching | Lead the Summary with curriculum and outcomes, not LOC | Tell a story about a course you redesigned that moved student outcomes. Show you care about pedagogy, not just shipping. |
| Underqualified for engineering | Add a "Recent Engineering" section that lists shipping work from the last 12 months | Bring code. Pull up a PR you wrote in the last month. Walk through the architecture decisions in plain language. |
---
## Related files
- `../cv-example.md` -- single-track CV example for comparison.
- `../../config/profile.example.yml` -- the canonical profile schema this example extends.
- `../../modes/_shared.md` -- where archetypes feed into framing logic.
- `../../CONTRIBUTING.md` -- this example was contributed under "Add example CVs for different roles".
@@ -0,0 +1,80 @@
# CV -- Sam Rivera
**Location:** Berlin, Germany (remote-friendly, EU timezones)
**Email:** sam@example.com
**LinkedIn:** linkedin.com/in/sam-rivera-example
**Portfolio:** sam-rivera.example.dev
**GitHub:** github.com/sam-rivera-example
## Professional Summary
Two jobs at once for the last four years: senior AI engineer at a knowledge-graph SaaS (60K LOC of the AI subsystem, agent infra handling 4M+ events/month), and lead instructor at an applied AI bootcamp (5,200 teaching hours, 80 alumni placed into ML/AI roles, 92% completion across 11 cohorts). I keep doing both because the bootcamp work forces me to write code people can actually read, and the production work keeps the curriculum from becoming a fairy tale. I will take a role that is mostly engineering, mostly teaching, or both.
## Recent engineering (last 12 months)
- Wrote a planner / executor / critic loop on top of LangGraph for the internal agent platform. HITL checkpoints, Redis-backed checkpointer, ~14K LOC TypeScript on Bun. Average task-completion latency went from 9.2s to 5.7s after the executor stopped re-running the planner on retries (this was the bug that cost me a weekend).
- `agent-skills-kit` (fictional example) is the open source spinoff of the same loop. 2.4K stars, 11 outside contributors. I mostly maintain it on Sundays.
- 47 merged PRs across two production codebases in the last year. Happy to walk through any of them in an interview, including the ones I would write differently now.
## Work Experience
### Knowledge-Graph SaaS GmbH -- Berlin
**Senior AI Engineer / Team Lead**
2022-2026
- Owned the AI subsystem of a Neo4j-backed enterprise knowledge graph product. The AI layer was 97K LOC at handover; I wrote or rewrote around 60K of that.
- Embedding pipeline: chunker, dedupe, Azure OpenAI embed, Chroma + Neo4j sync. Throughput was ~50 docs/min when I picked it up. After I rewrote it around batched async and a real connection pool, it sat at 1,800 docs/min in production. The bottleneck the whole time was a single sync HTTP client nobody had thought to look at.
- Built the agent layer with LangChain and LangGraph using the 12-factor agents pattern. Redis-backed checkpointer, observability through LangSmith. 4M+ agent events/month at peak.
- Ran a team of three engineers and one designer. Weekly architecture review, pair programming on Tuesdays, an on-call rotation that went from "we don't have one" to a 30-minute response SLO with a written playbook.
- Built the customer-facing eval dashboard: latency, cost-per-query, hallucination rate, retrieval precision and recall. We walked through it with customers in their monthly business reviews.
### Applied AI Bootcamp -- Berlin (parallel role, same window)
**Lead Instructor, AI Engineering Track**
2022-2026
- Wrote and ran a 4-week AI Engineering curriculum: Bun, TypeScript, LangChain, LangGraph, Redis, Neo4j, LangSmith, MCP, Anthropic SDK. Six cohorts, average size 14.
- Wrote and ran a 4-week Applied Python for AI curriculum: Python, FastAPI, ChromaDB, Gradio, HuggingFace Transformers, wandb. Five cohorts.
- 5,200 teaching hours total across both tracks (lecture + lab + 1:1 office hours). I keep a real spreadsheet, not a vibes count.
- 80 alumni placed into AI/ML engineering roles so far. I personally maintain the outcomes tracker because the school does not.
- NPS 71. Completion rate 92%, against an industry baseline of 60-75% for intensive bootcamps.
- Wrote the assessment rubric and the capstone-week format the school later adopted across all technical tracks. I lost an argument about timeboxing the capstone and was right two cohorts later.
### Mid-stage AI Consultancy -- Remote
**ML Engineer**
2019-2022
- Nine client engagements: NLP classification, two recommender systems, and two early LLM prototypes back when GPT-3 was the only game in town.
- Wrote the internal eval harness the rest of the consultancy adopted. Cut "vibes-check" review cycles down to a 20-minute structured CI run.
- Mentored four junior engineers. Two are now senior ICs at FAANG-tier companies. This is the job where I figured out I liked teaching as much as building.
### Mobile Games Studio -- Remote
**Backend Engineer**
2017-2019
- Backend services for a live-ops mobile game: matchmaking, leaderboards, IAP reconciliation. Python, Postgres, Redis.
- Rewrote the internal SDK onboarding doc. New-hire ramp-up went from three weeks to eight days. The old doc had a 14-step setup that nobody on the current team had actually run end-to-end.
## Projects
- `agent-skills-kit` (fictional example, open source) -- TypeScript scaffolding for agent skills with HITL approval gates. 2.4K GitHub stars, 11 outside contributors, ~120 weekly active developers. Newsletter mentions in TLDR AI and Ben's Bites.
- `pplx-embed-local-runner` (fictional example, open source) -- a small local runner for open embedding models with a drop-in OpenAI-compatible API. 610 stars. Three of the bootcamp lab exercises run against it instead of paid APIs.
- AI Engineering 4-Week Intensive -- the full curriculum: syllabus, 38 lecture scripts, 16 graded projects on Bronze / Silver / Gold / Diamond difficulty tiers. Used in six cohorts. Written by me, debugged by the students.
## Education
- BSc Computer Science, TU Example (2017)
- Self-directed: Andrew Ng MLOps specialization, fast.ai Part 1+2, hand-rolled implementations of attention + RAG from scratch.
## Speaking and writing
- "Why your bootcamp's LLM module is wrong" -- BerlinML meetup, 2025. ~120 in the room.
- "Production agents, the boring parts" -- internal talk at two partner companies. The boring parts are timeouts and idempotency.
- About 12 long-form blog posts on agent architecture, eval design, and teaching technical material to working engineers. The eval-design one is the only one I'd link unprompted.
## Skills
Engineering: TypeScript, Python (daily), Go (I can read it and write small things), SQL. LangChain, LangGraph, Anthropic SDK, HuggingFace Transformers/Trainer, scikit-learn, PyTorch (basics, not research-level), MCP. Bun, Node.js, FastAPI, Gradio, Redis, Neo4j, ChromaDB, Postgres, Docker, GitHub Actions. LangSmith, Grafana, custom eval dashboards, wandb.
Teaching: curriculum design with Bronze/Silver/Gold/Diamond difficulty tiering, capstone formats, lab vs lecture split. Delivery: lecture, hands-on lab, 1:1 office hours, code review at scale, pair programming. I have taught working engineers (career-changers), university CS students, and internal teams. Assessment work: rubrics, capstone projects, portfolio review, mock-interview design.
Other: public speaking in German and English, technical writing, hiring loop design, mentorship.
@@ -0,0 +1,115 @@
# Career-Ops Profile -- Dual-Track Example (Engineer + Instructor)
#
# Fictional persona. Demonstrates how to configure a profile when you are
# optimizing for TWO archetypes at the same time -- e.g. Senior AI Engineer
# AND Senior Technical Instructor. See README.md in this folder for the
# rationale and the interview-objection playbook.
#
# Copy this file to config/profile.yml and edit before using.
candidate:
full_name: "Sam Rivera"
email: "sam@example.com"
phone: "+00-000-0000000" # placeholder, replace with your real number
location: "Berlin, Germany"
linkedin: "linkedin.com/in/sam-rivera-example"
portfolio_url: "https://sam-rivera.example.dev"
github: "github.com/sam-rivera-example"
twitter: "https://x.com/sam_rivera_example"
target_roles:
# North Star -- TWO primary tracks, not one.
primary:
- "Senior AI Engineer"
- "Staff AI Engineer"
- "Senior Technical Instructor (AI/ML)"
- "Lead Curriculum Engineer"
# Archetypes -- note: TWO entries with fit: primary.
# The evaluator should pick whichever is closer to the JD at scoring time.
archetypes:
- name: "Senior AI Engineer"
level: "Senior/Staff"
fit: "primary"
track: "engineering"
sell_when: "JD emphasizes shipping production AI, agent infra, LangChain/LangGraph, eval systems, ownership of an AI subsystem"
- name: "Senior Technical Instructor (AI/ML)"
level: "Senior/Lead"
fit: "primary"
track: "teaching"
sell_when: "JD emphasizes curriculum, cohort delivery, bootcamp/university lectureship, DevRel education, internal enablement, instructor-led training"
- name: "AI DevRel Engineer"
level: "Senior"
fit: "secondary"
track: "hybrid"
sell_when: "JD wants someone who can ship demos, write docs, AND speak at events / run workshops -- the natural dual-track landing zone"
- name: "Head of AI Education / Curriculum Lead"
level: "Lead/Manager"
fit: "secondary"
track: "teaching"
sell_when: "JD wants ownership of an entire curriculum, hiring + managing instructors, working with industry partners"
- name: "Forward Deployed AI Engineer"
level: "Senior"
fit: "adjacent"
track: "engineering"
sell_when: "JD wants client-facing technical work, fast prototyping, customer enablement -- teaching skills become a differentiator here"
narrative:
# One-line headline. Names BOTH tracks. The "rare combination" is the value.
headline: "Senior AI engineer who also runs the curriculum -- 60K LOC in production, 5,200+ teaching hours, 80+ careers launched"
# Exit story bridges both tracks into one coherent reason for the move.
exit_story: "Spent 4 years running an AI subsystem at a knowledge-graph SaaS in parallel with leading the AI Engineering track at a Berlin bootcamp. Both missions are complete -- now optimizing for a single role that uses both sides, or for one side at full intensity if the team is right."
# Superpowers -- mix of engineering AND teaching to reflect the dual track.
superpowers:
- "Ship production AI systems end-to-end (LangChain, LangGraph, Neo4j, Redis)"
- "Design curriculum that produces hireable engineers (92% completion, 80+ placed)"
- "Explain hard technical material in plain language -- in two languages"
- "Run incident reviews and code reviews at scale without burning out the team"
- "Bridge engineering and education -- internal docs that people actually read"
# Proof points -- mix engineering AND teaching wins, marked by track.
proof_points:
- name: "Knowledge-Graph SaaS AI subsystem"
url: "https://sam-rivera.example.dev/case-study-knowledge-graph"
hero_metric: "60K LOC owned, 4M+ agent events/month, 38% latency cut"
track: "engineering"
- name: "agent-skills-kit"
url: "https://github.com/sam-rivera-example/agent-skills-kit"
hero_metric: "2,400+ GitHub stars, 11 contributors"
track: "engineering"
- name: "AI Engineering 4-Week Intensive (curriculum)"
url: "https://sam-rivera.example.dev/curriculum-ai-eng"
hero_metric: "6 cohorts, NPS 71, 92% completion, 80+ careers launched"
track: "teaching"
- name: "pplx-embed-local-runner"
url: "https://github.com/sam-rivera-example/pplx-embed-local-runner"
hero_metric: "610 stars, used in 3 lab exercises"
track: "hybrid"
# Optional dashboard / live demo
# dashboard:
# url: "https://sam-rivera.example.dev/demo"
# password: "demo-2026"
compensation:
# Default range = engineering range (typically higher).
target_range: "EUR 95K-130K"
currency: "EUR"
minimum: "EUR 80K"
location_flexibility: "Remote within EU; up to 1 week/month on-site in Berlin or any EU city"
# alternate_ranges -- non-standard but the dual-track pattern needs it.
# The evaluator should pick the range matching the detected archetype track.
alternate_ranges:
- track: "teaching"
target_range: "EUR 70K-95K"
minimum: "EUR 60K"
note: "Teaching roles pay less than engineering. Walk-away is lower because the work is intrinsically rewarding, but not unlimited."
- track: "hybrid"
target_range: "EUR 90K-120K"
minimum: "EUR 75K"
note: "DevRel and Forward-Deployed roles -- price between the two tracks."
location:
country: "Germany"
city: "Berlin"
timezone: "CET/CEST"
visa_status: "EU citizen, no sponsorship needed"
onsite_availability: "1 week/month in any EU city; full remote preferred"