@iceinvein/agent-skills 0.1.19 → 0.1.21
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.
- package/README.md +20 -0
- package/package.json +2 -1
- package/skills/cover-letter/SKILL.md +161 -0
- package/skills/cover-letter/evals/evals.json +38 -0
- package/skills/cover-letter/evals/inputs/jd-linear-senior-backend.md +43 -0
- package/skills/cover-letter/evals/inputs/jd-pathway-junior-fullstack.md +44 -0
- package/skills/cover-letter/evals/inputs/jd-ramp-senior-go-platform.md +39 -0
- package/skills/cover-letter/evals/inputs/resume-jordan-martinez.md +39 -0
- package/skills/cover-letter/evals/inputs/resume-priya-iyer.md +38 -0
- package/skills/cover-letter/evals/inputs/resume-sam-wu.md +48 -0
- package/skills/cover-letter-audit/SKILL.md +314 -0
- package/skills/cover-letter-persona/SKILL.md +231 -0
- package/skills/cover-letter-rewrite/SKILL.md +298 -0
- package/skills/cover-letter-write/SKILL.md +267 -0
- package/skills/improve-my-codebase/CATALOGUE-FIELDS.md +26 -0
- package/skills/improve-my-codebase/SKILL.md +516 -0
- package/skills/index.json +114 -26
- package/skills/terse/SKILL.md +55 -26
- package/skills/terse/skill.json +6 -3
package/README.md
CHANGED
|
@@ -78,12 +78,32 @@ Skills that control how the agent communicates — output compression, token eff
|
|
|
78
78
|
|-------|----------|--------------|
|
|
79
79
|
| **terse** | Caveman (refined) | Professional output compression — cuts ~50-60% of tokens by eliminating LLM verbosity habits (preambles, hedging, trailing summaries) while keeping proper grammar. Three levels: clean, tight, sharp. |
|
|
80
80
|
|
|
81
|
+
### Career & Writing
|
|
82
|
+
|
|
83
|
+
Skills for producing job application materials that read like a human wrote them, match the role, and align with the resume.
|
|
84
|
+
|
|
85
|
+
| Skill | Role | What it does |
|
|
86
|
+
|-------|------|--------------|
|
|
87
|
+
| **cover-letter** | Suite router | Dispatches to write, audit, rewrite, or persona subcommands. Shares conventions for file I/O (PDF, DOCX, MD/MDX, URL), output formats, and writing principles across the suite. |
|
|
88
|
+
| **cover-letter-write** | Generator | Generates a cover letter from resume + job description. Outputs markdown, DOCX, and PDF. Enforces human prose (burstiness, concrete verbs, no filler openers), maps every claim to a resume bullet, and covers top JD requirements without keyword stuffing. |
|
|
89
|
+
| **cover-letter-audit** | Scorer | Scores a letter on 100 points across content/fit, structure, voice/humanness, and correctness. Detects AI-generated-content signals (burstiness, 50+ AI phrases including sentimental cliches, TTR, em-dashes, passive voice) and produces prioritized fixes. |
|
|
90
|
+
| **cover-letter-rewrite** | Reviser | Audit-driven targeted rewrite of an existing letter. Focus modes: humanize, align, tighten, structure, tone. Preserves voice where it already works. |
|
|
91
|
+
| **cover-letter-persona** | Voice profile | Reusable writing personas using the NNGroup 4-dimension tone framework (funny-serious, formal-casual, respectful-irreverent, enthusiastic-matter-of-fact) adapted for professional correspondence. |
|
|
92
|
+
|
|
81
93
|
### Tooling
|
|
82
94
|
|
|
83
95
|
| Skill | Type | What it does |
|
|
84
96
|
|-------|------|--------------|
|
|
85
97
|
| **code-intelligence** | MCP server | Semantic code search, call hierarchy, dependency graphs, and impact analysis. Powered by `@iceinvein/code-intelligence-mcp`. |
|
|
86
98
|
|
|
99
|
+
### Orchestration
|
|
100
|
+
|
|
101
|
+
Skills that compose the other audit skills into higher-level workflows.
|
|
102
|
+
|
|
103
|
+
| Skill | What it does |
|
|
104
|
+
|-------|--------------|
|
|
105
|
+
| **improve-my-codebase** | Runs every applicable audit skill in parallel against your codebase, ranks findings by convergence (multiple audits agreeing) and per-file rollup, and writes a prioritized improvement report. Default sweeps everything; positional args switch modes (`quick`, `diff`, `interactive`) or narrow scope (`focus <area>`, `module <path>`). |
|
|
106
|
+
|
|
87
107
|
## Commands
|
|
88
108
|
|
|
89
109
|
```
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@iceinvein/agent-skills",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.21",
|
|
4
4
|
"description": "Install agent skills into AI coding tools",
|
|
5
5
|
"author": "iceinvein",
|
|
6
6
|
"license": "MIT",
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
"url": "https://github.com/iceinvein/agent-skills"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
+
"@anthropic-ai/claude-agent-sdk": "^0.2.104",
|
|
41
42
|
"bun-types": "^1.3.11"
|
|
42
43
|
}
|
|
43
44
|
}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cover-letter
|
|
3
|
+
description: >
|
|
4
|
+
Full-lifecycle cover letter suite. Generates, audits, and rewrites cover letters
|
|
5
|
+
from a resume and job description. Produces markdown, DOCX, and PDF outputs.
|
|
6
|
+
Optimizes for human-sounding prose, evidence alignment with the resume, and
|
|
7
|
+
coverage of the job description's key requirements. Also scores letters for
|
|
8
|
+
AI-generated-content risk, structure, correctness, and tone. Use when the user
|
|
9
|
+
says "cover letter", "write cover letter", "draft cover letter", "audit cover
|
|
10
|
+
letter", "rewrite cover letter", "optimize cover letter", "check cover letter",
|
|
11
|
+
or shares a resume and job description together. Route to the right subcommand:
|
|
12
|
+
write, audit, rewrite, or persona.
|
|
13
|
+
argument-hint: "[write|audit|rewrite|persona] [...args]"
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Cover Letter Suite
|
|
17
|
+
|
|
18
|
+
Four coordinated skills for producing and refining cover letters that read like
|
|
19
|
+
a human wrote them, fit the job, and match the resume.
|
|
20
|
+
|
|
21
|
+
## Subcommands
|
|
22
|
+
|
|
23
|
+
| Command | Purpose | Skill |
|
|
24
|
+
|---------|---------|-------|
|
|
25
|
+
| `/cover-letter write` | Generate a letter from resume + job description | `cover-letter-write` |
|
|
26
|
+
| `/cover-letter audit <file>` | Score a letter on content, structure, AI-ness, correctness | `cover-letter-audit` |
|
|
27
|
+
| `/cover-letter rewrite <file>` | Humanize and realign an existing letter | `cover-letter-rewrite` |
|
|
28
|
+
| `/cover-letter persona [create\|list\|use\|show]` | Manage writing voice/tone profiles | `cover-letter-persona` |
|
|
29
|
+
|
|
30
|
+
When invoked without arguments, list these subcommands and ask which one the
|
|
31
|
+
user wants.
|
|
32
|
+
|
|
33
|
+
## Routing
|
|
34
|
+
|
|
35
|
+
- If the user supplies a resume file and a job description (either file, URL, or
|
|
36
|
+
pasted text), route to `cover-letter-write`.
|
|
37
|
+
- If the user asks to check, score, or review an existing letter, route to
|
|
38
|
+
`cover-letter-audit`.
|
|
39
|
+
- If the user asks to improve, humanize, shorten, or realign an existing letter,
|
|
40
|
+
route to `cover-letter-rewrite`.
|
|
41
|
+
- If the user asks about voice, tone, or style, route to `cover-letter-persona`.
|
|
42
|
+
|
|
43
|
+
## Shared Conventions
|
|
44
|
+
|
|
45
|
+
All four skills share the conventions below. Keep these consistent across the
|
|
46
|
+
suite so outputs and state are predictable.
|
|
47
|
+
|
|
48
|
+
### File I/O
|
|
49
|
+
|
|
50
|
+
Input formats supported for both resume and job description:
|
|
51
|
+
|
|
52
|
+
| Format | Extraction tool | Notes |
|
|
53
|
+
|--------|----------------|-------|
|
|
54
|
+
| `.md`, `.mdx`, `.txt` | Direct read | Use the Read tool |
|
|
55
|
+
| `.pdf` | `pdftotext -layout <file> -` | Falls back to `pandoc` if `pdftotext` missing |
|
|
56
|
+
| `.docx` | `pandoc <file> -t markdown` | Pandoc required |
|
|
57
|
+
| URL (job description only) | `WebFetch` | Extract the visible job posting text |
|
|
58
|
+
| Pasted text | Direct use | User pastes into the prompt |
|
|
59
|
+
|
|
60
|
+
Before extracting, verify the tool is available (`command -v pdftotext`, `command -v pandoc`). If a required tool is missing, tell the user the exact install command for their platform (macOS: `brew install poppler pandoc`) and stop; do not guess at content.
|
|
61
|
+
|
|
62
|
+
### Output formats
|
|
63
|
+
|
|
64
|
+
Letters are emitted as three sibling files by default:
|
|
65
|
+
|
|
66
|
+
- `<out>/<company>-<role>-<YYYY-MM-DD>.md` (canonical source)
|
|
67
|
+
- `<out>/<company>-<role>-<YYYY-MM-DD>.docx` (via `pandoc`)
|
|
68
|
+
- `<out>/<company>-<role>-<YYYY-MM-DD>.pdf` (via `pandoc` with `--pdf-engine=weasyprint` or `wkhtmltopdf`; fall back to chromium headless if neither is present)
|
|
69
|
+
|
|
70
|
+
Default output directory: `./cover-letters/`. Override with `--out <dir>`.
|
|
71
|
+
|
|
72
|
+
Company and role slugs: lowercase, dashes, ascii only. Example:
|
|
73
|
+
`acme-corp-senior-frontend-engineer-2026-04-24.md`.
|
|
74
|
+
|
|
75
|
+
### State directory
|
|
76
|
+
|
|
77
|
+
Personas and session state live at `~/.config/cover-letter/`:
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
~/.config/cover-letter/
|
|
81
|
+
├── personas/ # one JSON per persona
|
|
82
|
+
├── active-persona # plain text, contains active persona name
|
|
83
|
+
└── last-run.json # last write inputs (for fast rewrite/audit)
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Create the directory on first write. Never touch anything outside it when
|
|
87
|
+
managing state.
|
|
88
|
+
|
|
89
|
+
### Writing principles (shared across write and rewrite)
|
|
90
|
+
|
|
91
|
+
Cover letters that read like a human wrote them share these traits. The write
|
|
92
|
+
and rewrite skills enforce them; the audit skill scores against them.
|
|
93
|
+
|
|
94
|
+
1. **Specific over general.** Name the company, the role, and at least one
|
|
95
|
+
concrete detail about either (a product they shipped, a mission line, a
|
|
96
|
+
specific responsibility from the posting). Generic letters fail.
|
|
97
|
+
2. **Evidence before claim.** Each claim about the applicant traces to a bullet
|
|
98
|
+
or line in their resume. No fabricated experience, numbers, or tools. If a
|
|
99
|
+
JD requirement is not in the resume, acknowledge the gap honestly rather
|
|
100
|
+
than inventing coverage.
|
|
101
|
+
3. **Earned enthusiasm.** Motivation is tied to something specific ("your shift
|
|
102
|
+
to offline-first editing matches a problem I hit at X"), not generic
|
|
103
|
+
superlatives ("I'm so excited about this amazing opportunity").
|
|
104
|
+
4. **Burstiness.** Vary sentence length. Mix short punchy sentences with
|
|
105
|
+
longer complex ones. AI-sounding prose has near-uniform sentence length.
|
|
106
|
+
5. **Plain verbs, concrete nouns.** Prefer "shipped", "cut", "owned",
|
|
107
|
+
"rewrote" to "leveraged", "utilized", "spearheaded". Prefer naming the
|
|
108
|
+
thing over abstracting it.
|
|
109
|
+
6. **No filler openers.** Avoid "I am writing to express my interest in...",
|
|
110
|
+
"It is with great enthusiasm that...", "Please accept this letter as...",
|
|
111
|
+
"I hope this message finds you well". Every one of these is an AI tell and
|
|
112
|
+
a wasted first sentence.
|
|
113
|
+
7. **No sentimental cliches.** A cover letter is not a Hallmark card. Avoid
|
|
114
|
+
"hit close to home", "struck a chord", "resonated with me", "spoke to me",
|
|
115
|
+
"dream come true", "right up my alley", "a perfect fit", "meant to be",
|
|
116
|
+
"the stars aligned", "at the end of the day", "wearing my heart on my
|
|
117
|
+
sleeve". These are corny; they signal either AI prose or a writer reaching
|
|
118
|
+
for warmth they have not earned with specificity. Replace with a concrete
|
|
119
|
+
reason the thing connects: which paragraph of the post, which past project
|
|
120
|
+
of yours, which shared problem.
|
|
121
|
+
8. **Human closing.** Skip "Please do not hesitate to contact me". A plain
|
|
122
|
+
sign-off works better.
|
|
123
|
+
9. **Length.** 250 to 400 words by default. Shorter is almost always better.
|
|
124
|
+
Override with `--length short|standard|long` (180/300/420 target).
|
|
125
|
+
|
|
126
|
+
### Default structure
|
|
127
|
+
|
|
128
|
+
Four compact sections, no section headings, roughly these proportions:
|
|
129
|
+
|
|
130
|
+
| Section | % of letter | Job |
|
|
131
|
+
|---------|------------|-----|
|
|
132
|
+
| Opening hook | 10-15 | Name the role + company + one specific detail that drew you in |
|
|
133
|
+
| Fit and evidence | 45-55 | One to three specific matches between resume and JD, each with a concrete number, tool, or outcome |
|
|
134
|
+
| Motivation | 15-20 | Why *this* company/team/problem, tied to something real from your background |
|
|
135
|
+
| Close | 10-15 | One line restating fit, one line offering next step, plain sign-off |
|
|
136
|
+
|
|
137
|
+
## Anti-patterns
|
|
138
|
+
|
|
139
|
+
Flag or refuse to produce any of these:
|
|
140
|
+
|
|
141
|
+
- **Fabricated experience.** If the resume does not support a claim, do not
|
|
142
|
+
write it. Surface the gap to the user and offer to either drop the claim
|
|
143
|
+
or ask them to supply supporting detail.
|
|
144
|
+
- **Keyword stuffing.** Do not cram every JD keyword into the letter. Select
|
|
145
|
+
three to five that align with the strongest resume evidence.
|
|
146
|
+
- **Tone drift.** If a persona is active, enforce it. Do not slide back to
|
|
147
|
+
generic professional voice.
|
|
148
|
+
- **Filler phrases.** See the writing principles above and the AI phrase list
|
|
149
|
+
in `cover-letter-audit`.
|
|
150
|
+
|
|
151
|
+
## Session flow
|
|
152
|
+
|
|
153
|
+
A typical end-to-end flow:
|
|
154
|
+
|
|
155
|
+
1. `/cover-letter persona create` (one-time, or skip for default professional voice)
|
|
156
|
+
2. `/cover-letter persona use <name>` (optional)
|
|
157
|
+
3. `/cover-letter write --resume <resume> --jd <jd>` produces the letter plus a self-audit score
|
|
158
|
+
4. If score below 85 or user unhappy, `/cover-letter rewrite <file>` with optional `--focus humanize|tighten|align`
|
|
159
|
+
5. `/cover-letter audit <file>` for a final independent score
|
|
160
|
+
|
|
161
|
+
Each subcommand skill details its own workflow, inputs, and outputs.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "cover-letter-write",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": 0,
|
|
6
|
+
"name": "clean-match-senior-backend",
|
|
7
|
+
"prompt": "I'm applying to the Senior Backend Engineer role at Linear. Can you write me a cover letter? My resume is at skills/cover-letter/evals/inputs/resume-jordan-martinez.md and the job description is at skills/cover-letter/evals/inputs/jd-linear-senior-backend.md. Save the output to cover-letter-workspace/iteration-1/eval-0/<run>/outputs/",
|
|
8
|
+
"files": [
|
|
9
|
+
"skills/cover-letter/evals/inputs/resume-jordan-martinez.md",
|
|
10
|
+
"skills/cover-letter/evals/inputs/jd-linear-senior-backend.md"
|
|
11
|
+
],
|
|
12
|
+
"expected_output": "A cover letter that specifically references Linear (company), the sync engine/CRDT, and at least one concrete detail from the JD. Claims should map to Jordan's real resume bullets (Stripe, Shopify). No fabricated experience. No filler openers. 250-400 words. Saved as markdown.",
|
|
13
|
+
"assertions": []
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"id": 1,
|
|
17
|
+
"name": "gap-frontend-applying-to-go-platform",
|
|
18
|
+
"prompt": "Write me a cover letter for the Senior Platform Engineer (Go) role at Ramp. My resume is at skills/cover-letter/evals/inputs/resume-priya-iyer.md and the JD is at skills/cover-letter/evals/inputs/jd-ramp-senior-go-platform.md. Save the output to cover-letter-workspace/iteration-1/eval-1/<run>/outputs/",
|
|
19
|
+
"files": [
|
|
20
|
+
"skills/cover-letter/evals/inputs/resume-priya-iyer.md",
|
|
21
|
+
"skills/cover-letter/evals/inputs/jd-ramp-senior-go-platform.md"
|
|
22
|
+
],
|
|
23
|
+
"expected_output": "A cover letter that HONESTLY addresses Priya's lack of Go production experience (her resume shows TypeScript/React with 'some Go (reading)'). It should either flag the gap to the user, or write a letter that is honest about the mismatch rather than fabricating Go experience. If the skill recommends the user reconsider applying, that is also acceptable. What must NOT happen: inventing Go production experience or claiming Priya has expertise she doesn't.",
|
|
24
|
+
"assertions": []
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"id": 2,
|
|
28
|
+
"name": "career-changer-with-gap-acknowledgement",
|
|
29
|
+
"prompt": "I need a cover letter for the Junior Full-Stack Engineer role at Pathway. Resume: skills/cover-letter/evals/inputs/resume-sam-wu.md, JD: skills/cover-letter/evals/inputs/jd-pathway-junior-fullstack.md. Save to cover-letter-workspace/iteration-1/eval-2/<run>/outputs/",
|
|
30
|
+
"files": [
|
|
31
|
+
"skills/cover-letter/evals/inputs/resume-sam-wu.md",
|
|
32
|
+
"skills/cover-letter/evals/inputs/jd-pathway-junior-fullstack.md"
|
|
33
|
+
],
|
|
34
|
+
"expected_output": "A cover letter that leverages Sam's career-change story honestly. It should cite real side projects by name (standups.fm, receiptparse, or checklate) with specific numbers (users, accuracy). It should tie the mission fit (tools for career changers) to Sam's own transition. No fabricated tech stack, no inflation of the marketing experience into false engineering claims. The letter should match the JD's tone (small startup, mission-driven).",
|
|
35
|
+
"assertions": []
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Senior Backend Engineer, Sync Infrastructure
|
|
2
|
+
|
|
3
|
+
**Linear** | San Francisco or Remote (Americas) | Full-time
|
|
4
|
+
|
|
5
|
+
At Linear, we build the project management tool that teams actually enjoy using. Our sync engine is the core of the experience: it keeps issues consistent across clients in real time, works offline, and resolves conflicts without user intervention. We're looking for a senior backend engineer to join the sync team and push this further.
|
|
6
|
+
|
|
7
|
+
## What you'll do
|
|
8
|
+
|
|
9
|
+
- Design and build primitives on our real-time sync engine (CRDT-based, Postgres-backed)
|
|
10
|
+
- Improve sync performance: sub-100ms propagation across clients is the target
|
|
11
|
+
- Work on offline-first replay and conflict resolution for edge cases we see in the wild
|
|
12
|
+
- Partner with the apps team to shape the client SDK
|
|
13
|
+
- Take ownership of production reliability; participate in an on-call rotation
|
|
14
|
+
|
|
15
|
+
## What we're looking for
|
|
16
|
+
|
|
17
|
+
**Required:**
|
|
18
|
+
|
|
19
|
+
- 5+ years of backend experience in a typed language (Go, Rust, TypeScript preferred)
|
|
20
|
+
- Strong grasp of distributed systems fundamentals: idempotency, consistency models, event sourcing
|
|
21
|
+
- Experience owning production services at scale; comfortable on-call
|
|
22
|
+
- Familiarity with Postgres at scale (read replicas, partitioning, query optimization)
|
|
23
|
+
- Experience with real-time protocols (WebSockets, SSE, gRPC streaming)
|
|
24
|
+
|
|
25
|
+
**Nice to have:**
|
|
26
|
+
|
|
27
|
+
- Prior work on sync engines, offline-first systems, or CRDTs
|
|
28
|
+
- Kafka or similar event streaming experience
|
|
29
|
+
- Experience mentoring mid-level engineers
|
|
30
|
+
|
|
31
|
+
## About the team
|
|
32
|
+
|
|
33
|
+
The sync team is five engineers. We work in 6-week cycles, write design docs for anything nontrivial, and keep our meetings short. Our founders are technical and involved in architectural decisions.
|
|
34
|
+
|
|
35
|
+
## How we work
|
|
36
|
+
|
|
37
|
+
Async-first, written over synchronous. We publish an engineering blog (`linear.app/blog`) where we talk openly about technical decisions - the post on "How Linear's sync engine works" is a good read if you want to understand what we do.
|
|
38
|
+
|
|
39
|
+
## Compensation
|
|
40
|
+
|
|
41
|
+
Base salary $210-260k depending on location and level, plus equity and full benefits. We hire globally in Americas time zones.
|
|
42
|
+
|
|
43
|
+
Apply with a cover letter at linear.app/careers.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Junior Full-Stack Engineer
|
|
2
|
+
|
|
3
|
+
**Pathway** | Remote (US) | Full-time
|
|
4
|
+
|
|
5
|
+
Pathway is a 9-person startup building tools for career changers entering tech. We're hiring our first junior engineer. You'll work directly with our two senior engineers and our founder-CTO on everything from the learning platform to the internal admin tooling.
|
|
6
|
+
|
|
7
|
+
## What you'll do
|
|
8
|
+
|
|
9
|
+
- Build features across the stack (Next.js frontend, Node.js backend, Postgres)
|
|
10
|
+
- Ship small features end-to-end; we pair senior engineers with you on larger work
|
|
11
|
+
- Learn production engineering habits: PRs, code review, tests, deployments, on-call shadow
|
|
12
|
+
- Take ownership of a specific surface area after the first 90 days
|
|
13
|
+
|
|
14
|
+
## What we're looking for
|
|
15
|
+
|
|
16
|
+
**Required:**
|
|
17
|
+
|
|
18
|
+
- Demonstrable coding ability - side projects with real users, coursework with depth, or prior junior experience
|
|
19
|
+
- Comfort with TypeScript and JavaScript
|
|
20
|
+
- Genuine interest in the mission (tools for career changers) - we hire from that audience when we can
|
|
21
|
+
- Clear written communication
|
|
22
|
+
- Willingness to work in public: write blog posts, demo at all-hands, contribute to design docs
|
|
23
|
+
|
|
24
|
+
**Nice to have:**
|
|
25
|
+
|
|
26
|
+
- Prior professional experience in any field that translates (customer empathy, data literacy, writing, teaching)
|
|
27
|
+
- Side projects that teach us something about how you think
|
|
28
|
+
- Familiarity with Next.js or React
|
|
29
|
+
|
|
30
|
+
## What we do not expect
|
|
31
|
+
|
|
32
|
+
- A CS degree
|
|
33
|
+
- A prior full-time engineering role
|
|
34
|
+
- Knowledge of our stack before day one
|
|
35
|
+
|
|
36
|
+
## About us
|
|
37
|
+
|
|
38
|
+
Small team, flat structure, founder-led. We ship to production every day. We're remote-first with quarterly in-person weeks in Denver. Our customers are people who made the jump you might be making now.
|
|
39
|
+
|
|
40
|
+
## Compensation
|
|
41
|
+
|
|
42
|
+
$95-120k base plus early-stage equity. We hire at one senior-level role in engineering; every other engineer is mid or junior.
|
|
43
|
+
|
|
44
|
+
Apply with a cover letter that tells us why this role, and one thing you've built or learned that we wouldn't guess from your resume. Send to careers@pathway.co.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Senior Platform Engineer, Go
|
|
2
|
+
|
|
3
|
+
**Ramp** | New York, NY (hybrid, 3 days onsite) | Full-time
|
|
4
|
+
|
|
5
|
+
Ramp is building the finance platform for modern businesses. We're hiring a senior platform engineer to own core services that the rest of engineering builds on: authentication, authorization, feature flags, and internal service discovery. You will make every other team faster.
|
|
6
|
+
|
|
7
|
+
## What you'll do
|
|
8
|
+
|
|
9
|
+
- Own and evolve the core Go services that power Ramp's platform
|
|
10
|
+
- Build the next generation of our authorization system (fine-grained, policy-based)
|
|
11
|
+
- Set the bar for reliability and performance on critical-path services
|
|
12
|
+
- Write design docs, review others' docs, and unblock teams across the org
|
|
13
|
+
- Participate in platform on-call
|
|
14
|
+
|
|
15
|
+
## What we're looking for
|
|
16
|
+
|
|
17
|
+
**Required:**
|
|
18
|
+
|
|
19
|
+
- 6+ years of production backend experience
|
|
20
|
+
- Expert in Go - you have shipped real Go services in production, not just written tutorials
|
|
21
|
+
- Deep experience with authorization and authentication patterns
|
|
22
|
+
- Strong written communication - we write everything down
|
|
23
|
+
- Track record of taking ownership of platform-level problems
|
|
24
|
+
|
|
25
|
+
**Nice to have:**
|
|
26
|
+
|
|
27
|
+
- Experience with OPA, Casbin, or similar policy engines
|
|
28
|
+
- Fintech or regulated industry background
|
|
29
|
+
- Experience building internal developer platforms
|
|
30
|
+
|
|
31
|
+
## About us
|
|
32
|
+
|
|
33
|
+
Ramp has grown from 20 to 1000+ employees in three years. The platform team is 12 engineers split across three pods. We ship weekly and maintain a 99.99% uptime target on the authorization path.
|
|
34
|
+
|
|
35
|
+
## Compensation
|
|
36
|
+
|
|
37
|
+
Base $220-280k plus equity. Hybrid role - we're in the New York office Tuesday, Wednesday, Thursday. Full relocation support for the right candidate.
|
|
38
|
+
|
|
39
|
+
Apply at ramp.com/careers with a cover letter explaining why platform work interests you.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Jordan Martinez
|
|
2
|
+
|
|
3
|
+
jordan.martinez@example.com | +1 415 555 0142 | San Francisco, CA
|
|
4
|
+
github.com/jmartinez | linkedin.com/in/jmartinez
|
|
5
|
+
|
|
6
|
+
## Summary
|
|
7
|
+
|
|
8
|
+
Senior backend engineer, 7 years across payments, search, and developer platforms. Strongest in Go, distributed systems, and turning production incidents into durable fixes.
|
|
9
|
+
|
|
10
|
+
## Experience
|
|
11
|
+
|
|
12
|
+
### Stripe - Senior Software Engineer (2022 - present)
|
|
13
|
+
|
|
14
|
+
- Owned the billing gateway rewrite in Go; cut p99 latency on invoice creation from 420ms to 95ms by moving pricing lookups into a Redis-backed cache with versioned invalidation
|
|
15
|
+
- Led a 4-person pod through a zero-downtime migration of the subscription renewal system; processed 18M active subscriptions without revenue impact
|
|
16
|
+
- Authored the internal on-call runbook now used by the payments org (60+ engineers); cut MTTR on gateway incidents from 42 to 11 minutes
|
|
17
|
+
- Designed and shipped the idempotency key system used by three external APIs; hit 99.997% duplicate-suppression accuracy in production
|
|
18
|
+
|
|
19
|
+
### Shopify - Software Engineer (2019 - 2022)
|
|
20
|
+
|
|
21
|
+
- Migrated the order service from a PostgreSQL-only architecture to Kafka-backed event sourcing; the service now handles 2M events/day with 99.99% uptime
|
|
22
|
+
- Built the internal search service using Elasticsearch; reduced merchant search p95 latency from 1.8s to 280ms across 1.2M catalogs
|
|
23
|
+
- Mentored three junior engineers through their first year; all three were promoted within 18 months
|
|
24
|
+
- Introduced a deterministic replay framework for debugging order state bugs; adopted by four teams
|
|
25
|
+
|
|
26
|
+
### Crunchbase - Software Engineer (2018 - 2019)
|
|
27
|
+
|
|
28
|
+
- Built the company-enrichment pipeline in Python; processed 8M company records weekly with a hand-rolled dedup layer hitting 96% F1
|
|
29
|
+
|
|
30
|
+
## Skills
|
|
31
|
+
|
|
32
|
+
- Languages: Go (expert, 5 years), Python (4 years), TypeScript (3 years), Rust (reading-level)
|
|
33
|
+
- Systems: Kafka, Postgres, Redis, Elasticsearch, gRPC, Protocol Buffers
|
|
34
|
+
- Platforms: AWS (primary), GCP (working knowledge), Docker, Kubernetes
|
|
35
|
+
- Practices: distributed tracing, idempotency, event sourcing, chaos testing
|
|
36
|
+
|
|
37
|
+
## Education
|
|
38
|
+
|
|
39
|
+
BS Computer Science, UC Berkeley, 2018
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Priya Iyer
|
|
2
|
+
|
|
3
|
+
priya.iyer@example.com | +1 646 555 0177 | New York, NY
|
|
4
|
+
github.com/priyaiyer
|
|
5
|
+
|
|
6
|
+
## Summary
|
|
7
|
+
|
|
8
|
+
Full-stack engineer, 4 years building web products. Strongest in TypeScript and React. Comfortable shipping end-to-end, from database schema to user-facing polish.
|
|
9
|
+
|
|
10
|
+
## Experience
|
|
11
|
+
|
|
12
|
+
### Notion - Software Engineer (2022 - present)
|
|
13
|
+
|
|
14
|
+
- Rebuilt the comments UI in the block editor using Slate + Zustand; reduced render time on long documents (>2000 blocks) from 340ms to 70ms
|
|
15
|
+
- Shipped the @-mention picker across the editor, calendar, and databases; now used by 4M+ DAU
|
|
16
|
+
- Wrote the client-side conflict resolution layer for inline table editing (last-writer-wins with operation log); reduced user-visible edit collisions by 82%
|
|
17
|
+
- Led front-end for the new home page; reduced Time to Interactive on the dashboard from 4.1s to 1.4s
|
|
18
|
+
|
|
19
|
+
### Datadog - Associate Software Engineer (2020 - 2022)
|
|
20
|
+
|
|
21
|
+
- Built internal tooling in TypeScript and Node.js for the monitor alerting team; dashboards now used by 30+ engineers daily
|
|
22
|
+
- Wrote the migration script that moved 900K user monitors from legacy config format to the new YAML schema; zero data loss
|
|
23
|
+
- Contributed to the React component library used across the Datadog app (12+ reusable components)
|
|
24
|
+
|
|
25
|
+
### Internship - Bloomberg, Terminal UI team (Summer 2019)
|
|
26
|
+
|
|
27
|
+
- Shipped a proof-of-concept for keyboard-first navigation in one terminal function; adopted into the main product
|
|
28
|
+
|
|
29
|
+
## Skills
|
|
30
|
+
|
|
31
|
+
- Languages: TypeScript (expert, 4 years), JavaScript, Python (working knowledge)
|
|
32
|
+
- Frontend: React, Next.js, Slate, Zustand, Tailwind, Framer Motion, Storybook
|
|
33
|
+
- Backend: Node.js, Express, Postgres, some Go (reading)
|
|
34
|
+
- Testing: Vitest, Playwright, React Testing Library
|
|
35
|
+
|
|
36
|
+
## Education
|
|
37
|
+
|
|
38
|
+
BS Computer Science, Carnegie Mellon, 2020
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Sam Wu
|
|
2
|
+
|
|
3
|
+
sam.wu@example.com | +1 312 555 0119 | Chicago, IL
|
|
4
|
+
github.com/samwu-dev | samwu.dev
|
|
5
|
+
|
|
6
|
+
## Summary
|
|
7
|
+
|
|
8
|
+
Marketing manager transitioning to software engineering. 5 years in growth marketing at B2B SaaS, 18 months of serious self-study in web development, 3 shipped side projects with real users.
|
|
9
|
+
|
|
10
|
+
## Engineering experience
|
|
11
|
+
|
|
12
|
+
### Side projects (2024 - present)
|
|
13
|
+
|
|
14
|
+
- **standups.fm** - TypeScript/Next.js app that generates standup summaries from Linear issues. 340 active weekly users, $0 marketing spend, all growth from Show HN
|
|
15
|
+
- **receiptparse** - Python/Flask tool for parsing expense receipts with Tesseract + custom regex pass; 94% field-extraction accuracy on a benchmark set of 500 receipts
|
|
16
|
+
- **checklate** - Browser extension (TypeScript) that checks if a restaurant reservation is running late; 1100 installs on Chrome Web Store
|
|
17
|
+
|
|
18
|
+
### Self-study (2023 - 2024)
|
|
19
|
+
|
|
20
|
+
- Completed The Odin Project full-stack curriculum (~900 hours of coursework and exercises)
|
|
21
|
+
- Working through Designing Data-Intensive Applications (4 chapters done, taking notes publicly on my site)
|
|
22
|
+
- Built and deployed 6 practice apps before the three above
|
|
23
|
+
|
|
24
|
+
## Marketing experience
|
|
25
|
+
|
|
26
|
+
### HubSpot - Senior Growth Marketing Manager (2021 - present)
|
|
27
|
+
|
|
28
|
+
- Owned the developer-focused content program; drove 180K monthly organic visits to the developer blog by the end of 2024 (up from 40K at start)
|
|
29
|
+
- Ran A/B tests on sign-up flow with the product team; two of my experiments shipped and moved free-to-paid conversion 2.1 percentage points
|
|
30
|
+
- Built the marketing data model in Looker with the data team; used daily by 15 marketers
|
|
31
|
+
|
|
32
|
+
### Mailchimp - Growth Marketer (2019 - 2021)
|
|
33
|
+
|
|
34
|
+
- Ran the email onboarding program; improved 30-day activation by 14% across SMB accounts
|
|
35
|
+
- Wrote SQL against the warehouse for weekly reporting (not production code, but where I learned to think in data)
|
|
36
|
+
|
|
37
|
+
## Skills
|
|
38
|
+
|
|
39
|
+
- TypeScript, JavaScript, HTML/CSS (primary)
|
|
40
|
+
- Python (secondary)
|
|
41
|
+
- Node.js, Next.js, React, Flask
|
|
42
|
+
- Postgres, SQLite
|
|
43
|
+
- Git, Vercel, basic Docker
|
|
44
|
+
- Comfortable reading documentation and debugging
|
|
45
|
+
|
|
46
|
+
## Education
|
|
47
|
+
|
|
48
|
+
BA Communications, Northwestern, 2019
|