Lots of updates
This commit is contained in:
99
.claude/commands/local-build-resume.md
Normal file
99
.claude/commands/local-build-resume.md
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
# /build-resume
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
Generate a tailored resume based on the provided job descriptoin and my existing background. Use the file with detailed in it's name as context for my experience. Optimize keywords and align experience with job requirements. Format the output for ATS (Applicat Tracking Systems) compatibility
|
||||||
|
|
||||||
|
### Profile Summary
|
||||||
|
|
||||||
|
- Seeking: Backend/Application/Security/Systems Programming roles (Jr-Mid level ONLY)
|
||||||
|
- Level: Jr-Mid developer (level 1-2) - NO Senior/Sr/Staff/Founding titles
|
||||||
|
- Requirements: Remote, no on-call, $130k+, low responsibility, no mentoring/management
|
||||||
|
- Key Skills: Rust, Python, C, GoLang, MySQL, Docker, REST APIs, Security, CI/CD
|
||||||
|
- Also open to: Other remote roles (non-dev) that pay well and are learnable short-term
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
- Either paste the entire description OR link to the job description immediatly after the command
|
||||||
|
|
||||||
|
## Workflow
|
||||||
|
|
||||||
|
### Step 1: Analyze the Job Description
|
||||||
|
- Extract the top 5-8 hard skills and soft skills required.
|
||||||
|
- Identify the core problems the company is trying to solve with this role.
|
||||||
|
- Note specific keywords, technologies, and metrics emphasized in the text.
|
||||||
|
- Verify with user if anything undesirable flags with the description before continuing
|
||||||
|
|
||||||
|
### Step 2: Create the directory structure
|
||||||
|
- Create or use the directory with the company name
|
||||||
|
- Create a subdirectory of the job title
|
||||||
|
- Inside, put a markdown file of the job description
|
||||||
|
- Put the resume with name paul-halvorsen-resume.md
|
||||||
|
- Put the coverletter with name paul-halvorsen-cover-letter.md
|
||||||
|
- Put the analysis in job-breakdown.md
|
||||||
|
- When building with make, the pdfs of the resume and cover letter will be here as well
|
||||||
|
|
||||||
|
### Step 3: Tailor the Resume Content
|
||||||
|
- **Professional Summary:** Rewrite to directly address the company's mission and the role's primary objectives using the extracted keywords.
|
||||||
|
- **Skills Section:** Reorder and prioritize skills to match the job description's hierarchy.
|
||||||
|
- **Experience Bullets:**
|
||||||
|
- Rewrite bullet points to highlight achievements that mirror the job requirements.
|
||||||
|
- Use the "Action Verb + Task + Result (with Metrics)" formula.
|
||||||
|
- Ensure specific keywords from the JD appear naturally in the context of your past work.
|
||||||
|
- **Gap Analysis:** If the user provided their current resume, identify missing skills or experiences and suggest how to frame existing experience to cover those gaps.
|
||||||
|
- **Metadata Header:**
|
||||||
|
- Always include the following: Email, Phone, Git, Blog, LinkedIn
|
||||||
|
- Include the title of each value
|
||||||
|
- Include "Citizen of the United States"
|
||||||
|
|
||||||
|
### Step 4: Formatting & Output
|
||||||
|
- Generate the resume in **Markdown** format (for easy conversion to PDF/Word).
|
||||||
|
- Ensure clean hierarchy (H1 for Name, H2 for Sections).
|
||||||
|
- Keep it to a maximum of 2 pages (simulated by content density).
|
||||||
|
- Include a "ATS Optimization Score" estimate at the top based on keyword matching.
|
||||||
|
- Chronological work experience (details of older positions can be greatly reduced to save space)
|
||||||
|
|
||||||
|
### Step 5: Cover Letter
|
||||||
|
- Briefly draft a 3-paragraph cover letter hook that connects the user's specific value proposition to the company's stated needs.
|
||||||
|
- If the position is below general experience level, note that in the cover letter and specify that the position is being looked at to provide greater field breadth
|
||||||
|
- Be up front about gaps and provide reasons that previous experience will cover those gaps
|
||||||
|
|
||||||
|
### Step 6: Build the pdfs
|
||||||
|
- Use `jb2resume-modern` theme
|
||||||
|
- Build Resume Command: `make resume-modern FILE_NAME=path/to/resume`
|
||||||
|
- Build Cover Letter Command: `make resume-modern FILE_NAME=path/to/coverletter`
|
||||||
|
|
||||||
|
## Constraints & Guidelines
|
||||||
|
- **Tone:** Professional, confident, and concise.
|
||||||
|
- **Truthfulness:** Do not invent experiences. If a skill is missing, suggest phrasing like "Familiar with..." or "Exposure to..." rather than claiming expertise.
|
||||||
|
- **Metrics:** Prioritize quantifiable results (e.g., "Increased efficiency by 20%") over vague descriptions.
|
||||||
|
- **Privacy:** Remind the user to replace placeholders like `[Phone Number]`, `[Email]`, and `[City, State]` with their actual data before sending.
|
||||||
|
- **Hard Requirements:**
|
||||||
|
- Remote only
|
||||||
|
- No on-call rotations (flag before proceeding if description mentions on-call, pager duty, 24x7, "total ownership", "you own it in production", or similar)
|
||||||
|
- $100k+
|
||||||
|
- No management responsibilities
|
||||||
|
- **Soft Requirements:**
|
||||||
|
- No mgmt/mentoring
|
||||||
|
- No mentoring responsibilities
|
||||||
|
- Jr or Mid level only (level 1-2) - no senior/sr/staff/principal/founding/lead titles
|
||||||
|
- $130k+
|
||||||
|
- **Preferences**
|
||||||
|
- Low responsibility
|
||||||
|
- backend/application/security/systems programming focus
|
||||||
|
- Willing to take mid-level to learn new problem space or tech stack
|
||||||
|
- Willing to take lower salary to learn new problem space or tech stack
|
||||||
|
- **On-call flag protocol**
|
||||||
|
- Before creating resume/cover letter materials, flag any job description language that implies on-call:
|
||||||
|
- Explicit: "on-call rotation", "pager duty", "24x7"
|
||||||
|
- Implicit: "total ownership", "you own systems in production", "production accountability", "incident response"
|
||||||
|
- Ask user whether to proceed before continuing.
|
||||||
|
|
||||||
|
|
||||||
|
## Example Interaction
|
||||||
|
**User:** `/build-resume` [Paste Job Description] OR [Paste link to Job Description]
|
||||||
|
|
||||||
|
**AI Response:**
|
||||||
|
1. **Analysis:** "I've analyzed the Senior Python Engineer role. Key focus areas are AWS Lambda, Django, and scaling microservices..."
|
||||||
|
2. **Resume Draft:** Create the resume in
|
||||||
|
3. **Cover Letter Hook:** [Brief draft]
|
||||||
|
4. **Next Steps:** "Review the 'Skills' section to ensure the AWS certifications are prominent. Would you like me to generate a specific cover letter?"
|
||||||
296
.claude/docs/PROJECT-STRUCTURE.md
Normal file
296
.claude/docs/PROJECT-STRUCTURE.md
Normal file
@@ -0,0 +1,296 @@
|
|||||||
|
# Project Structure
|
||||||
|
|
||||||
|
Complete overview of your resume project's folder and file organization.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Folder Organization
|
||||||
|
|
||||||
|
```
|
||||||
|
/home/paul/Public/resume/
|
||||||
|
│
|
||||||
|
├── 📁 .claude/ ← Claude Code project config
|
||||||
|
│ ├── skills/ ← Local project skills
|
||||||
|
│ │ ├── build-resume/ ← Skill: Generate customized resumes
|
||||||
|
│ │ │ ├── skill.md ← Skill definition & docs
|
||||||
|
│ │ │ ├── BUILD-RESUME-WORKFLOW.md ← Step-by-step workflow
|
||||||
|
│ │ │ ├── YAML-TEMPLATE.md ← Copy-paste metadata templates
|
||||||
|
│ │ │ └── README.md ← Skill overview
|
||||||
|
│ │ │
|
||||||
|
│ │ └── job-search/ ← Skill: Find & verify job positions
|
||||||
|
│ │ ├── skill.md ← Skill definition & docs
|
||||||
|
│ │ ├── SEARCH-STRATEGY.md ← 3-tier search system
|
||||||
|
│ │ ├── CRITERIA-CHECKLIST.md ← Position evaluation & scoring
|
||||||
|
│ │ ├── JOB-BOARDS-TO-SEARCH.md ← 12+ job board references
|
||||||
|
│ │ └── README.md ← Skill overview
|
||||||
|
│ │
|
||||||
|
│ ├── settings.local.json ← Project permissions
|
||||||
|
│ └── commands/ ← Custom commands (if any)
|
||||||
|
│
|
||||||
|
├── 📁 notes/ ← Documentation & optimization guides
|
||||||
|
│ ├── README.md ← Overview of notes folder
|
||||||
|
│ ├── LINKEDIN-OPTIMIZATION.md ← LinkedIn profile optimization audit
|
||||||
|
│ └── [other optimization docs]
|
||||||
|
│
|
||||||
|
├── 📁 search/ ← Search results (not committed ❌)
|
||||||
|
│ └── [discovered positions, temporary files]
|
||||||
|
│
|
||||||
|
├── 📁 applications/ ← Job applications (not committed ❌)
|
||||||
|
│ ├── zapier/
|
||||||
|
│ │ └── backend-engineer/
|
||||||
|
│ │ ├── paul-halvorsen-resume.md
|
||||||
|
│ │ ├── paul-halvorsen-resume.pdf
|
||||||
|
│ │ ├── paul-halvorsen-cover-letter.md
|
||||||
|
│ │ ├── paul-halvorsen-cover-letter.pdf
|
||||||
|
│ │ └── job-breakdown.md
|
||||||
|
│ ├── stripe/
|
||||||
|
│ ├── [23 more companies]
|
||||||
|
│ └── ...
|
||||||
|
│
|
||||||
|
├── 📁 templates/ ← LaTeX resume templates
|
||||||
|
│ ├── jb2resume.latex ← Classic template
|
||||||
|
│ ├── jb2resume-modern.latex ← Modern template (recommended)
|
||||||
|
│ ├── awesome-cv.latex ← Bold modern template
|
||||||
|
│ ├── cover-letter.latex ← Cover letter template
|
||||||
|
│ └── ...
|
||||||
|
│
|
||||||
|
├── 📁 files/ ← Variant resumes/cover letters
|
||||||
|
│ ├── paul-halvorsen-files-backend-engineer.md
|
||||||
|
│ ├── paul-halvorsen-files-backend-engineer.pdf
|
||||||
|
│ └── ...
|
||||||
|
│
|
||||||
|
├── 📄 paul-halvorsen-resume-detailed.md ← ⭐ SOURCE OF TRUTH
|
||||||
|
│ └── Complete background, metrics, all roles, projects, education
|
||||||
|
│
|
||||||
|
├── 📄 paul-halvorsen-resume.md ← Default concise resume
|
||||||
|
├── 📄 paul-halvorsen-resume.pdf
|
||||||
|
├── 📄 job_search.html ← 35+ verified positions dashboard
|
||||||
|
├── 📄 index.html ← Project index (if any)
|
||||||
|
│
|
||||||
|
├── 📄 .gitignore ← Ignores: applications/, search/
|
||||||
|
├── 📄 Makefile ← Build commands (make resume, etc)
|
||||||
|
├── 📄 Dockerfile ← Container for resume building
|
||||||
|
├── 📄 CLAUDE.md ← Project instructions for Claude
|
||||||
|
├── 📄 PROJECT-STRUCTURE.md ← This file
|
||||||
|
│
|
||||||
|
└── 📄 [other git-tracked files]
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## File Categories
|
||||||
|
|
||||||
|
### Core Documents (Committed ✅)
|
||||||
|
|
||||||
|
**Resume Source:**
|
||||||
|
- `paul-halvorsen-resume-detailed.md` — **SOURCE OF TRUTH** for all metrics and facts
|
||||||
|
- All roles, responsibilities, metrics
|
||||||
|
- All projects and education
|
||||||
|
- Used to generate all customized resumes
|
||||||
|
|
||||||
|
- `paul-halvorsen-resume.md` — Default concise version
|
||||||
|
- Templates in `templates/` — LaTeX formats for PDF generation
|
||||||
|
|
||||||
|
**Documentation:**
|
||||||
|
- `PROJECT-STRUCTURE.md` — This file (folder overview)
|
||||||
|
- `CLAUDE.md` — Project instructions and rules for Claude Code
|
||||||
|
- `Makefile` — Build and deployment commands
|
||||||
|
|
||||||
|
**Notes & Guides:**
|
||||||
|
- `notes/` folder — Optimization guides and documentation
|
||||||
|
- `LINKEDIN-OPTIMIZATION.md` — LinkedIn profile audit and strategy
|
||||||
|
- [Other reference materials as needed]
|
||||||
|
|
||||||
|
**Dashboards:**
|
||||||
|
- `job_search.html` — Dashboard of 35+ verified positions (or more as you find them)
|
||||||
|
- `index.html` — Main project page (optional)
|
||||||
|
|
||||||
|
### Local (Not Committed ❌)
|
||||||
|
|
||||||
|
**`.gitignore` contents:**
|
||||||
|
- `applications/` — All submitted job applications
|
||||||
|
- Each company has a folder: `zapier/backend-engineer/`, etc.
|
||||||
|
- Contains: resume, cover letter, job breakdown, PDFs
|
||||||
|
- NOT committed (local work only)
|
||||||
|
|
||||||
|
- `search/` — Job search results and discovered positions
|
||||||
|
- Temporary files, tracking documents
|
||||||
|
- NOT committed (local work only)
|
||||||
|
|
||||||
|
### Skills (In `.claude/skills/`)
|
||||||
|
|
||||||
|
**`build-resume/` Skill:**
|
||||||
|
- `skill.md` — Skill definition and documentation
|
||||||
|
- `BUILD-RESUME-WORKFLOW.md` — Workflow steps and checklists
|
||||||
|
- `YAML-TEMPLATE.md` — Copy-paste metadata templates
|
||||||
|
- `README.md` — Quick start guide
|
||||||
|
|
||||||
|
**`job-search/` Skill:**
|
||||||
|
- `skill.md` — Skill definition and documentation
|
||||||
|
- `SEARCH-STRATEGY.md` — 3-tier search system (daily/weekly/monthly)
|
||||||
|
- `CRITERIA-CHECKLIST.md` — Position evaluation template
|
||||||
|
- `JOB-BOARDS-TO-SEARCH.md` — 12+ job board reference list
|
||||||
|
- `README.md` — Quick start guide
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Workflows
|
||||||
|
|
||||||
|
### Building a Resume
|
||||||
|
|
||||||
|
```
|
||||||
|
1. Find position (using /job-search skill)
|
||||||
|
2. Verify on company careers page
|
||||||
|
3. /build-resume [job description]
|
||||||
|
→ Creates: applications/company/position/
|
||||||
|
→ Generates: resume.md, cover-letter.md, job-breakdown.md
|
||||||
|
4. make resume-modern FILE_NAME=applications/company/position/paul-halvorsen-resume
|
||||||
|
→ Generates: resume.pdf, cover-letter.pdf
|
||||||
|
5. Apply to company
|
||||||
|
6. Log in applications_tracker (memory system)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Searching for Jobs
|
||||||
|
|
||||||
|
```
|
||||||
|
1. /job-search find-positions
|
||||||
|
→ Searches job boards from JOB-BOARDS-TO-SEARCH.md
|
||||||
|
2. Evaluate using CRITERIA-CHECKLIST.md (1-10 fit score)
|
||||||
|
3. Verify on company careers page
|
||||||
|
4. /job-search track-found [company] [role] [URL] [fit]
|
||||||
|
→ Saves to search/
|
||||||
|
→ Updates job_search.html
|
||||||
|
5. If good fit → /build-resume to apply
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Key Files by Purpose
|
||||||
|
|
||||||
|
### If you need to...
|
||||||
|
|
||||||
|
**Build a customized resume:**
|
||||||
|
- Read: `.claude/skills/build-resume/BUILD-RESUME-WORKFLOW.md`
|
||||||
|
- Use: `/build-resume [job description]`
|
||||||
|
- Templates: `.claude/skills/build-resume/YAML-TEMPLATE.md`
|
||||||
|
|
||||||
|
**Find job positions:**
|
||||||
|
- Read: `.claude/skills/job-search/SEARCH-STRATEGY.md`
|
||||||
|
- Use: `/job-search find-positions`
|
||||||
|
- Boards: `.claude/skills/job-search/JOB-BOARDS-TO-SEARCH.md`
|
||||||
|
|
||||||
|
**Evaluate a position:**
|
||||||
|
- Read: `.claude/skills/job-search/CRITERIA-CHECKLIST.md`
|
||||||
|
- Score: 1-10 fit assessment
|
||||||
|
- Track: `/job-search track-found [details]`
|
||||||
|
|
||||||
|
**Optimize LinkedIn:**
|
||||||
|
- Read: `notes/LINKEDIN-OPTIMIZATION.md`
|
||||||
|
- Review: Full audit with recommendations
|
||||||
|
- Action: Follow suggested improvements
|
||||||
|
|
||||||
|
**Understand project rules:**
|
||||||
|
- Read: `CLAUDE.md` (no-fabrication rule, resume guidelines)
|
||||||
|
- Read: `PROJECT-STRUCTURE.md` (this file)
|
||||||
|
|
||||||
|
**Build resume PDFs:**
|
||||||
|
- Command: `make resume-modern FILE_NAME=applications/company/position/paul-halvorsen-resume`
|
||||||
|
- See: `Makefile` for all build options
|
||||||
|
- Requires: Docker/Podman installed
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Memory System
|
||||||
|
|
||||||
|
Located at: `/home/paul/.claude/projects/-home-paul-Public-resume/memory/`
|
||||||
|
|
||||||
|
**Key memory files:**
|
||||||
|
- `applications_tracker.md` — Track all submitted applications
|
||||||
|
- `user_preferences.md` — Your job search criteria and preferences
|
||||||
|
- `job_search_tracker.md` — Platforms, strategies, fit scores
|
||||||
|
- `feedback_no_fabrication.md` — The no-fabrication rule (critical!)
|
||||||
|
|
||||||
|
These persist across conversations and track your application workflow.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Build System
|
||||||
|
|
||||||
|
**Makefile commands:**
|
||||||
|
```bash
|
||||||
|
# Build with modern template (recommended)
|
||||||
|
make resume-modern FILE_NAME=applications/company/position/paul-halvorsen-resume
|
||||||
|
|
||||||
|
# Build with classic template
|
||||||
|
make resume FILE_NAME=applications/company/position/paul-halvorsen-resume
|
||||||
|
|
||||||
|
# Build with awesome-cv template
|
||||||
|
make resume-awesome FILE_NAME=applications/company/position/paul-halvorsen-resume
|
||||||
|
|
||||||
|
# View all options
|
||||||
|
make help
|
||||||
|
```
|
||||||
|
|
||||||
|
**Source:** `paul-halvorsen-resume-detailed.md` is the source of truth. All customized resumes draw facts from here.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Git Tracking
|
||||||
|
|
||||||
|
**Committed (in version control):**
|
||||||
|
- ✅ All `.md` files (guides, documentation, skill docs)
|
||||||
|
- ✅ `CLAUDE.md` (project rules)
|
||||||
|
- ✅ `Makefile`, `Dockerfile` (build system)
|
||||||
|
- ✅ Templates and configurations
|
||||||
|
- ✅ `notes/` folder (documentation)
|
||||||
|
|
||||||
|
**Not committed (in `.gitignore`):**
|
||||||
|
- ❌ `applications/` — Submitted applications (local only)
|
||||||
|
- ❌ `search/` — Search results (local only)
|
||||||
|
- ❌ `.podman-build` — Build cache artifacts
|
||||||
|
|
||||||
|
This keeps your repository clean while preserving all your documentation and guides.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Organization Principles
|
||||||
|
|
||||||
|
1. **Skill documentation lives in `.claude/skills/`**
|
||||||
|
- Self-contained with all needed files
|
||||||
|
- Invoked with `/skill-name` commands
|
||||||
|
|
||||||
|
2. **Optimization guides live in `notes/`**
|
||||||
|
- LinkedIn optimization, strategy docs, etc.
|
||||||
|
- Committed to version control
|
||||||
|
- Reference materials for ongoing improvement
|
||||||
|
|
||||||
|
3. **Job-specific work lives in `applications/`**
|
||||||
|
- One folder per company/position
|
||||||
|
- NOT committed (local work)
|
||||||
|
- Generated by `/build-resume` skill
|
||||||
|
|
||||||
|
4. **Search results live in `search/`**
|
||||||
|
- Discovered positions and searches
|
||||||
|
- NOT committed (ephemeral)
|
||||||
|
- Generated by `/job-search` skill
|
||||||
|
|
||||||
|
5. **Core resume in project root**
|
||||||
|
- `paul-halvorsen-resume-detailed.md` — Source of truth
|
||||||
|
- Never fabricate facts; always reference this
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Extending This Structure
|
||||||
|
|
||||||
|
When adding new documentation:
|
||||||
|
|
||||||
|
- **Skill documentation?** → Add to `.claude/skills/[skill-name]/`
|
||||||
|
- **Optimization guide?** → Add to `notes/`
|
||||||
|
- **Search output?** → Saved in `search/`
|
||||||
|
- **Job application?** → Saved in `applications/[company]/[position]/`
|
||||||
|
|
||||||
|
Update this file if you make structural changes.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Last Updated:** March 18, 2026
|
||||||
269
.claude/skills/build-resume/BUILD-RESUME-WORKFLOW.md
Normal file
269
.claude/skills/build-resume/BUILD-RESUME-WORKFLOW.md
Normal file
@@ -0,0 +1,269 @@
|
|||||||
|
# Build Resume Workflow
|
||||||
|
|
||||||
|
Quick reference guide for building customized resumes and cover letters for job applications.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Directory Structure
|
||||||
|
|
||||||
|
All job applications follow this standardized structure:
|
||||||
|
|
||||||
|
```
|
||||||
|
applications/
|
||||||
|
└── company-name/
|
||||||
|
└── position-slug/
|
||||||
|
├── paul-halvorsen-resume.md
|
||||||
|
├── paul-halvorsen-resume.pdf
|
||||||
|
├── paul-halvorsen-cover-letter.md
|
||||||
|
├── paul-halvorsen-cover-letter.pdf
|
||||||
|
└── job-breakdown.md (analysis & strategy)
|
||||||
|
```
|
||||||
|
|
||||||
|
**Examples:**
|
||||||
|
- `applications/zapier/backend-engineer/`
|
||||||
|
- `applications/stripe/backend-engineer/`
|
||||||
|
- `applications/files/senior-backend-engineer/`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Quick Start (2 minutes)
|
||||||
|
|
||||||
|
### Invoke the Skill
|
||||||
|
|
||||||
|
```
|
||||||
|
/build-resume [paste job description or provide details]
|
||||||
|
```
|
||||||
|
|
||||||
|
The `/build-resume` skill will:
|
||||||
|
1. Check if you've already applied (prevents duplicates)
|
||||||
|
2. Create the directory structure
|
||||||
|
3. Analyze the job requirements
|
||||||
|
4. Generate customized resume and cover letter
|
||||||
|
5. Create `job-breakdown.md` with strategy notes
|
||||||
|
6. Build PDFs automatically
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Manual Build Process
|
||||||
|
|
||||||
|
If creating files manually instead of using `/build-resume`:
|
||||||
|
|
||||||
|
### Step 1: Create Directory
|
||||||
|
```bash
|
||||||
|
mkdir -p applications/company/position
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 2: Create Resume Markdown
|
||||||
|
File: `applications/company/position/paul-halvorsen-resume.md`
|
||||||
|
|
||||||
|
Copy the YAML template from `YAML-TEMPLATE.md` and add customized content.
|
||||||
|
|
||||||
|
### Step 3: Create Cover Letter Markdown
|
||||||
|
File: `applications/company/position/paul-halvorsen-cover-letter.md`
|
||||||
|
|
||||||
|
Use the same YAML template header.
|
||||||
|
|
||||||
|
### Step 4: Build PDFs
|
||||||
|
|
||||||
|
**Modern template (recommended for tech companies):**
|
||||||
|
```bash
|
||||||
|
make resume-modern FILE_NAME=applications/company/position/paul-halvorsen-resume
|
||||||
|
make resume-modern FILE_NAME=applications/company/position/paul-halvorsen-cover-letter
|
||||||
|
```
|
||||||
|
|
||||||
|
**Classic template (for traditional industries):**
|
||||||
|
```bash
|
||||||
|
make resume FILE_NAME=applications/company/position/paul-halvorsen-resume
|
||||||
|
make resume FILE_NAME=applications/company/position/paul-halvorsen-cover-letter
|
||||||
|
```
|
||||||
|
|
||||||
|
**Awesome-CV template (for startups/bold designs):**
|
||||||
|
```bash
|
||||||
|
make resume-awesome FILE_NAME=applications/company/position/paul-halvorsen-resume
|
||||||
|
make resume-awesome FILE_NAME=applications/company/position/paul-halvorsen-cover-letter
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Customization Checklist (5 minutes)
|
||||||
|
|
||||||
|
Before submitting your resume:
|
||||||
|
|
||||||
|
### ✅ Resume Content
|
||||||
|
- [ ] Summary tailored to role requirements
|
||||||
|
- [ ] Work experience reordered (most relevant first)
|
||||||
|
- [ ] Skills section includes role-specific technologies
|
||||||
|
- [ ] Metrics and achievements highlighted
|
||||||
|
- [ ] Length: 1 page (or 1-2 if detailed background needed)
|
||||||
|
- [ ] **CRITICAL: No fabricated numbers** — all facts from `paul-halvorsen-resume-detailed.md`
|
||||||
|
|
||||||
|
### ✅ YAML Metadata
|
||||||
|
- [ ] Contact info formatted correctly (quoted strings)
|
||||||
|
- [ ] Keywords match job requirements
|
||||||
|
- [ ] Email, phone, GitHub, LinkedIn all present
|
||||||
|
- [ ] Blog link included (optional but recommended)
|
||||||
|
|
||||||
|
### ✅ Cover Letter
|
||||||
|
- [ ] Addresses company mission/vision
|
||||||
|
- [ ] Acknowledges any experience gaps honestly
|
||||||
|
- [ ] Emphasizes transferable skills
|
||||||
|
- [ ] Tone is professional and authentic
|
||||||
|
- [ ] Length: 4-5 paragraphs (fits on one page)
|
||||||
|
- [ ] Specific to the company (not generic)
|
||||||
|
|
||||||
|
### ✅ PDF Quality
|
||||||
|
- [ ] Built with appropriate template for industry
|
||||||
|
- [ ] Layout clean and readable
|
||||||
|
- [ ] No broken formatting or overlapping text
|
||||||
|
- [ ] Opens without errors in PDF viewer
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## No-Fabrication Rule (CRITICAL ⚠️)
|
||||||
|
|
||||||
|
**BLOCKING REQUIREMENT:** All numbers and metrics must come from `paul-halvorsen-resume-detailed.md`.
|
||||||
|
|
||||||
|
### ✅ Allowed
|
||||||
|
- Reordering existing information
|
||||||
|
- Reframing for clarity
|
||||||
|
- Removing less relevant details
|
||||||
|
- Using exact metrics from detailed resume
|
||||||
|
|
||||||
|
### ❌ Not Allowed
|
||||||
|
- Inventing metrics ("40+ engineers")
|
||||||
|
- Making up achievements not documented
|
||||||
|
- Exaggerating scales or customer counts
|
||||||
|
- Creating statistics not in detailed resume
|
||||||
|
|
||||||
|
### Pre-Write Checklist
|
||||||
|
For every bullet point with a number:
|
||||||
|
- [ ] Is this in `paul-halvorsen-resume-detailed.md`?
|
||||||
|
- [ ] If NO: remove it or rephrase without the number
|
||||||
|
- [ ] If YES: use the exact number/metric
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Post-Build Checklist (After Creating Resume)
|
||||||
|
|
||||||
|
### ✅ File Organization
|
||||||
|
- [ ] Files created in correct directory structure
|
||||||
|
- [ ] PDFs generated successfully
|
||||||
|
- [ ] Resume and cover letter both present
|
||||||
|
- [ ] Job breakdown created if using `/build-resume`
|
||||||
|
|
||||||
|
### ✅ Application Tracking
|
||||||
|
- [ ] Application logged in memory (if using `/build-resume`)
|
||||||
|
- [ ] Company/position combination recorded to prevent duplicates
|
||||||
|
- [ ] Application link saved for follow-up
|
||||||
|
|
||||||
|
### ✅ Before Submitting
|
||||||
|
- [ ] Verify job posting still active
|
||||||
|
- [ ] Check application deadline
|
||||||
|
- [ ] Find company career page
|
||||||
|
- [ ] Prepare LinkedIn connection message for hiring manager
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Template Selection Guide
|
||||||
|
|
||||||
|
| Template | Best For | Industry Examples |
|
||||||
|
|----------|----------|------------------|
|
||||||
|
| **jb2resume-modern** | Tech companies, startups | Stripe, GitLab, Zapier |
|
||||||
|
| **jb2resume** | Traditional industries | Banks, gov, established corps |
|
||||||
|
| **awesome-cv** | Growth-stage startups | Series A-C companies, design-forward |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Useful Commands
|
||||||
|
|
||||||
|
### View Help
|
||||||
|
```bash
|
||||||
|
make help
|
||||||
|
```
|
||||||
|
|
||||||
|
### Clean Build Artifacts
|
||||||
|
```bash
|
||||||
|
make clean # Remove LaTeX logs
|
||||||
|
make cleanpaper # Remove specific PDF
|
||||||
|
make cleanall # Remove everything
|
||||||
|
```
|
||||||
|
|
||||||
|
### Build from Detailed Resume
|
||||||
|
All customized resumes draw facts from:
|
||||||
|
```
|
||||||
|
/home/paul/Public/resume/paul-halvorsen-resume-detailed.md
|
||||||
|
```
|
||||||
|
|
||||||
|
This is your source of truth for metrics, roles, and achievements.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Finding Job Postings
|
||||||
|
|
||||||
|
See: `JOB-BOARDS-TO-SEARCH.md` (in parent resume directory)
|
||||||
|
|
||||||
|
Quick reference:
|
||||||
|
- **Daily:** WeWorkRemotely, RemoteOK, Built In
|
||||||
|
- **Weekly:** LinkedIn, Indeed, Cord.co, specialized boards
|
||||||
|
- **Monthly:** Secondary boards, target company careers pages
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Application Follow-Up
|
||||||
|
|
||||||
|
After building and submitting:
|
||||||
|
|
||||||
|
1. **LinkedIn connection:** Connect with hiring manager, mention your application
|
||||||
|
2. **Calendar reminder:** Set 1-week follow-up for non-responses
|
||||||
|
3. **Track responses:** Update job search dashboard with status
|
||||||
|
4. **Interview prep:** Review job-breakdown.md talking points
|
||||||
|
5. **Salary expectations:** Reference notes in job-breakdown.md
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Common Customizations
|
||||||
|
|
||||||
|
### Reordering Work Experience
|
||||||
|
Move most relevant role to top. Example: For Zapier backend engineer role, list Abnormal AI before Binary Defense because K8s/API experience is more directly relevant.
|
||||||
|
|
||||||
|
### Emphasizing Specific Skills
|
||||||
|
If role requires Kubernetes: mention "10 auto-scaling K8s clusters" in summary and relevant bullet. If role emphasizes API design: lead with REST API experience.
|
||||||
|
|
||||||
|
### Addressing Gaps
|
||||||
|
Use cover letter to honestly address missing technologies:
|
||||||
|
- "I haven't worked with [tech], but I'm fluent in [similar tech] and have quickly mastered new frameworks."
|
||||||
|
- Example: Django gap → "Python expert, REST APIs are my core strength, DRF is learnable"
|
||||||
|
|
||||||
|
### Metrics Worth Highlighting
|
||||||
|
From your background:
|
||||||
|
- 10 K8s clusters (Abnormal AI)
|
||||||
|
- 90% CPU reduction (Binary Defense)
|
||||||
|
- 80% network optimization (Binary Defense)
|
||||||
|
- Thousands of Fortune 500 endpoints (Binary Defense)
|
||||||
|
- Thousands of records at scale (NSA)
|
||||||
|
- 15+ years API development (career)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## File Locations Reference
|
||||||
|
|
||||||
|
- **Skill directory:** `/home/paul/Public/resume/.claude/skills/build-resume/`
|
||||||
|
- **Resume source:** `/home/paul/Public/resume/paul-halvorsen-resume-detailed.md`
|
||||||
|
- **Job boards:** `/home/paul/Public/resume/JOB-BOARDS-TO-SEARCH.md`
|
||||||
|
- **LinkedIn guide:** `/home/paul/Public/resume/LINKEDIN-OPTIMIZATION.md`
|
||||||
|
- **Job search dashboard:** `/home/paul/Public/resume/job_search.html`
|
||||||
|
- **Application tracker:** `/home/paul/.claude/projects/-home-paul-Public-resume/memory/applications_tracker.md`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Quick Links
|
||||||
|
|
||||||
|
- **Your GitHub:** https://github.com/malwhile
|
||||||
|
- **Your Blog:** https://flow.halvo.me
|
||||||
|
- **Detailed Resume:** `/home/paul/Public/resume/paul-halvorsen-resume-detailed.md`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Last Updated
|
||||||
|
|
||||||
|
March 18, 2026
|
||||||
122
.claude/skills/build-resume/README.md
Normal file
122
.claude/skills/build-resume/README.md
Normal file
@@ -0,0 +1,122 @@
|
|||||||
|
# build-resume Skill
|
||||||
|
|
||||||
|
Local project skill for generating tailored resumes and cover letters for job applications.
|
||||||
|
|
||||||
|
## Files in This Directory
|
||||||
|
|
||||||
|
- **skill.md** — Skill definition, documentation, and guidelines
|
||||||
|
- **BUILD-RESUME-WORKFLOW.md** — Step-by-step workflow and checklists
|
||||||
|
- **YAML-TEMPLATE.md** — Copy-paste YAML metadata template with examples
|
||||||
|
- **README.md** — This file
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
```
|
||||||
|
/build-resume [paste job description or provide details]
|
||||||
|
```
|
||||||
|
|
||||||
|
## How to Use
|
||||||
|
|
||||||
|
### Automatic (Recommended)
|
||||||
|
```
|
||||||
|
/build-resume [job description]
|
||||||
|
```
|
||||||
|
|
||||||
|
The skill will:
|
||||||
|
1. Check for duplicate applications (prevents re-applying to same role)
|
||||||
|
2. Create directory structure: `company/position/`
|
||||||
|
3. Generate customized resume and cover letter
|
||||||
|
4. Create job analysis with fit assessment and strategy
|
||||||
|
5. Build PDFs automatically
|
||||||
|
|
||||||
|
### Manual
|
||||||
|
1. Create `company/position/` directory
|
||||||
|
2. Copy YAML template from `YAML-TEMPLATE.md`
|
||||||
|
3. Customize resume and cover letter markdown files
|
||||||
|
4. Build PDFs with make commands
|
||||||
|
|
||||||
|
See `BUILD-RESUME-WORKFLOW.md` for detailed steps and checklists.
|
||||||
|
|
||||||
|
## Key Files and Locations
|
||||||
|
|
||||||
|
```
|
||||||
|
/home/paul/Public/resume/
|
||||||
|
├── paul-halvorsen-resume-detailed.md ← Source of truth for all facts
|
||||||
|
├── JOB-BOARDS-TO-SEARCH.md ← Where to find job postings
|
||||||
|
├── LINKEDIN-OPTIMIZATION.md ← Profile optimization guide
|
||||||
|
├── job_search.html ← Job dashboard (35+ positions)
|
||||||
|
├── .gitignore ← Includes applications/
|
||||||
|
├── .claude/
|
||||||
|
│ └── skills/
|
||||||
|
│ └── build-resume/ ← This skill
|
||||||
|
│ ├── skill.md
|
||||||
|
│ ├── BUILD-RESUME-WORKFLOW.md
|
||||||
|
│ ├── YAML-TEMPLATE.md
|
||||||
|
│ └── README.md (you are here)
|
||||||
|
└── applications/ ← All job applications (not committed)
|
||||||
|
└── [company]/
|
||||||
|
└── [position]/
|
||||||
|
├── paul-halvorsen-resume.md
|
||||||
|
├── paul-halvorsen-resume.pdf
|
||||||
|
├── paul-halvorsen-cover-letter.md
|
||||||
|
├── paul-halvorsen-cover-letter.pdf
|
||||||
|
└── job-breakdown.md
|
||||||
|
```
|
||||||
|
|
||||||
|
## Important Rules
|
||||||
|
|
||||||
|
### ⚠️ No Fabrication
|
||||||
|
**All numbers and metrics must come from `paul-halvorsen-resume-detailed.md`**
|
||||||
|
|
||||||
|
Examples of violations:
|
||||||
|
- ❌ "$9 trillion in assets" (not in detailed resume)
|
||||||
|
- ❌ "40+ engineers" (not in detailed resume)
|
||||||
|
- ✓ "10 auto-scaling K8s clusters" (IS in detailed resume)
|
||||||
|
- ✓ "90% CPU reduction" (IS in detailed resume)
|
||||||
|
|
||||||
|
### YAML Formatting
|
||||||
|
- All contact info must be quoted: `"Email: paul.halvorsen@pm.me"`
|
||||||
|
- Keywords are comma-separated
|
||||||
|
- Use exact contact info (no variations)
|
||||||
|
|
||||||
|
### Cover Letter
|
||||||
|
- Be honest about gaps ("I haven't worked with X, but...")
|
||||||
|
- Address company mission
|
||||||
|
- Focus on transferable skills
|
||||||
|
- Professional and authentic tone
|
||||||
|
|
||||||
|
## Template Selection
|
||||||
|
|
||||||
|
| Template | Best For |
|
||||||
|
|----------|----------|
|
||||||
|
| `jb2resume-modern` | Tech companies, startups |
|
||||||
|
| `jb2resume` | Traditional industries |
|
||||||
|
| `awesome-cv` | Growth-stage startups |
|
||||||
|
|
||||||
|
## Workflow
|
||||||
|
|
||||||
|
1. Find job posting (see `JOB-BOARDS-TO-SEARCH.md`)
|
||||||
|
2. Use `/build-resume [description]`
|
||||||
|
3. Review job-breakdown.md for fit and strategy
|
||||||
|
4. Customize resume/cover letter if needed
|
||||||
|
5. Verify position on company careers page
|
||||||
|
6. Apply directly on company website
|
||||||
|
7. Connect with hiring manager on LinkedIn
|
||||||
|
|
||||||
|
## Making Changes
|
||||||
|
|
||||||
|
To update skill documentation:
|
||||||
|
1. Edit files in this directory: `/home/paul/Public/resume/.claude/skills/build-resume/`
|
||||||
|
2. Changes are local to this project
|
||||||
|
3. Git will track changes to `.claude/skills/`
|
||||||
|
|
||||||
|
## Need Help?
|
||||||
|
|
||||||
|
- **Workflow steps?** See `BUILD-RESUME-WORKFLOW.md`
|
||||||
|
- **YAML format?** See `YAML-TEMPLATE.md`
|
||||||
|
- **Full skill docs?** See `skill.md`
|
||||||
|
- **Detailed background?** See `/home/paul/Public/resume/paul-halvorsen-resume-detailed.md`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Last Updated:** March 18, 2026
|
||||||
185
.claude/skills/build-resume/YAML-TEMPLATE.md
Normal file
185
.claude/skills/build-resume/YAML-TEMPLATE.md
Normal file
@@ -0,0 +1,185 @@
|
|||||||
|
# YAML Metadata Template
|
||||||
|
|
||||||
|
Copy this template into the top of every customized resume and cover letter markdown file.
|
||||||
|
|
||||||
|
## Standard Template
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
name: Paul Halvorsen
|
||||||
|
keywords: backend engineer, api design, python, [ADD ROLE-SPECIFIC KEYWORDS]
|
||||||
|
left-column:
|
||||||
|
- "Email: paul.halvorsen@pm.me"
|
||||||
|
- "Phone: +1-410-236-4665"
|
||||||
|
right-column:
|
||||||
|
- "GitHub: github.com/malwhile"
|
||||||
|
- "LinkedIn: linkedin.com/in/paul-halvorsen"
|
||||||
|
- "Blog: flow.halvo.me"
|
||||||
|
fontsize: 10pt
|
||||||
|
fontenc: T1
|
||||||
|
urlcolor: blue
|
||||||
|
linkcolor: magenta
|
||||||
|
numbersections: false
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
## Important Notes
|
||||||
|
|
||||||
|
### Quoted Strings (CRITICAL)
|
||||||
|
- **All contact info must be quoted** to avoid YAML parsing issues
|
||||||
|
- Format: `"Label: value"`
|
||||||
|
- ✓ Correct: `- "Email: paul.halvorsen@pm.me"`
|
||||||
|
- ❌ Wrong: `- Email: paul.halvorsen@pm.me`
|
||||||
|
|
||||||
|
### Keywords
|
||||||
|
- Add role-specific keywords to improve ATS matching
|
||||||
|
- Examples:
|
||||||
|
- Backend role: `backend engineer, python, api design, rest api, distributed systems, kubernetes`
|
||||||
|
- Full-stack role: `full-stack engineer, python, react, javascript, frontend, backend`
|
||||||
|
- Security role: `security engineer, python, cryptography, authentication, oauth`
|
||||||
|
- Aim for 8-12 keywords
|
||||||
|
|
||||||
|
### Contact Info Guidelines
|
||||||
|
- Email: Always include (paul.halvorsen@pm.me)
|
||||||
|
- Phone: Always include (+1-410-236-4665)
|
||||||
|
- GitHub: Always include (github.com/malwhile)
|
||||||
|
- LinkedIn: Always include (linkedin.com/in/paul-halvorsen)
|
||||||
|
- Blog: Optional but recommended (flow.halvo.me)
|
||||||
|
- DO NOT include: "Citizen of the United States", generic titles like "Remote"
|
||||||
|
|
||||||
|
### Font & Color Options
|
||||||
|
These are sensible defaults. Rarely need to change:
|
||||||
|
- `fontsize: 10pt` — standard resume font size
|
||||||
|
- `fontenc: T1` — font encoding for special characters
|
||||||
|
- `urlcolor: blue` — hyperlink color
|
||||||
|
- `linkcolor: magenta` — cross-reference link color
|
||||||
|
- `numbersections: false` — don't number resume sections
|
||||||
|
|
||||||
|
### Optional: Add Name Color
|
||||||
|
```yaml
|
||||||
|
name-color: DarkSlateGray
|
||||||
|
```
|
||||||
|
SVG color names work: `DarkSlateGray`, `Tomato`, `DodgerBlue`, etc.
|
||||||
|
|
||||||
|
### Optional: Add Section Header Color
|
||||||
|
```yaml
|
||||||
|
section-color: Tomato
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Example Customizations
|
||||||
|
|
||||||
|
### Backend Engineer Focus
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
name: Paul Halvorsen
|
||||||
|
keywords: backend engineer, python, api design, rest apis, oauth, authentication, distributed systems, kubernetes, docker, aws
|
||||||
|
left-column:
|
||||||
|
- "Email: paul.halvorsen@pm.me"
|
||||||
|
- "Phone: +1-410-236-4665"
|
||||||
|
right-column:
|
||||||
|
- "GitHub: github.com/malwhile"
|
||||||
|
- "LinkedIn: linkedin.com/in/paul-halvorsen"
|
||||||
|
- "Blog: flow.halvo.me"
|
||||||
|
fontsize: 10pt
|
||||||
|
fontenc: T1
|
||||||
|
urlcolor: blue
|
||||||
|
linkcolor: magenta
|
||||||
|
numbersections: false
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
### Security Engineer Focus
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
name: Paul Halvorsen
|
||||||
|
keywords: security engineer, cryptography, authentication, oauth, python, golang, c, penetration testing, secure systems
|
||||||
|
left-column:
|
||||||
|
- "Email: paul.halvorsen@pm.me"
|
||||||
|
- "Phone: +1-410-236-4665"
|
||||||
|
right-column:
|
||||||
|
- "GitHub: github.com/malwhile"
|
||||||
|
- "LinkedIn: linkedin.com/in/paul-halvorsen"
|
||||||
|
- "Blog: flow.halvo.me"
|
||||||
|
fontsize: 10pt
|
||||||
|
fontenc: T1
|
||||||
|
urlcolor: blue
|
||||||
|
linkcolor: magenta
|
||||||
|
numbersections: false
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
### Full-Stack Engineer Focus
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
name: Paul Halvorsen
|
||||||
|
keywords: full-stack engineer, python, react, typescript, javascript, rest apis, distributed systems, kubernetes
|
||||||
|
left-column:
|
||||||
|
- "Email: paul.halvorsen@pm.me"
|
||||||
|
- "Phone: +1-410-236-4665"
|
||||||
|
right-column:
|
||||||
|
- "GitHub: github.com/malwhile"
|
||||||
|
- "LinkedIn: linkedin.com/in/paul-halvorsen"
|
||||||
|
- "Blog: flow.halvo.me"
|
||||||
|
fontsize: 10pt
|
||||||
|
fontenc: T1
|
||||||
|
urlcolor: blue
|
||||||
|
linkcolor: magenta
|
||||||
|
numbersections: false
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Validation Checklist
|
||||||
|
|
||||||
|
Before using the template:
|
||||||
|
- [ ] All contact info is quoted with "Label: value" format
|
||||||
|
- [ ] Keywords are comma-separated
|
||||||
|
- [ ] Email is paul.halvorsen@pm.me
|
||||||
|
- [ ] Phone is +1-410-236-4665
|
||||||
|
- [ ] GitHub is github.com/malwhile
|
||||||
|
- [ ] LinkedIn is linkedin.com/in/paul-halvorsen (no https://)
|
||||||
|
- [ ] Blog is flow.halvo.me (if including)
|
||||||
|
- [ ] No "Citizen of the United States" in right-column
|
||||||
|
- [ ] No generic "Remote" keyword unless job-specific
|
||||||
|
- [ ] fontsize, fontenc, urlcolor, linkcolor match defaults
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Date Formatting
|
||||||
|
|
||||||
|
Use the `\resumedate{}` macro for smaller dates under section headers:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
### Software Engineer | Abnormal AI
|
||||||
|
\resumedate{**January 2026 – Present**}
|
||||||
|
```
|
||||||
|
|
||||||
|
This makes dates visually distinct from section headers while keeping them readable.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## After YAML Metadata
|
||||||
|
|
||||||
|
Start your resume or cover letter content immediately after the closing `---`:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
name: Paul Halvorsen
|
||||||
|
...
|
||||||
|
---
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
[Your summary content here]
|
||||||
|
|
||||||
|
## Technical Skills
|
||||||
|
|
||||||
|
[Skills content here]
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Last Updated: March 18, 2026
|
||||||
204
.claude/skills/build-resume/skill.md
Normal file
204
.claude/skills/build-resume/skill.md
Normal file
@@ -0,0 +1,204 @@
|
|||||||
|
---
|
||||||
|
name: build-resume
|
||||||
|
description: Generate tailored resumes and cover letters for specific job applications using Paul's detailed resume as context
|
||||||
|
type: skill
|
||||||
|
arguments:
|
||||||
|
- name: job_description
|
||||||
|
description: Job posting text or details (paste job description, link, or brief details)
|
||||||
|
required: true
|
||||||
|
output:
|
||||||
|
- resume_md: Customized resume in markdown with YAML metadata
|
||||||
|
- resume_pdf: Compiled PDF resume
|
||||||
|
- cover_letter_md: Customized cover letter in markdown
|
||||||
|
- cover_letter_pdf: Compiled PDF cover letter
|
||||||
|
- job_breakdown_md: Analysis, fit assessment, and strategy notes
|
||||||
|
---
|
||||||
|
|
||||||
|
# build-resume Skill
|
||||||
|
|
||||||
|
Generate tailored resumes and cover letters for specific job applications.
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
```
|
||||||
|
/build-resume [paste job description or provide details]
|
||||||
|
```
|
||||||
|
|
||||||
|
## Output Structure
|
||||||
|
|
||||||
|
Creates organized directory structure:
|
||||||
|
```
|
||||||
|
applications/
|
||||||
|
└── company-name/
|
||||||
|
└── job-title/
|
||||||
|
├── paul-halvorsen-resume.md
|
||||||
|
├── paul-halvorsen-resume.pdf
|
||||||
|
├── paul-halvorsen-cover-letter.md
|
||||||
|
├── paul-halvorsen-cover-letter.pdf
|
||||||
|
└── job-breakdown.md (analysis)
|
||||||
|
```
|
||||||
|
|
||||||
|
Examples: `applications/zapier/backend-engineer/`, `applications/stripe/senior-backend-engineer/`
|
||||||
|
|
||||||
|
## YAML Metadata Format
|
||||||
|
|
||||||
|
**IMPORTANT:** Use quoted strings for contact info to avoid YAML parsing issues.
|
||||||
|
|
||||||
|
### Template
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
name: Paul Halvorsen
|
||||||
|
keywords: key1, key2, key3
|
||||||
|
left-column:
|
||||||
|
- "Email: paul.halvorsen@pm.me"
|
||||||
|
- "Phone: +1-410-236-4665"
|
||||||
|
right-column:
|
||||||
|
- "GitHub: github.com/malwhile"
|
||||||
|
- "LinkedIn: linkedin.com/in/paul-halvorsen"
|
||||||
|
- "Blog: flow.halvo.me"
|
||||||
|
fontsize: 10pt
|
||||||
|
fontenc: T1
|
||||||
|
urlcolor: blue
|
||||||
|
linkcolor: magenta
|
||||||
|
numbersections: false
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
### Contact Info Guidelines
|
||||||
|
- Always include email and phone
|
||||||
|
- Include GitHub link
|
||||||
|
- Include LinkedIn (preferred over "Remote" keyword)
|
||||||
|
- Blog link is optional
|
||||||
|
- Do NOT include "Citizen of the United States" in right-column for job resumes
|
||||||
|
- Use format: `"Label: value"` (quoted entire string)
|
||||||
|
|
||||||
|
## Dates Formatting
|
||||||
|
|
||||||
|
Use the `\resumedate{}` macro to make dates smaller than headers:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
### Job Title | Company
|
||||||
|
\resumedate{**January 2026 – Present**}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Building PDFs
|
||||||
|
|
||||||
|
### Classic Template
|
||||||
|
```bash
|
||||||
|
make resume FILE_NAME=company/job-title/paul-halvorsen-resume
|
||||||
|
make resume FILE_NAME=company/job-title/paul-halvorsen-cover-letter
|
||||||
|
```
|
||||||
|
|
||||||
|
### Modern Template (Recommended)
|
||||||
|
```bash
|
||||||
|
make resume-modern FILE_NAME=company/job-title/paul-halvorsen-resume
|
||||||
|
make resume-modern FILE_NAME=company/job-title/paul-halvorsen-cover-letter
|
||||||
|
```
|
||||||
|
|
||||||
|
### Awesome-CV Template
|
||||||
|
```bash
|
||||||
|
make resume-awesome FILE_NAME=company/job-title/paul-halvorsen-resume
|
||||||
|
make resume-awesome FILE_NAME=company/job-title/paul-halvorsen-cover-letter
|
||||||
|
```
|
||||||
|
|
||||||
|
## Resume Customization Strategy
|
||||||
|
|
||||||
|
1. **Lead with relevant technical skills** from job description
|
||||||
|
2. **Reorder work experience** (most relevant first)
|
||||||
|
3. **Highlight metrics** from roles that match JD requirements
|
||||||
|
4. **Frame gaps honestly** in cover letter (e.g., "I haven't worked with X, but...")
|
||||||
|
5. **De-emphasize Sr/Staff titles** when applying to mid-level roles
|
||||||
|
|
||||||
|
## CRITICAL: No Fabrication Rule
|
||||||
|
|
||||||
|
**BLOCKING REQUIREMENT:** All numbers and metrics must come from `paul-halvorsen-resume-detailed.md`.
|
||||||
|
|
||||||
|
### Pre-Write Checklist
|
||||||
|
For every bullet point with a number:
|
||||||
|
- [ ] Is this in `paul-halvorsen-resume-detailed.md`?
|
||||||
|
- [ ] If NO: remove it or rephrase without the number
|
||||||
|
- [ ] If YES: use the exact number/metric
|
||||||
|
|
||||||
|
### Allowed
|
||||||
|
- Reordering existing information
|
||||||
|
- Reframing for clarity
|
||||||
|
- Removing less relevant details
|
||||||
|
- Using exact metrics from detailed resume
|
||||||
|
|
||||||
|
### Not Allowed
|
||||||
|
- Inventing metrics
|
||||||
|
- Making up achievements
|
||||||
|
- Exaggerating scales or customer counts
|
||||||
|
- Creating statistics not documented
|
||||||
|
|
||||||
|
### Examples
|
||||||
|
- ✓ "Performance improvements: reduced CPU usage ~90%" (IS in detailed resume)
|
||||||
|
- ✓ "10 auto-scaling clusters" (IS in detailed resume)
|
||||||
|
- ✓ "Customers: thousands of Fortune 500 endpoints" (IS in detailed resume)
|
||||||
|
- ❌ "$9 trillion in assets" (NOT in detailed resume)
|
||||||
|
- ❌ "40+ engineers" (NOT in detailed resume)
|
||||||
|
|
||||||
|
## Cover Letter Approach
|
||||||
|
|
||||||
|
- **Be upfront about gaps** (e.g., "I haven't worked professionally with C#")
|
||||||
|
- **Emphasize transferable skills** and learning ability
|
||||||
|
- **Address company mission** (e.g., travel industry, fintech, etc.)
|
||||||
|
- **Frame intentional career moves** (e.g., moving away from on-call work to sustainable roles)
|
||||||
|
- Keep tone professional, confident, and honest—not defensive
|
||||||
|
|
||||||
|
## Key Clarifications from Paul's Background
|
||||||
|
|
||||||
|
### CompTIA Security+ Certification
|
||||||
|
- **Status:** Expired 04/04/2024 (no longer active)
|
||||||
|
- **Note:** Do NOT list as active in resumes
|
||||||
|
|
||||||
|
### NSA Experience - Database Scale
|
||||||
|
- **Database:** Thousands of records (not hundreds of thousands)
|
||||||
|
- Use in resume: "thousands of records" or similar
|
||||||
|
|
||||||
|
### Language Learning Capability
|
||||||
|
- Paul has mastered 5+ languages (Rust, Python, C, GoLang, Java)
|
||||||
|
- Use when applying to roles with unfamiliar tech stacks
|
||||||
|
- Frame as evidence of quick learning ability
|
||||||
|
|
||||||
|
### Tech Stack Preferences
|
||||||
|
- **Primary:** Backend, systems programming, security
|
||||||
|
- **Secondary:** Full-stack if learning opportunity (new languages/frameworks)
|
||||||
|
- **Avoid:** Emphasis on junior mentoring, heavy management
|
||||||
|
|
||||||
|
## ATS Optimization
|
||||||
|
|
||||||
|
- Aim for 75-85% keyword match with job description
|
||||||
|
- Include role-specific technologies in skills section
|
||||||
|
- Use exact terminology from JD where possible
|
||||||
|
- Avoid creative formatting that breaks ATS parsing
|
||||||
|
|
||||||
|
## Application Workflow
|
||||||
|
|
||||||
|
1. Use `/build-resume [job description]` to generate customized documents
|
||||||
|
2. Review job-breakdown.md for fit assessment and strategy
|
||||||
|
3. Update applications_tracker.md to log the application
|
||||||
|
4. Build PDFs using appropriate template
|
||||||
|
5. Verify position on company careers page
|
||||||
|
6. Submit through company site (not job board)
|
||||||
|
7. Connect with hiring manager on LinkedIn
|
||||||
|
|
||||||
|
## File Locations
|
||||||
|
|
||||||
|
- **Resume source:** `/home/paul/Public/resume/paul-halvorsen-resume-detailed.md`
|
||||||
|
- **This skill:** `/home/paul/Public/resume/.claude/skills/build-resume/`
|
||||||
|
- **Workflow guide:** `/home/paul/Public/resume/.claude/skills/build-resume/BUILD-RESUME-WORKFLOW.md`
|
||||||
|
- **Job boards:** `/home/paul/Public/resume/JOB-BOARDS-TO-SEARCH.md`
|
||||||
|
- **LinkedIn guide:** `/home/paul/Public/resume/LINKEDIN-OPTIMIZATION.md`
|
||||||
|
- **Job search dashboard:** `/home/paul/Public/resume/job_search.html`
|
||||||
|
- **Application tracker:** `/home/paul/.claude/projects/-home-paul-Public-resume/memory/applications_tracker.md`
|
||||||
|
|
||||||
|
## Notes for Implementation
|
||||||
|
|
||||||
|
- Update `paul-halvorsen-resume-detailed.md` with any role clarifications (scale, tech, responsibilities)
|
||||||
|
- Detailed resume serves as source of truth for customized versions
|
||||||
|
- LinkedIn URL: linkedin.com/in/paul-halvorsen (without https://)
|
||||||
|
- GitHub URL: github.com/malwhile
|
||||||
|
- Email: paul.halvorsen@pm.me
|
||||||
|
- Phone: +1-410-236-4665
|
||||||
286
.claude/skills/job-search/CRITERIA-CHECKLIST.md
Normal file
286
.claude/skills/job-search/CRITERIA-CHECKLIST.md
Normal file
@@ -0,0 +1,286 @@
|
|||||||
|
# Job Criteria Checklist
|
||||||
|
|
||||||
|
Quick reference for evaluating whether a position matches your requirements.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Hard Requirements (Must-Have)
|
||||||
|
|
||||||
|
These are non-negotiable. Skip if ANY are missing or violated.
|
||||||
|
|
||||||
|
### ✅ Remote Status
|
||||||
|
- [ ] 100% remote OR
|
||||||
|
- [ ] Work from home (no office required) OR
|
||||||
|
- [ ] Async-first with occasional travel
|
||||||
|
|
||||||
|
**Skip if:**
|
||||||
|
- ❌ "Flexible remote" but office-based
|
||||||
|
- ❌ "Remote but HQ in [city]"
|
||||||
|
- ❌ "Hybrid" with required office days
|
||||||
|
- ❌ Relocation required
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### ✅ On-Call Status
|
||||||
|
- [ ] No on-call mentioned
|
||||||
|
- [ ] No pager duty mentioned
|
||||||
|
- [ ] No 24/7 support mentioned
|
||||||
|
- [ ] No "production ownership" in incident response context
|
||||||
|
|
||||||
|
**Skip immediately if:**
|
||||||
|
- ❌ "On-call rotation"
|
||||||
|
- ❌ "Pager duty"
|
||||||
|
- ❌ "24/7 support"
|
||||||
|
- ❌ "Incident response team"
|
||||||
|
- ❌ "Weekend on-call"
|
||||||
|
- ❌ "Production ownership requires on-call"
|
||||||
|
|
||||||
|
This is a hard requirement. One mention = reject.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### ✅ Salary
|
||||||
|
- [ ] Base salary $130K+ (minimum)
|
||||||
|
- [ ] Salary is transparent or negotiable
|
||||||
|
- [ ] If equity offered: solid base salary (not equity-heavy)
|
||||||
|
|
||||||
|
**Check:**
|
||||||
|
- [ ] Posted salary is $130K+, OR
|
||||||
|
- [ ] Company pays that range for the role, OR
|
||||||
|
- [ ] Willing to negotiate to $130K+
|
||||||
|
|
||||||
|
**Skip if:**
|
||||||
|
- ❌ Salary $120K or below
|
||||||
|
- ❌ "Competitive" with no range
|
||||||
|
- ❌ Mostly equity, low base
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### ✅ Role Type
|
||||||
|
- [ ] Backend Engineer OR
|
||||||
|
- [ ] Platform Engineer OR
|
||||||
|
- [ ] Infrastructure Engineer OR
|
||||||
|
- [ ] Site Reliability Engineer (if not heavy on-call)
|
||||||
|
|
||||||
|
**Skip if:**
|
||||||
|
- ❌ Full-stack (unless clear backend focus)
|
||||||
|
- ❌ Junior Developer
|
||||||
|
- ❌ DevOps only (different focus)
|
||||||
|
- ❌ Systems Administrator
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### ✅ Technology Stack
|
||||||
|
- [ ] At least one: Python, Go, Rust, Java, C
|
||||||
|
- [ ] REST APIs mentioned or implied
|
||||||
|
- [ ] Modern infrastructure tools (Docker, Kubernetes, AWS, etc.)
|
||||||
|
|
||||||
|
**Preferred stack:**
|
||||||
|
- ✓✓ Python + REST APIs + Kubernetes
|
||||||
|
- ✓✓ Go + REST APIs + Kubernetes
|
||||||
|
- ✓✓ Rust + REST APIs + distributed systems
|
||||||
|
- ✓ Java + REST APIs (learnable from Python)
|
||||||
|
- ✓ C + systems programming (learnable)
|
||||||
|
- ✓ JavaScript/TypeScript (if full-stack opportunity)
|
||||||
|
|
||||||
|
**Skip if:**
|
||||||
|
- ❌ Only C++/C# unless very compelling
|
||||||
|
- ❌ Only legacy languages (COBOL, Fortran, etc.)
|
||||||
|
- ❌ Frontend-heavy with minimal backend
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Strong Positives (+1 point each)
|
||||||
|
|
||||||
|
### Company & Culture
|
||||||
|
- [ ] Explicitly mentions "async-first" or "async culture"
|
||||||
|
- [ ] Remote-first company (not traditional company with remote option)
|
||||||
|
- [ ] Company founded specifically as remote
|
||||||
|
- [ ] Multiple office locations or fully distributed team
|
||||||
|
- [ ] Clear communication about work-life balance
|
||||||
|
- [ ] "No crunch" or "sustainable pace" mentioned
|
||||||
|
|
||||||
|
### Role Quality
|
||||||
|
- [ ] Clear role description and responsibilities
|
||||||
|
- [ ] Growing engineering team (hiring actively)
|
||||||
|
- [ ] Opportunity to learn new tech mentioned
|
||||||
|
- [ ] Mentorship or growth path mentioned
|
||||||
|
- [ ] Architecture/design work emphasized
|
||||||
|
- [ ] API design or system design mentioned
|
||||||
|
|
||||||
|
### Compensation & Benefits
|
||||||
|
- [ ] Salary at top of range ($180K+)
|
||||||
|
- [ ] Equity offered (if profitable/stable company)
|
||||||
|
- [ ] Generous vacation/PTO (unlimited or 25+ days)
|
||||||
|
- [ ] Professional development budget mentioned
|
||||||
|
- [ ] Flexible hours mentioned
|
||||||
|
- [ ] Parental leave or family benefits
|
||||||
|
|
||||||
|
### Mission & Impact
|
||||||
|
- [ ] Mission statement aligns with your values
|
||||||
|
- [ ] Company solves real problems (not just hype)
|
||||||
|
- [ ] Profitable or well-funded (stability)
|
||||||
|
- [ ] Growing rapidly (opportunity for impact)
|
||||||
|
- [ ] Social impact or meaningful work mentioned
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Red Flags (-1 point each)
|
||||||
|
|
||||||
|
### Culture Red Flags
|
||||||
|
- [ ] "Startup hustle" or "high energy" mentioned
|
||||||
|
- [ ] "Move fast and break things" philosophy
|
||||||
|
- [ ] "Startup mentality" emphasized
|
||||||
|
- [ ] "On-call is learning opportunity" framing
|
||||||
|
- [ ] Heavy emphasis on long hours
|
||||||
|
- [ ] "Passionate" mentioned 5+ times
|
||||||
|
- [ ] "Rocket ship", "unicorn", "rapid growth" without context
|
||||||
|
|
||||||
|
### Role Red Flags
|
||||||
|
- [ ] Vague role description
|
||||||
|
- [ ] Too many responsibilities (5+ distinct areas)
|
||||||
|
- [ ] Heavy on meetings or "collaboration"
|
||||||
|
- [ ] Management/mentoring heavily emphasized
|
||||||
|
- [ ] "Wear many hats" or jack-of-all-trades
|
||||||
|
- [ ] Recent team departures (from research)
|
||||||
|
- [ ] High turnover rate (5+ people left in 1 year)
|
||||||
|
|
||||||
|
### Compensation Red Flags
|
||||||
|
- [ ] Mostly equity, low base salary
|
||||||
|
- [ ] "Equity is the real comp" messaging
|
||||||
|
- [ ] Salary negotiable only "for right candidate"
|
||||||
|
- [ ] Significantly below market ($100K for your experience)
|
||||||
|
- [ ] No mentioning of benefits
|
||||||
|
- [ ] Unlimited PTO (often means less vacation)
|
||||||
|
|
||||||
|
### Company Red Flags
|
||||||
|
- [ ] Negative Glassdoor reviews (3.5 stars or below)
|
||||||
|
- [ ] Comments about work-life balance issues
|
||||||
|
- [ ] Recent major departures or layoffs
|
||||||
|
- [ ] Funding running low or burn rate high
|
||||||
|
- [ ] Legal issues or regulatory problems
|
||||||
|
- [ ] Poor remote culture reviews
|
||||||
|
|
||||||
|
### Remote Red Flags
|
||||||
|
- [ ] "Remote but in [time zone]" requirement
|
||||||
|
- [ ] Occasional "required" office days
|
||||||
|
- [ ] "Mostly remote" with unstated expectations
|
||||||
|
- [ ] Timezone restrictions
|
||||||
|
- [ ] Limited async communication
|
||||||
|
- [ ] Heavy emphasis on meetings/sync time
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Fit Score Calculation
|
||||||
|
|
||||||
|
Use this to score positions 1-10:
|
||||||
|
|
||||||
|
### Start at 5 points (baseline)
|
||||||
|
|
||||||
|
### Add points for:
|
||||||
|
- [ ] +1: Preferred tech stack (Python, Go, Rust)
|
||||||
|
- [ ] +1: Explicitly remote-first / async culture
|
||||||
|
- [ ] +1: Salary at top of range ($180K+)
|
||||||
|
- [ ] +1: Mission alignment (meaningful work)
|
||||||
|
- [ ] +1: Strong company fundamentals (profitable, stable)
|
||||||
|
- [ ] +1: Team stability (low turnover)
|
||||||
|
- [ ] +1: Growth opportunity (learning or advancement)
|
||||||
|
- [ ] +1: Excellent benefits (25+ PTO, parental leave, dev budget)
|
||||||
|
- [ ] +1: API/system design work mentioned
|
||||||
|
- [ ] +1: Architecture/infrastructure focus
|
||||||
|
|
||||||
|
### Subtract points for:
|
||||||
|
- [ ] -1: Secondary tech stack (Java, JavaScript)
|
||||||
|
- [ ] -1: Traditional company with remote option (not remote-first)
|
||||||
|
- [ ] -1: Salary below $150K
|
||||||
|
- [ ] -1: Mission not aligned
|
||||||
|
- [ ] -1: Early-stage startup (high risk)
|
||||||
|
- [ ] -1: Team appears to be high-churn
|
||||||
|
- [ ] -1: Limited growth opportunity
|
||||||
|
- [ ] -1: "On-call" mentioned (ALSO SKIP THIS, hard requirement)
|
||||||
|
- [ ] -1: Heavy management expectations
|
||||||
|
- [ ] -1: Vague role description
|
||||||
|
|
||||||
|
### Final Score
|
||||||
|
- **9-10:** Perfect match — Apply immediately
|
||||||
|
- **8:** Excellent fit — Apply enthusiastically
|
||||||
|
- **7:** Good fit — Apply with customized materials
|
||||||
|
- **6:** Okay fit — Apply if meeting quota
|
||||||
|
- **5:** Neutral — Consider if other criteria stand out
|
||||||
|
- **Below 5:** Skip — Not a good use of time
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Quick Evaluation (2 minutes)
|
||||||
|
|
||||||
|
Use this if you want to quickly evaluate a position:
|
||||||
|
|
||||||
|
```
|
||||||
|
1. Remote? YES / NO → If NO, skip
|
||||||
|
2. On-call? YES / NO → If YES, skip
|
||||||
|
3. Salary $130K+? YES / NO → If NO, skip
|
||||||
|
4. Backend role? YES / NO → If NO, skip
|
||||||
|
5. Has Python/Go/Rust? YES / NO → If NO, maybe skip
|
||||||
|
6. Red flags? YES / NO → If YES, skip
|
||||||
|
|
||||||
|
If all ✓ (except #5):
|
||||||
|
→ Verify on company site
|
||||||
|
→ Add to dashboard
|
||||||
|
→ Build resume
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Position Evaluation Template
|
||||||
|
|
||||||
|
When you find a promising position:
|
||||||
|
|
||||||
|
**Basic Info:**
|
||||||
|
- Company: _____________
|
||||||
|
- Role: _____________
|
||||||
|
- Posted: _____________
|
||||||
|
- Salary: _____________
|
||||||
|
- Link: _____________
|
||||||
|
|
||||||
|
**Must-Have Check:**
|
||||||
|
- [ ] Remote: YES / NO
|
||||||
|
- [ ] On-call: None / Minimal / Mentioned / Mentioned heavily
|
||||||
|
- [ ] Salary: $_____ (meets $130K+? YES/NO)
|
||||||
|
- [ ] Backend role: YES / NO
|
||||||
|
|
||||||
|
**Tech Stack:**
|
||||||
|
- [ ] Languages: _____________
|
||||||
|
- [ ] Frameworks: _____________
|
||||||
|
- [ ] Infrastructure: _____________
|
||||||
|
- [ ] Fit: ✓ Preferred / ✓ Acceptable / ✗ Not ideal
|
||||||
|
|
||||||
|
**Culture:**
|
||||||
|
- [ ] Red flags found: YES / NO
|
||||||
|
- [ ] If YES, list: _____________
|
||||||
|
- [ ] Strong positives: YES / NO
|
||||||
|
- [ ] If YES, list: _____________
|
||||||
|
|
||||||
|
**Fit Score:** 1-10 ___
|
||||||
|
- [ ] Apply immediately (9-10)
|
||||||
|
- [ ] Apply with care (7-8)
|
||||||
|
- [ ] Apply if quota allows (6)
|
||||||
|
- [ ] Skip (5 or below)
|
||||||
|
|
||||||
|
**Decision:** APPLY / SKIP
|
||||||
|
**Reason:** _____________
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## During Application
|
||||||
|
|
||||||
|
After you decide to apply:
|
||||||
|
|
||||||
|
1. **Use /build-resume** to generate customized materials
|
||||||
|
2. **Double-check on-call** in full job description (final check)
|
||||||
|
3. **Verify on company site** before submitting
|
||||||
|
4. **Log in tracker** with date, company, role, fit score
|
||||||
|
5. **Set follow-up reminder** for 1 week after
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Last Updated:** March 18, 2026
|
||||||
191
.claude/skills/job-search/JOB-BOARDS-TO-SEARCH.md
Normal file
191
.claude/skills/job-search/JOB-BOARDS-TO-SEARCH.md
Normal file
@@ -0,0 +1,191 @@
|
|||||||
|
# Job Board Search Sources
|
||||||
|
|
||||||
|
**Purpose:** Comprehensive list of job boards to search when looking for remote backend engineer positions.
|
||||||
|
|
||||||
|
**Last Updated:** March 18, 2026
|
||||||
|
|
||||||
|
**Strategy:** Search these boards in order. When finding a position, verify it exists on the company's official careers page before applying directly there.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## PRIMARY JOB BOARDS (Check Daily/Weekly)
|
||||||
|
|
||||||
|
### General Tech Job Boards
|
||||||
|
1. **Company Direct Careers Pages** ⭐ THE GOLDMINE
|
||||||
|
- Best for: Roles that never hit job boards
|
||||||
|
- How to: Search "[Company Name] careers" or company-name.com/jobs
|
||||||
|
- Examples: stripe.com/jobs, gitlab.com/careers, zapier.com/jobs
|
||||||
|
|
||||||
|
2. **Indeed**
|
||||||
|
- URL: https://indeed.com
|
||||||
|
- Best for: Aggregates across the web, catches hidden roles
|
||||||
|
- Filter: Remote, backend engineer, Python/Go
|
||||||
|
|
||||||
|
3. **LinkedIn**
|
||||||
|
- URL: https://linkedin.com/jobs
|
||||||
|
- Best for: World's largest professional network, direct networking
|
||||||
|
- Strategy: See job here, verify on company site, apply directly
|
||||||
|
|
||||||
|
4. **Built In**
|
||||||
|
- URL: https://builtin.com/jobs/remote/dev-engineering/
|
||||||
|
- Best for: Startup and high-growth companies
|
||||||
|
- Filter: Remote, backend engineer, Python/Go/Rust
|
||||||
|
|
||||||
|
### Remote-Specific Job Boards
|
||||||
|
5. **WeWorkRemotely**
|
||||||
|
- URL: https://weworkremotely.com
|
||||||
|
- Best for: Curated, trusted by top remote companies
|
||||||
|
- Focus: Engineering, product, design
|
||||||
|
|
||||||
|
6. **RemoteOK**
|
||||||
|
- URL: https://remoteok.com
|
||||||
|
- Best for: Smart filters, salary and time-zone info upfront
|
||||||
|
- Filter: Backend, Python, Golang, remote
|
||||||
|
|
||||||
|
7. **DailyRemote**
|
||||||
|
- URL: https://dailyremote.com
|
||||||
|
- Best for: Fresh listings daily
|
||||||
|
- Focus: Design, dev, customer support
|
||||||
|
|
||||||
|
### Other Primary Boards
|
||||||
|
8. **Cord.co**
|
||||||
|
- URL: https://cord.co
|
||||||
|
- Best for: Companies apply to YOU (passive matching)
|
||||||
|
- Focus: Developers, designers, product managers
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## SECONDARY JOB BOARDS (Check Weekly/Monthly)
|
||||||
|
|
||||||
|
9. **JobServe**
|
||||||
|
- URL: https://jobserve.com
|
||||||
|
- Best for: IT, finance, engineering
|
||||||
|
- Note: Contract roles with less competition
|
||||||
|
|
||||||
|
10. **JustRemote**
|
||||||
|
- URL: https://justremote.co
|
||||||
|
- Best for: Time-zone friendly, "anywhere" roles
|
||||||
|
|
||||||
|
11. **Totaljobs**
|
||||||
|
- URL: https://totaljobs.com
|
||||||
|
- Best for: Mid-level professionals, advanced filters
|
||||||
|
- Reach: Huge UK presence
|
||||||
|
|
||||||
|
12. **Hiring Cafe**
|
||||||
|
- URL: https://hiring.cafe
|
||||||
|
- Best for: Community feel, curated handpicked roles
|
||||||
|
- Vibe: Less corporate, more community-focused
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## SPECIALIZED BOARDS BY LANGUAGE/TECHNOLOGY
|
||||||
|
|
||||||
|
### Python
|
||||||
|
- **RemotePython.com** - https://remotepython.com
|
||||||
|
- **Python.org Jobs** - https://python.org/jobs
|
||||||
|
|
||||||
|
### Go/Golang
|
||||||
|
- **Golang.cafe** - https://golang.cafe
|
||||||
|
- **GolangProjects** - https://www.golangprojects.com/golang-remote-jobs.html
|
||||||
|
|
||||||
|
### Rust
|
||||||
|
- **RustJobs.dev** - https://rustjobs.dev
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## TARGET COMPANIES (Apply Directly to Careers Pages)
|
||||||
|
|
||||||
|
### High Priority (Apply Weekly)
|
||||||
|
- **Stripe** - https://stripe.com/jobs
|
||||||
|
- **GitLab** - https://gitlab.com/careers
|
||||||
|
- **Automattic** - https://automattic.com/jobs
|
||||||
|
- **Zapier** - https://zapier.com/jobs
|
||||||
|
|
||||||
|
### Medium Priority (Apply Monthly)
|
||||||
|
- **Cloudflare** - https://cloudflare.com/careers
|
||||||
|
- **Vercel** - https://vercel.com/careers
|
||||||
|
- **Shopify** - https://shopify.com/careers/search
|
||||||
|
- **Twilio** - https://twilio.com/careers
|
||||||
|
|
||||||
|
### Growth Companies (Apply As Needed)
|
||||||
|
- **Segment** - https://segment.com/careers
|
||||||
|
- **Datadog** - https://www.datadoghq.com/careers/
|
||||||
|
- **Figma** - https://figma.com/careers
|
||||||
|
- **Notion** - https://notion.so/careers
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## SEARCH CRITERIA (When Searching)
|
||||||
|
|
||||||
|
✅ **Must Have:**
|
||||||
|
- Remote (100% remote or explicitly remote-eligible)
|
||||||
|
- Salary: $120K or higher
|
||||||
|
- Backend engineer, platform engineer, or infrastructure engineer roles
|
||||||
|
- Technologies: Python, Go, Rust, Kubernetes, REST APIs
|
||||||
|
|
||||||
|
❌ **Must Avoid:**
|
||||||
|
- On-call rotations
|
||||||
|
- Unnecessary meetings culture
|
||||||
|
- Hype over substance
|
||||||
|
- Positions requiring relocation
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## HOW TO USE THIS LIST
|
||||||
|
|
||||||
|
### Daily Search (5 minutes):
|
||||||
|
- [ ] WeWorkRemotely
|
||||||
|
- [ ] RemoteOK
|
||||||
|
- [ ] Built In
|
||||||
|
|
||||||
|
### Weekly Search (15 minutes):
|
||||||
|
- [ ] DailyRemote
|
||||||
|
- [ ] Indeed (with filters)
|
||||||
|
- [ ] LinkedIn (with filters)
|
||||||
|
- [ ] Cord.co (check if any match your profile)
|
||||||
|
- [ ] Golang.cafe (if interested in Go roles)
|
||||||
|
|
||||||
|
### Monthly Search (20 minutes):
|
||||||
|
- [ ] Secondary boards (JobServe, JustRemote, Totaljobs, Hiring Cafe)
|
||||||
|
- [ ] Specialized boards (RemotePython.com, RustJobs.dev)
|
||||||
|
- [ ] Target companies' careers pages (all 4 high priority + 4 medium priority)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## WHEN YOU FIND A POSITION
|
||||||
|
|
||||||
|
1. **See it on job board** (e.g., RemoteOK, WeWorkRemotely, etc.)
|
||||||
|
2. **Go to company website** (e.g., "stripe.com/jobs" or search "[Company Name] careers")
|
||||||
|
3. **Find the exact same role on company site** (verify it's real)
|
||||||
|
4. **Apply directly on company's careers page** (not through job board)
|
||||||
|
5. **Connect with hiring manager on LinkedIn** (mention your application)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## NOTES
|
||||||
|
|
||||||
|
- **Company career pages** = less competition, direct to hiring team
|
||||||
|
- **Job boards** = good for discovery, but apply on company site if possible
|
||||||
|
- **Verify everything** = avoid scams and aggregator links
|
||||||
|
- **Bookmark these** = check daily/weekly for fresh opportunities
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## How to Edit This File
|
||||||
|
|
||||||
|
Edit this file directly: `/home/paul/Public/resume/JOB-BOARDS-TO-SEARCH.md`
|
||||||
|
|
||||||
|
To add a new board:
|
||||||
|
1. Add URL and description in the appropriate section
|
||||||
|
2. Include best use case
|
||||||
|
3. Note any special filters or focus
|
||||||
|
|
||||||
|
To remove a board:
|
||||||
|
1. Delete the entry
|
||||||
|
2. Update the last modified date
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Last Verified:** March 18, 2026
|
||||||
|
**All URLs Tested:** Yes
|
||||||
|
**Status:** Active and current
|
||||||
298
.claude/skills/job-search/README.md
Normal file
298
.claude/skills/job-search/README.md
Normal file
@@ -0,0 +1,298 @@
|
|||||||
|
# job-search Skill
|
||||||
|
|
||||||
|
Find, verify, and track backend engineer job opportunities with quality filtering.
|
||||||
|
|
||||||
|
## Files in This Directory
|
||||||
|
|
||||||
|
- **skill.md** — Skill definition, job boards, red flags, on-call risks
|
||||||
|
- **SEARCH-STRATEGY.md** — Systematic 3-tier search approach and workflows
|
||||||
|
- **CRITERIA-CHECKLIST.md** — Evaluation template and fit scoring (1-10)
|
||||||
|
- **README.md** — This file
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
```
|
||||||
|
/job-search [search type]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Common Commands
|
||||||
|
|
||||||
|
**Find positions across boards:**
|
||||||
|
```
|
||||||
|
/job-search find-positions
|
||||||
|
/job-search find-positions golang
|
||||||
|
/job-search search-board weworkremotely
|
||||||
|
```
|
||||||
|
|
||||||
|
**Check if position meets criteria:**
|
||||||
|
```
|
||||||
|
/job-search check-criteria [job description or URL]
|
||||||
|
```
|
||||||
|
|
||||||
|
**Verify position on company site:**
|
||||||
|
```
|
||||||
|
/job-search verify-position [company name and role]
|
||||||
|
```
|
||||||
|
|
||||||
|
**Track found position:**
|
||||||
|
```
|
||||||
|
/job-search track-found [company] [role] [URL] [fit-score]
|
||||||
|
```
|
||||||
|
|
||||||
|
## Your Search Criteria
|
||||||
|
|
||||||
|
**Hard Requirements (Skip if Missing):**
|
||||||
|
- ✅ 100% Remote (no office required)
|
||||||
|
- ✅ No on-call/pager duty
|
||||||
|
- ✅ $130K+ salary
|
||||||
|
- ✅ Backend engineer role
|
||||||
|
- ✅ Python, Go, Rust, or similar
|
||||||
|
|
||||||
|
**Red Flags (Auto-Skip):**
|
||||||
|
- ❌ On-call/pager duty mentioned anywhere
|
||||||
|
- ❌ Non-remote despite "flexible remote" claims
|
||||||
|
- ❌ Below $130K salary
|
||||||
|
- ❌ Startup hustle culture
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3-Tier Search System
|
||||||
|
|
||||||
|
### Daily Search (5 min)
|
||||||
|
Focus on new postings on best boards:
|
||||||
|
1. WeWorkRemotely
|
||||||
|
2. RemoteOK
|
||||||
|
3. Built In
|
||||||
|
|
||||||
|
### Weekly Search (20 min)
|
||||||
|
Broader search + targeted platforms:
|
||||||
|
4. LinkedIn
|
||||||
|
5. DailyRemote
|
||||||
|
6. Indeed
|
||||||
|
7. Cord.co
|
||||||
|
8. Specialized boards (Golang.cafe, RemotePython.com, etc.)
|
||||||
|
|
||||||
|
### Monthly Search (45 min)
|
||||||
|
Deep dive into secondary sources:
|
||||||
|
- Secondary boards (JobServe, JustRemote, Totaljobs)
|
||||||
|
- Target company careers pages (Stripe, GitLab, Automattic, Zapier, etc.)
|
||||||
|
- Growth company pages (Cloudflare, Vercel, Shopify, Twilio)
|
||||||
|
|
||||||
|
See **SEARCH-STRATEGY.md** for full details with links.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Verification Workflow
|
||||||
|
|
||||||
|
Every position must be verified before applying:
|
||||||
|
|
||||||
|
1. **Find on job board** (RemoteOK, WeWorkRemotely, etc.)
|
||||||
|
2. **Go to company website** (search "[Company] careers")
|
||||||
|
3. **Find exact same role** on company careers page
|
||||||
|
4. **Verify it's real** (posting date, "Apply Now" button works)
|
||||||
|
5. **Check on-call one more time** (final check for red flags)
|
||||||
|
6. **Get direct URL** from company site (use for application)
|
||||||
|
7. **Apply directly** to company (not through job board)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Fit Scoring
|
||||||
|
|
||||||
|
Evaluate each position on a 1-10 scale:
|
||||||
|
|
||||||
|
| Score | Action | Notes |
|
||||||
|
|-------|--------|-------|
|
||||||
|
| 9-10 | Apply immediately | Perfect match, all criteria met |
|
||||||
|
| 8 | Apply enthusiastically | Excellent fit, maybe one gap |
|
||||||
|
| 7 | Apply with care | Good fit, one technical gap |
|
||||||
|
| 6 | Apply if quota allows | Okay fit, some gaps but salvageable |
|
||||||
|
| 5 | Consider carefully | Neutral, not compelling |
|
||||||
|
| <5 | Skip | Not worth the effort |
|
||||||
|
|
||||||
|
Use **CRITERIA-CHECKLIST.md** to calculate fit scores.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Key Requirements Explained
|
||||||
|
|
||||||
|
### Remote (100% or Work-from-Home)
|
||||||
|
- Not: "Flexible remote" with office base
|
||||||
|
- Not: "Hybrid" with required days
|
||||||
|
- Yes: Fully distributed team
|
||||||
|
- Yes: "Work from anywhere"
|
||||||
|
- Yes: "Async-first culture"
|
||||||
|
|
||||||
|
### No On-Call
|
||||||
|
These phrases = SKIP IMMEDIATELY:
|
||||||
|
- "On-call rotation"
|
||||||
|
- "Pager duty"
|
||||||
|
- "24/7 support"
|
||||||
|
- "Production ownership" (in incident context)
|
||||||
|
- "Weekend on-call"
|
||||||
|
- "Incident response rotation"
|
||||||
|
|
||||||
|
This is non-negotiable. One mention = reject.
|
||||||
|
|
||||||
|
### $130K+ Minimum
|
||||||
|
- Base salary, not total comp
|
||||||
|
- Equity is bonus, not replacement
|
||||||
|
- Negotiable if company is great fit
|
||||||
|
- Non-negotiable if mediocre fit
|
||||||
|
|
||||||
|
### Backend Engineer Role
|
||||||
|
- Not: Full-stack (unless 80%+ backend)
|
||||||
|
- Not: Frontend with "backend knowledge"
|
||||||
|
- Not: DevOps (different focus)
|
||||||
|
- Not: QA or test engineering
|
||||||
|
- Yes: Platform engineer, Infrastructure engineer, SRE (if not heavy on-call)
|
||||||
|
|
||||||
|
### Tech Stack
|
||||||
|
- **Preferred:** Python, Go, Rust
|
||||||
|
- **Acceptable:** Java, C, JavaScript (learnable)
|
||||||
|
- **Lower priority:** C++, C# (different paradigms)
|
||||||
|
- **Avoid:** Legacy languages only
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Integration with Other Skills
|
||||||
|
|
||||||
|
### Found a Position?
|
||||||
|
Once you've found and verified a position, use the other skill:
|
||||||
|
|
||||||
|
```
|
||||||
|
/build-resume [paste job description]
|
||||||
|
```
|
||||||
|
|
||||||
|
This will:
|
||||||
|
1. Create customized resume
|
||||||
|
2. Generate cover letter
|
||||||
|
3. Create job breakdown with strategy
|
||||||
|
4. Build PDFs ready to submit
|
||||||
|
5. Log application in tracker
|
||||||
|
|
||||||
|
### Application Workflow
|
||||||
|
```
|
||||||
|
Find position → Verify on company site → /build-resume → Apply → Log in tracker
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Tools & Files
|
||||||
|
|
||||||
|
**In this skill directory:**
|
||||||
|
- `skill.md` — Comprehensive skill documentation
|
||||||
|
- `SEARCH-STRATEGY.md` — Detailed search workflows
|
||||||
|
- `CRITERIA-CHECKLIST.md` — Evaluation template and scoring
|
||||||
|
- `JOB-BOARDS-TO-SEARCH.md` — Full board list with all links
|
||||||
|
|
||||||
|
**In your project:**
|
||||||
|
- `/home/paul/Public/resume/search/` — Search results (local, not committed)
|
||||||
|
- `/home/paul/Public/resume/applications/` — Job applications (local, not committed)
|
||||||
|
- `/home/paul/Public/resume/job_search.html` — Dashboard of 35+ verified positions
|
||||||
|
- `/home/paul/.claude/projects/-home-paul-Public-resume/memory/applications_tracker.md` — Your application log
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Search Checklist
|
||||||
|
|
||||||
|
### Before Every Search Session
|
||||||
|
|
||||||
|
- [ ] Have JOB-BOARDS-TO-SEARCH.md open (for board links)
|
||||||
|
- [ ] Know your criteria (remote, $130K+, no on-call)
|
||||||
|
- [ ] Have 15-45 min depending on tier (daily/weekly/monthly)
|
||||||
|
- [ ] Plan to evaluate positions with CRITERIA-CHECKLIST.md
|
||||||
|
|
||||||
|
### During Search
|
||||||
|
|
||||||
|
- [ ] Check each board for new postings
|
||||||
|
- [ ] Quick filter: Remote? $130K+? Backend role? Tech stack?
|
||||||
|
- [ ] Note promising roles in job_search.html
|
||||||
|
- [ ] Verify positions on company career pages
|
||||||
|
- [ ] Check for on-call language (final check)
|
||||||
|
|
||||||
|
### After Search
|
||||||
|
|
||||||
|
- [ ] Log verified positions in dashboard
|
||||||
|
- [ ] Evaluate fit scores (1-10)
|
||||||
|
- [ ] Plan which to apply to this week
|
||||||
|
- [ ] Track completed positions in applications_tracker
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Success Metrics
|
||||||
|
|
||||||
|
**Weekly Goals:**
|
||||||
|
- Find: 5-10 positions
|
||||||
|
- Verify: 3-5 on company sites
|
||||||
|
- Apply: 3-5 quality applications
|
||||||
|
- Track: All applications logged
|
||||||
|
|
||||||
|
**Monthly Review:**
|
||||||
|
- Response rate: How many replies?
|
||||||
|
- Interview conversion: How many interviews?
|
||||||
|
- Offer rate: Any offers?
|
||||||
|
- Adjust strategy if needed
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Common Pitfalls to Avoid
|
||||||
|
|
||||||
|
❌ **Applying to every position** — Quality > quantity
|
||||||
|
❌ **Ignoring on-call mentions** — This is your red line
|
||||||
|
❌ **Applying through job boards** — Always apply directly to company site
|
||||||
|
❌ **Not verifying positions** — Confirm on company careers page first
|
||||||
|
❌ **Applying to anything under $130K** — Stick to your minimum
|
||||||
|
❌ **Skipping the verification step** — It takes 2 minutes and saves time
|
||||||
|
❌ **Not customizing resumes** — Generic materials have low conversion
|
||||||
|
|
||||||
|
✅ **Do this instead:**
|
||||||
|
- ✓ 3-5 quality applications per week
|
||||||
|
- ✓ Verify every position first
|
||||||
|
- ✓ Use /build-resume for customization
|
||||||
|
- ✓ Apply directly to company sites
|
||||||
|
- ✓ Track everything in applications_tracker
|
||||||
|
- ✓ Follow up consistently
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Next Steps
|
||||||
|
|
||||||
|
1. **Read SEARCH-STRATEGY.md** — Understand the 3-tier system
|
||||||
|
2. **Review CRITERIA-CHECKLIST.md** — Learn how to evaluate positions
|
||||||
|
3. **Check JOB-BOARDS-TO-SEARCH.md** — See all 12+ boards available
|
||||||
|
4. **Do daily search** — 5 minutes on 3 primary boards
|
||||||
|
5. **Track positions** — Use /job-search track-found or update job_search.html
|
||||||
|
6. **Build resumes** — Use /build-resume for matched positions
|
||||||
|
7. **Monitor applications_tracker** — Track dates, follow up at 1 week
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Tips for Success
|
||||||
|
|
||||||
|
**Search smarter, not harder:**
|
||||||
|
- Daily search takes 5 min (just stay aware)
|
||||||
|
- Weekly search takes 20 min (find actual positions)
|
||||||
|
- Monthly search takes 45 min (deep dive)
|
||||||
|
- Total: ~1 hour per week for systematic search
|
||||||
|
|
||||||
|
**Batch your work:**
|
||||||
|
- Search on Monday
|
||||||
|
- Build resumes Tue-Thu
|
||||||
|
- Apply on Friday
|
||||||
|
- Follow up next Friday
|
||||||
|
|
||||||
|
**Use all resources:**
|
||||||
|
- Tier 1 boards (daily)
|
||||||
|
- Tier 2 boards (weekly)
|
||||||
|
- Tier 3 + company pages (monthly)
|
||||||
|
- Set email alerts for consistency
|
||||||
|
|
||||||
|
**Verify everything:**
|
||||||
|
- Before applying, verify on company site
|
||||||
|
- Reduces application rejections
|
||||||
|
- Improves interview conversion
|
||||||
|
- Saves time (2 min verification vs wasted application)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Last Updated:** March 18, 2026
|
||||||
380
.claude/skills/job-search/SEARCH-STRATEGY.md
Normal file
380
.claude/skills/job-search/SEARCH-STRATEGY.md
Normal file
@@ -0,0 +1,380 @@
|
|||||||
|
# Job Search Strategy
|
||||||
|
|
||||||
|
Systematic approach to finding quality backend engineer positions that match your criteria.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Your Non-Negotiables ✅
|
||||||
|
|
||||||
|
**Hard Requirements:**
|
||||||
|
- Remote (100% or work-from-home)
|
||||||
|
- No on-call/pager duty
|
||||||
|
- $130K+ salary
|
||||||
|
- Backend engineer role
|
||||||
|
- Technologies: Python, Go, Rust (preferred)
|
||||||
|
|
||||||
|
**Red Flags = Auto-Skip:**
|
||||||
|
- On-call rotation mentioned
|
||||||
|
- Pager duty / 24x7 support
|
||||||
|
- "Startup hustle" culture
|
||||||
|
- Heavy mentoring expectations
|
||||||
|
- Not truly remote
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Three-Tier Search System
|
||||||
|
|
||||||
|
### TIER 1: Daily (5 min)
|
||||||
|
|
||||||
|
**Purpose:** Stay aware of new postings, catch great opportunities early
|
||||||
|
|
||||||
|
**Boards:**
|
||||||
|
1. **WeWorkRemotely** (https://weworkremotely.com)
|
||||||
|
- Filter: Dev Engineering, Remote
|
||||||
|
- Look for: Established companies, explicit remote culture
|
||||||
|
- Why: Curated, trusted companies post here first
|
||||||
|
|
||||||
|
2. **RemoteOK** (https://remoteok.com)
|
||||||
|
- Filter: Backend, Python/Go/Rust, Remote, $130K+
|
||||||
|
- Look for: Salary upfront, time zone info
|
||||||
|
- Why: Smart filters, no guessing on salary
|
||||||
|
|
||||||
|
3. **Built In** (https://builtin.com/jobs/remote/dev-engineering/)
|
||||||
|
- Filter: Remote, backend engineer, Python/Go
|
||||||
|
- Look for: Startup and scale-up companies
|
||||||
|
- Why: Good quality postings from growth companies
|
||||||
|
|
||||||
|
**Action:** 5 minutes, check each board, bookmark promising roles
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### TIER 2: Weekly (20 min)
|
||||||
|
|
||||||
|
**Purpose:** Broader search, check secondary sources, targeted platforms
|
||||||
|
|
||||||
|
**Boards:**
|
||||||
|
4. **LinkedIn** (https://linkedin.com/jobs)
|
||||||
|
- Filter: Remote, Backend Engineer, $130K+, Mid-Senior level
|
||||||
|
- Setup: Create saved search for notifications
|
||||||
|
- Look for: Direct company postings, recruiter outreach
|
||||||
|
- Why: World's largest network, catches hidden roles
|
||||||
|
|
||||||
|
5. **DailyRemote** (https://dailyremote.com)
|
||||||
|
- Filter: Dev, Remote
|
||||||
|
- Look for: Freshly posted daily listings
|
||||||
|
- Why: Curated daily, less saturated than Indeed
|
||||||
|
|
||||||
|
6. **Indeed** (https://indeed.com)
|
||||||
|
- Filter: Remote, Backend Engineer, $130K+, Python/Go
|
||||||
|
- Setup: Notification alerts
|
||||||
|
- Look for: Less covered roles, niche companies
|
||||||
|
- Why: Largest job board, catches everything
|
||||||
|
|
||||||
|
7. **Cord.co** (https://cord.co)
|
||||||
|
- Just browse your matches
|
||||||
|
- Look for: Companies interested in YOU
|
||||||
|
- Why: Passive matching = less competitive
|
||||||
|
|
||||||
|
8. **Language-Specific Boards**
|
||||||
|
- Golang.cafe — https://golang.cafe (if interested in Go)
|
||||||
|
- RemotePython.com — https://remotepython.com (Python focus)
|
||||||
|
- RustJobs.dev — https://rustjobs.dev (Rust focus)
|
||||||
|
|
||||||
|
**Action:** 20 minutes, check each board, bookmark 1-3 interesting roles
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### TIER 3: Monthly (45 min)
|
||||||
|
|
||||||
|
**Purpose:** Deep search, check specialized sources, target specific companies
|
||||||
|
|
||||||
|
**Secondary Boards:**
|
||||||
|
9. JobServe — https://jobserve.com
|
||||||
|
10. JustRemote — https://justremote.co
|
||||||
|
11. Totaljobs — https://totaljobs.com
|
||||||
|
12. Hiring Cafe — https://hiring.cafe
|
||||||
|
|
||||||
|
**Target Company Careers Pages:**
|
||||||
|
|
||||||
|
**High Priority (Check Weekly):**
|
||||||
|
- Stripe — https://stripe.com/jobs
|
||||||
|
- GitLab — https://gitlab.com/careers
|
||||||
|
- Automattic — https://automattic.com/jobs
|
||||||
|
- Zapier — https://zapier.com/jobs
|
||||||
|
|
||||||
|
**Medium Priority (Check Monthly):**
|
||||||
|
- Cloudflare — https://cloudflare.com/careers
|
||||||
|
- Vercel — https://vercel.com/careers
|
||||||
|
- Shopify — https://shopify.com/careers/search
|
||||||
|
- Twilio — https://twilio.com/careers
|
||||||
|
|
||||||
|
**Growth Companies:**
|
||||||
|
- Segment — https://segment.com/careers
|
||||||
|
- Datadog — https://www.datadoghq.com/careers/
|
||||||
|
- Figma — https://figma.com/careers
|
||||||
|
- Notion — https://notion.so/careers
|
||||||
|
|
||||||
|
**Action:** 45 minutes, check secondary boards and target company pages, find 2-5 promising roles
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Filtering Workflow
|
||||||
|
|
||||||
|
### Step 1: Title & Location Check (10 seconds)
|
||||||
|
```
|
||||||
|
Does it say "Backend Engineer" OR "Platform Engineer" OR "Infrastructure Engineer"?
|
||||||
|
Is it marked "Remote" or "Work from home"?
|
||||||
|
→ If NO to either: Skip immediately
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 2: Salary Check (10 seconds)
|
||||||
|
```
|
||||||
|
Can you see the salary?
|
||||||
|
→ If shown: Is it $130K+?
|
||||||
|
→ If not shown: Check company size/location clues
|
||||||
|
→ If clearly below $130K: Skip
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 3: On-Call Check (20 seconds)
|
||||||
|
```
|
||||||
|
Search job description for:
|
||||||
|
- "on-call"
|
||||||
|
- "pager duty"
|
||||||
|
- "24/7 support"
|
||||||
|
- "production ownership"
|
||||||
|
- "incident response"
|
||||||
|
→ If ANY found: SKIP IMMEDIATELY (hard requirement)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 4: Tech Stack Check (20 seconds)
|
||||||
|
```
|
||||||
|
Does job mention:
|
||||||
|
- Python? Go? Rust? (preferred)
|
||||||
|
- Or Java? C? JavaScript? (acceptable)
|
||||||
|
→ If only: C++, C#, .NET, Java only: Lower priority but consider
|
||||||
|
→ If only: Frontend-heavy or full-stack: Consider lower
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 5: Company & Culture Check (30 seconds)
|
||||||
|
```
|
||||||
|
Company mission: Does it align with your values?
|
||||||
|
Company size: Startup? Scale-up? Established?
|
||||||
|
Team size: How many engineers?
|
||||||
|
Growth: Profitable? Funded? Stable?
|
||||||
|
→ Red flags: "Hustle culture", "startup energy", "move fast/break things"
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Verification Process
|
||||||
|
|
||||||
|
Found a position that passes filters? Verify it's real:
|
||||||
|
|
||||||
|
### 1. Find on Job Board ✓
|
||||||
|
- Position found on WeWorkRemotely, RemoteOK, etc.
|
||||||
|
- Note the posting date
|
||||||
|
- Screenshot or bookmark
|
||||||
|
|
||||||
|
### 2. Go to Company Website
|
||||||
|
- Search: "[Company Name] careers" in Google
|
||||||
|
- Or go directly: company.com/jobs
|
||||||
|
- Example: stripe.com/jobs, gitlab.com/careers
|
||||||
|
|
||||||
|
### 3. Find the Exact Role
|
||||||
|
- Look for same job title and team
|
||||||
|
- Verify posting date (not old)
|
||||||
|
- Check if "Apply Now" button is active
|
||||||
|
- Read full job description for red flags
|
||||||
|
|
||||||
|
### 4. Get Direct Application URL
|
||||||
|
- Copy the direct link from company site
|
||||||
|
- This is what you'll use to apply
|
||||||
|
- Save in job_search.html dashboard
|
||||||
|
|
||||||
|
### 5. Final On-Call Check
|
||||||
|
- Read full job description one more time
|
||||||
|
- Search for: "on-call", "pager", "24/7", "incident response"
|
||||||
|
- If found: Flag as red, skip application
|
||||||
|
- If not found: Proceed to applying
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Application Workflow
|
||||||
|
|
||||||
|
Once you've found and verified a great position:
|
||||||
|
|
||||||
|
### 1. Get Job Description
|
||||||
|
- Copy full job description
|
||||||
|
- Save it
|
||||||
|
|
||||||
|
### 2. Build Resume
|
||||||
|
```
|
||||||
|
/build-resume [paste job description]
|
||||||
|
```
|
||||||
|
This creates:
|
||||||
|
- Customized resume
|
||||||
|
- Customized cover letter
|
||||||
|
- Job breakdown with strategy notes
|
||||||
|
- PDFs ready to submit
|
||||||
|
|
||||||
|
### 3. Apply on Company Site
|
||||||
|
- Use direct URL from company careers page (not job board)
|
||||||
|
- Submit resume and cover letter
|
||||||
|
- Optional: Write personalized cover letter
|
||||||
|
|
||||||
|
### 4. Log Application
|
||||||
|
- Update `/home/paul/.claude/projects/-home-paul-Public-resume/memory/applications_tracker.md`
|
||||||
|
- Record: date applied, company, role, fit score
|
||||||
|
- Set reminder for follow-up (1 week)
|
||||||
|
|
||||||
|
### 5. LinkedIn Connect
|
||||||
|
- Find hiring manager or team member
|
||||||
|
- Send connection request with personal note
|
||||||
|
- Mention: "Just applied for [Role] at [Company]"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Batch Application Strategy
|
||||||
|
|
||||||
|
Research shows **3-5 focused applications per week** is better than:
|
||||||
|
- ❌ Applying to 20+ per day (low quality)
|
||||||
|
- ❌ Waiting weeks between applications (momentum loss)
|
||||||
|
- ✓ 3-5 quality fits with customized materials
|
||||||
|
- ✓ Consistent follow-up cadence
|
||||||
|
|
||||||
|
### Week 1: Find & Apply
|
||||||
|
- Mon: Search, find 3-5 positions
|
||||||
|
- Tue-Thu: Build resumes, customize cover letters
|
||||||
|
- Fri: Submit all applications
|
||||||
|
|
||||||
|
### Week 2: Follow-Up
|
||||||
|
- Connect on LinkedIn with 3-5 hiring managers
|
||||||
|
- Check email for responses
|
||||||
|
- If no response from initial batch: Pursue interviews from interested companies
|
||||||
|
|
||||||
|
### Week 3: Build on Interest
|
||||||
|
- Interview prep for interested companies
|
||||||
|
- Continue search for new positions
|
||||||
|
- Repeat cycle
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Search Optimizations
|
||||||
|
|
||||||
|
### Set Email Alerts
|
||||||
|
- Indeed: Daily email for "remote backend engineer $130K"
|
||||||
|
- LinkedIn: Weekly digest for saved searches
|
||||||
|
- WeWorkRemotely: Weekly job alert email
|
||||||
|
|
||||||
|
### Use Advanced Filters
|
||||||
|
**Indeed search:**
|
||||||
|
```
|
||||||
|
(backend engineer OR platform engineer OR infrastructure engineer)
|
||||||
|
AND remote
|
||||||
|
AND salary:130000
|
||||||
|
```
|
||||||
|
|
||||||
|
**LinkedIn search:**
|
||||||
|
```
|
||||||
|
Title: Backend Engineer, Platform Engineer, or Infrastructure Engineer
|
||||||
|
Location: On my own terms
|
||||||
|
Salary: $130K-$300K
|
||||||
|
Experience: Mid-Senior
|
||||||
|
```
|
||||||
|
|
||||||
|
**RemoteOK search:**
|
||||||
|
```
|
||||||
|
Skills: Backend, Python, Golang, Rust
|
||||||
|
Min Salary: $130,000
|
||||||
|
Job Type: Full-time, Permanent
|
||||||
|
```
|
||||||
|
|
||||||
|
### Customize Searches by Tech
|
||||||
|
If you want Python-heavy roles:
|
||||||
|
- Add "Django" or "FastAPI" to search
|
||||||
|
- Check RemotePython.com weekly
|
||||||
|
|
||||||
|
If interested in Go roles:
|
||||||
|
- Add "Go" or "Golang" to search
|
||||||
|
- Check golang.cafe daily
|
||||||
|
|
||||||
|
If interested in Rust roles:
|
||||||
|
- Check RustJobs.dev weekly
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Tracking & Metrics
|
||||||
|
|
||||||
|
### Track These
|
||||||
|
- Positions found per week
|
||||||
|
- Positions verified
|
||||||
|
- Applications submitted
|
||||||
|
- Response rate
|
||||||
|
- Interview conversion
|
||||||
|
|
||||||
|
### Weekly Metric Goals
|
||||||
|
- **Find:** 5-10 positions from daily searches
|
||||||
|
- **Verify:** 3-5 verified on company sites
|
||||||
|
- **Apply:** 3-5 quality applications
|
||||||
|
- **Response:** Track replies, interviews, offers
|
||||||
|
|
||||||
|
### Save Search Results
|
||||||
|
After finding and verifying a position, save to search folder:
|
||||||
|
```
|
||||||
|
/job-search track-found [company] [role] [URL] [fit-score]
|
||||||
|
```
|
||||||
|
|
||||||
|
This saves search results to `/home/paul/Public/resume/search/` and updates `/home/paul/Public/resume/job_search.html` with your new position.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Red Flags Checklist
|
||||||
|
|
||||||
|
### Skip Immediately If:
|
||||||
|
- [ ] On-call/pager duty mentioned
|
||||||
|
- [ ] 24/7 support required
|
||||||
|
- [ ] "Startup hustle" or "move fast" culture
|
||||||
|
- [ ] Non-remote (despite claiming "remote friendly")
|
||||||
|
- [ ] Heavy management/mentoring emphasized
|
||||||
|
- [ ] No salary transparency
|
||||||
|
- [ ] Unclear role responsibilities
|
||||||
|
- [ ] Negative Glassdoor reviews about work-life balance
|
||||||
|
|
||||||
|
### Yellow Flags (Research More):
|
||||||
|
- [ ] Equity-heavy compensation (low base)
|
||||||
|
- [ ] Very high meeting culture
|
||||||
|
- [ ] Frequent "emergency" incidents mentioned
|
||||||
|
- [ ] Rapid team turnover (from research)
|
||||||
|
- [ ] Vague about on-call expectations
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Tools & Resources
|
||||||
|
|
||||||
|
**Files in your project:**
|
||||||
|
- `/home/paul/Public/resume/JOB-BOARDS-TO-SEARCH.md` — Complete board list
|
||||||
|
- `/home/paul/Public/resume/job_search.html` — Dashboard of 35+ positions
|
||||||
|
- `/home/paul/.claude/projects/-home-paul-Public-resume/memory/applications_tracker.md` — Your application log
|
||||||
|
|
||||||
|
**Related skills:**
|
||||||
|
- `/build-resume` — Build customized resumes and cover letters
|
||||||
|
- `job-search` — This skill, for finding and filtering positions
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Monthly Check-In
|
||||||
|
|
||||||
|
Once per month, evaluate:
|
||||||
|
- **Quality:** Are positions good fits?
|
||||||
|
- **Quantity:** Finding enough positions?
|
||||||
|
- **Success:** Getting interviews? Offers?
|
||||||
|
- **Strategy:** Need to adjust boards or search criteria?
|
||||||
|
|
||||||
|
Update `JOB-BOARDS-TO-SEARCH.md` (in this skill directory) if:
|
||||||
|
- A board is consistently low-quality
|
||||||
|
- A board is consistently excellent
|
||||||
|
- You discover new boards to add
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Last Updated:** March 18, 2026
|
||||||
320
.claude/skills/job-search/skill.md
Normal file
320
.claude/skills/job-search/skill.md
Normal file
@@ -0,0 +1,320 @@
|
|||||||
|
---
|
||||||
|
name: job-search
|
||||||
|
description: Find, verify, and track backend engineer job opportunities across multiple platforms
|
||||||
|
type: skill
|
||||||
|
arguments:
|
||||||
|
- name: search_type
|
||||||
|
description: "Type of search: 'find-positions', 'verify-position', 'check-criteria', 'track-found', 'search-board', or 'help'"
|
||||||
|
required: false
|
||||||
|
output:
|
||||||
|
- positions_found: List of matching opportunities
|
||||||
|
- verification_status: Confirmation that position exists on company careers page
|
||||||
|
- dashboard_update: Updated job_search.html with new positions
|
||||||
|
- tracking_record: Entry in applications_tracker memory
|
||||||
|
---
|
||||||
|
|
||||||
|
# job-search Skill
|
||||||
|
|
||||||
|
Find, verify, and track backend engineer job opportunities with quality filtering.
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
```
|
||||||
|
/job-search [search type or query]
|
||||||
|
```
|
||||||
|
|
||||||
|
## Search Types
|
||||||
|
|
||||||
|
### Find Positions
|
||||||
|
```
|
||||||
|
/job-search find-positions [optional: board name or criteria]
|
||||||
|
```
|
||||||
|
|
||||||
|
Searches across configured job boards for matching roles. Returns:
|
||||||
|
- Direct company links
|
||||||
|
- Salary when available
|
||||||
|
- Remote status
|
||||||
|
- On-call/pager duty flags
|
||||||
|
|
||||||
|
### Verify Position
|
||||||
|
```
|
||||||
|
/job-search verify-position [company name and role]
|
||||||
|
```
|
||||||
|
|
||||||
|
Confirms position exists on company's official careers page:
|
||||||
|
- Checks company website directly (not job board)
|
||||||
|
- Validates role details
|
||||||
|
- Finds direct application URL
|
||||||
|
- Warns if position appears to be filled
|
||||||
|
|
||||||
|
### Check Criteria
|
||||||
|
```
|
||||||
|
/job-search check-criteria [position URL or description]
|
||||||
|
```
|
||||||
|
|
||||||
|
Evaluates position against your requirements:
|
||||||
|
- ✅ Remote eligible (100% remote or work-from-home)
|
||||||
|
- ✅ No on-call/pager duty
|
||||||
|
- ✅ Salary $130K+
|
||||||
|
- ✅ Backend engineer role
|
||||||
|
- ✅ Preferred tech stack
|
||||||
|
|
||||||
|
Returns fit assessment and yellow/red flags.
|
||||||
|
|
||||||
|
### Track Found Position
|
||||||
|
```
|
||||||
|
/job-search track-found [company, role, URL, fit score]
|
||||||
|
```
|
||||||
|
|
||||||
|
Adds position to job_search.html dashboard:
|
||||||
|
- Updates dashboard with new position
|
||||||
|
- Logs in applications_tracker memory
|
||||||
|
- Sets on-call status based on job description
|
||||||
|
- Records fit score (1-10)
|
||||||
|
|
||||||
|
### Search Specific Board
|
||||||
|
```
|
||||||
|
/job-search search-board [board name] [optional: filters]
|
||||||
|
```
|
||||||
|
|
||||||
|
Searches a specific job board. Examples:
|
||||||
|
- `search-board weworkremotely backend engineer`
|
||||||
|
- `search-board remoteok python`
|
||||||
|
- `search-board builtin golang`
|
||||||
|
- `search-board golang.cafe`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Your Search Criteria ✅
|
||||||
|
|
||||||
|
**Hard Requirements:**
|
||||||
|
- 🌍 Remote (100% remote or explicitly remote-eligible)
|
||||||
|
- 💰 Salary: $130K+ (minimum)
|
||||||
|
- ⚙️ Backend engineer / Platform engineer / Infrastructure engineer
|
||||||
|
- 🚫 NO on-call rotations / pager duty / 24x7 support
|
||||||
|
|
||||||
|
**Tech Stack Preferences:**
|
||||||
|
- Primary: Python, Go, Rust, Kubernetes, REST APIs
|
||||||
|
- Secondary: Java, C, JavaScript (for full-stack opportunities)
|
||||||
|
|
||||||
|
**Role Preferences:**
|
||||||
|
- Junior to Mid-level (don't emphasize Sr/Staff)
|
||||||
|
- Systems programming and backend focus
|
||||||
|
- No heavy management/mentoring responsibilities
|
||||||
|
|
||||||
|
**Company Preferences:**
|
||||||
|
- Meaningful work > hype
|
||||||
|
- Sustainable pace (no crunch culture)
|
||||||
|
- Async-friendly remote environments
|
||||||
|
- Growing companies with real problems
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Primary Job Boards (Check Daily/Weekly)
|
||||||
|
|
||||||
|
**General Tech:**
|
||||||
|
1. Indeed — https://indeed.com
|
||||||
|
2. LinkedIn — https://linkedin.com/jobs
|
||||||
|
3. Built In — https://builtin.com/jobs/remote/dev-engineering/
|
||||||
|
|
||||||
|
**Remote-Specific:**
|
||||||
|
4. WeWorkRemotely — https://weworkremotely.com
|
||||||
|
5. RemoteOK — https://remoteok.com
|
||||||
|
6. DailyRemote — https://dailyremote.com
|
||||||
|
|
||||||
|
**Other Primary:**
|
||||||
|
7. Cord.co — https://cord.co (passive matching)
|
||||||
|
8. JobServe — https://jobserve.com
|
||||||
|
|
||||||
|
**Specialized (Language-Specific):**
|
||||||
|
9. Golang.cafe — https://golang.cafe
|
||||||
|
10. RemotePython.com — https://remotepython.com
|
||||||
|
11. RustJobs.dev — https://rustjobs.dev
|
||||||
|
|
||||||
|
**Target Companies (Check Monthly):**
|
||||||
|
- Stripe: https://stripe.com/jobs
|
||||||
|
- GitLab: https://gitlab.com/careers
|
||||||
|
- Automattic: https://automattic.com/jobs
|
||||||
|
- Zapier: https://zapier.com/jobs
|
||||||
|
- Cloudflare: https://cloudflare.com/careers
|
||||||
|
- Vercel: https://vercel.com/careers
|
||||||
|
- Shopify: https://shopify.com/careers/search
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## On-Call Risk Flags
|
||||||
|
|
||||||
|
Watch for language that indicates on-call:
|
||||||
|
- "On-call rotation"
|
||||||
|
- "Pager duty"
|
||||||
|
- "24x7 support"
|
||||||
|
- "Production ownership"
|
||||||
|
- "On-call after hours"
|
||||||
|
- "Weekend support"
|
||||||
|
- "Incident response rotation"
|
||||||
|
|
||||||
|
⚠️ Flag for rejection if found.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Verification Workflow
|
||||||
|
|
||||||
|
1. **Find position** on job board (RemoteOK, WeWorkRemotely, etc.)
|
||||||
|
2. **Go to company website** (e.g., "stripe.com/jobs" or search "Stripe careers")
|
||||||
|
3. **Find exact same role** on company site
|
||||||
|
4. **Verify it's real** (check posting date, check if hiring)
|
||||||
|
5. **Get direct URL** from company careers page
|
||||||
|
6. **Apply directly** (not through job board) if it meets criteria
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Fit Scoring (1-10)
|
||||||
|
|
||||||
|
**10/10** — Perfect match
|
||||||
|
- Exact role match, all preferred tech, remote, good salary
|
||||||
|
|
||||||
|
**9/10** — Excellent fit
|
||||||
|
- One minor gap (e.g., Django experience when you know Python)
|
||||||
|
|
||||||
|
**8/10** — Strong fit
|
||||||
|
- One technical gap you can learn, but core role matches
|
||||||
|
|
||||||
|
**7/10** — Good fit
|
||||||
|
- Multiple small gaps, but core skills match and company is good
|
||||||
|
|
||||||
|
**6/10** — Okay fit
|
||||||
|
- Significant technical gap, or secondary area (e.g., full-stack when backend is preference)
|
||||||
|
|
||||||
|
**5-Below** — Pass
|
||||||
|
- Major gaps, wrong role type, or red flags
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Dashboard & Tracking
|
||||||
|
|
||||||
|
**View found positions:**
|
||||||
|
- Open `/home/paul/Public/resume/job_search.html` in browser
|
||||||
|
- 35+ verified positions with filters and sorting
|
||||||
|
- Green (no on-call), yellow (unknown), red (has on-call)
|
||||||
|
- Direct links to all postings
|
||||||
|
|
||||||
|
**Track applications:**
|
||||||
|
- File: `/home/paul/.claude/projects/-home-paul-Public-resume/memory/applications_tracker.md`
|
||||||
|
- Log applied positions with dates
|
||||||
|
- Update status (applied, interviewing, rejected, offer)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Search Strategy
|
||||||
|
|
||||||
|
### Daily (5 minutes)
|
||||||
|
- [ ] Check WeWorkRemotely for new postings
|
||||||
|
- [ ] Scan RemoteOK with filters (backend, $130K+, remote)
|
||||||
|
- [ ] Browse Built In's remote section
|
||||||
|
|
||||||
|
### Weekly (15 minutes)
|
||||||
|
- [ ] DailyRemote — Fresh listings
|
||||||
|
- [ ] LinkedIn — Set custom alerts
|
||||||
|
- [ ] Cord.co — Check if matched to profiles
|
||||||
|
- [ ] Golang.cafe (if interested in Go roles)
|
||||||
|
|
||||||
|
### Monthly (30 minutes)
|
||||||
|
- [ ] Secondary boards (JobServe, JustRemote, Totaljobs, Hiring Cafe)
|
||||||
|
- [ ] Specialized boards (RemotePython.com, RustJobs.dev)
|
||||||
|
- [ ] Target company careers pages (Stripe, GitLab, Automattic, Zapier, Cloudflare, Vercel, Shopify, Twilio)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Common Search Filters
|
||||||
|
|
||||||
|
**Indeed:**
|
||||||
|
- Location: Remote
|
||||||
|
- Job Title: Backend Engineer / Platform Engineer / Software Engineer
|
||||||
|
- Salary: $130,000+
|
||||||
|
- Keywords: Python OR Go OR Rust
|
||||||
|
|
||||||
|
**LinkedIn:**
|
||||||
|
- Location: On my own terms
|
||||||
|
- Title: Backend Engineer / Platform Engineer / Infrastructure Engineer
|
||||||
|
- Salary: $130,000+
|
||||||
|
- Experience Level: Mid-Senior
|
||||||
|
|
||||||
|
**RemoteOK:**
|
||||||
|
- Skills: Backend, Python, Golang, Rust
|
||||||
|
- Min Salary: $130,000
|
||||||
|
- Job Type: Full-time, Permanent
|
||||||
|
|
||||||
|
**WeWorkRemotely:**
|
||||||
|
- Category: Dev Engineering
|
||||||
|
- Salary: $130,000+
|
||||||
|
- Timezone: Any (you handle async)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Red Flags to Avoid
|
||||||
|
|
||||||
|
❌ On-call/pager duty language
|
||||||
|
❌ "Startup hustle" or "high-energy" (often code for crunch)
|
||||||
|
❌ Excessive meeting culture ("fast-paced", "collaborative" without async details)
|
||||||
|
❌ Junior mentoring emphasized heavily
|
||||||
|
❌ Non-remote with "flexible remote options"
|
||||||
|
❌ Equity-heavy compensation (especially if low base)
|
||||||
|
❌ Vague role descriptions
|
||||||
|
❌ No clear career growth path
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Success Checklist
|
||||||
|
|
||||||
|
Before considering a position:
|
||||||
|
- [ ] Position is 100% remote or explicitly work-from-home
|
||||||
|
- [ ] No on-call/pager duty language
|
||||||
|
- [ ] Salary at or above $130K base
|
||||||
|
- [ ] Role is backend/platform/infrastructure focused
|
||||||
|
- [ ] Tech stack matches (Python, Go, Rust preferred)
|
||||||
|
- [ ] Company mission aligns with your values
|
||||||
|
- [ ] Team structure looks healthy
|
||||||
|
- [ ] Position verified on company careers page
|
||||||
|
- [ ] Ready to apply directly to company site
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## File Locations
|
||||||
|
|
||||||
|
- **Job boards list:** `JOB-BOARDS-TO-SEARCH.md` (in this skill directory)
|
||||||
|
- **Search results folder:** `/home/paul/Public/resume/search/` (local, not committed)
|
||||||
|
- **Dashboard:** `/home/paul/Public/resume/job_search.html`
|
||||||
|
- **Applications tracker:** `/home/paul/.claude/projects/-home-paul-Public-resume/memory/applications_tracker.md`
|
||||||
|
- **Job preferences:** `/home/paul/.claude/projects/-home-paul-Public-resume/memory/user_preferences.md`
|
||||||
|
- **Skill directory:** `/home/paul/Public/resume/.claude/skills/job-search/`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Integration with build-resume
|
||||||
|
|
||||||
|
Found a great position? Use the other skill:
|
||||||
|
|
||||||
|
```
|
||||||
|
/build-resume [paste job description]
|
||||||
|
```
|
||||||
|
|
||||||
|
This will:
|
||||||
|
1. Create customized resume and cover letter
|
||||||
|
2. Generate job breakdown with strategy
|
||||||
|
3. Build PDFs ready to submit
|
||||||
|
4. Log application in tracker
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- **Job boards change frequently** — Update JOB-BOARDS-TO-SEARCH.md as you discover new ones
|
||||||
|
- **Verify everything** — Always check company careers page before applying through job board
|
||||||
|
- **Apply directly** — Less competition when applying to company site vs job board
|
||||||
|
- **Track everything** — Log all applications so you can follow up consistently
|
||||||
|
- **Batch applications** — Apply to 3-5 positions, then follow up week 1, week 2
|
||||||
|
- **Async communication** — Look for companies that explicitly value async work
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Last Updated: March 18, 2026
|
||||||
6
.gitignore
vendored
6
.gitignore
vendored
@@ -1,2 +1,8 @@
|
|||||||
.docker-build
|
.docker-build
|
||||||
.podman-build
|
.podman-build
|
||||||
|
|
||||||
|
# Job applications (local only, not committed)
|
||||||
|
applications/
|
||||||
|
|
||||||
|
# Job search results (local only, not committed)
|
||||||
|
search/
|
||||||
|
|||||||
76
CLAUDE.md
76
CLAUDE.md
@@ -2,6 +2,25 @@
|
|||||||
|
|
||||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⚠️ CRITICAL: NEVER FABRICATE NUMBERS OR DETAILS
|
||||||
|
|
||||||
|
**This is checked on every build-resume run. Violation is a critical error.**
|
||||||
|
|
||||||
|
- **ONLY use facts from `paul-halvorsen-resume-detailed.md`**
|
||||||
|
- DO NOT invent: team sizes, customer counts, specific metrics, percentages, achievements, scales
|
||||||
|
- If a detail isn't in the detailed resume, do not include it
|
||||||
|
- Allowed: reframe/reorder existing information, remove less relevant details
|
||||||
|
- **Examples of violations:**
|
||||||
|
- ❌ "$9 trillion in assets" (not in detailed resume)
|
||||||
|
- ❌ "40+ engineers" (not in detailed resume)
|
||||||
|
- ❌ "thousands of security events daily" (not in detailed resume)
|
||||||
|
- ✓ "10 auto-scaling clusters" (IS in detailed resume)
|
||||||
|
- ✓ "~90% CPU reduction" (IS in detailed resume)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Project Overview
|
## Project Overview
|
||||||
|
|
||||||
This is a resume builder using Pandoc to convert Markdown resumes with YAML metadata to PDF via LaTeX templates. The build process is containerized using Podman (Docker alternative) for reproducibility and portability.
|
This is a resume builder using Pandoc to convert Markdown resumes with YAML metadata to PDF via LaTeX templates. The build process is containerized using Podman (Docker alternative) for reproducibility and portability.
|
||||||
@@ -277,3 +296,60 @@ Is the company a startup or growth-stage company?
|
|||||||
- **Valon** (Series C, a16z-backed): awesome-cv recommended
|
- **Valon** (Series C, a16z-backed): awesome-cv recommended
|
||||||
- **Enterprise customers**: jb2resume-modern
|
- **Enterprise customers**: jb2resume-modern
|
||||||
- **Government/DoD contracts**: jb2resume (classic)
|
- **Government/DoD contracts**: jb2resume (classic)
|
||||||
|
|
||||||
|
## CRITICAL: Resume Content Rules
|
||||||
|
|
||||||
|
### Never Fabricate Numbers, Metrics, or Details
|
||||||
|
|
||||||
|
**⚠️ BLOCKING REQUIREMENT: DO THIS CHECK BEFORE WRITING EACH RESUME SECTION**
|
||||||
|
|
||||||
|
**ONLY use facts from `paul-halvorsen-resume-detailed.md` as the source of truth.**
|
||||||
|
|
||||||
|
**Do NOT invent:**
|
||||||
|
- Team sizes ("40+ engineers across company")
|
||||||
|
- Customer/endpoint counts unless explicitly documented
|
||||||
|
- Specific metrics not stated in detailed resume
|
||||||
|
- Job responsibilities not listed
|
||||||
|
- Percentages, scales, or achievements without documentation
|
||||||
|
- Any number or quantifiable claim not in detailed resume
|
||||||
|
|
||||||
|
**Pre-write checklist (do this for EVERY bullet point):**
|
||||||
|
- [ ] Is this number/metric in paul-halvorsen-resume-detailed.md?
|
||||||
|
- [ ] If NO, do not include it
|
||||||
|
- [ ] Am I reframing documented information, or inventing new information?
|
||||||
|
- [ ] If inventing, stop and remove the bullet
|
||||||
|
|
||||||
|
**What IS allowed:**
|
||||||
|
- Reorder existing information for job relevance
|
||||||
|
- Rephrase/reframe documentation for clarity
|
||||||
|
- Remove less relevant details to save space
|
||||||
|
- Use exact metrics/percentages from detailed resume
|
||||||
|
|
||||||
|
**Violations Paul has caught (do not repeat):**
|
||||||
|
- ❌ "$9 trillion in assets" (Addepar) — Not in detailed resume
|
||||||
|
- ❌ "40+ engineers across company" (DOPE) — Not in detailed resume
|
||||||
|
- ❌ "thousands of security events daily" (made up) — Not documented anywhere
|
||||||
|
|
||||||
|
**Valid examples (these ARE documented):**
|
||||||
|
- ✓ "Performance improvements: reduced CPU usage ~90%" → Binary Defense section
|
||||||
|
- ✓ "Customers: Fortune 500 companies, thousands of endpoints" → Binary Defense section
|
||||||
|
- ✓ "10 auto-scaling clusters in AWS" → Abnormal AI section
|
||||||
|
- ✓ "MySQL database (thousands of records)" → NSA section
|
||||||
|
|
||||||
|
**Apply this rule to:**
|
||||||
|
- Work experience descriptions
|
||||||
|
- Metrics and achievements
|
||||||
|
- Team structures
|
||||||
|
- Customer information
|
||||||
|
- Technical details
|
||||||
|
- ANY quantifiable claim
|
||||||
|
|
||||||
|
### Job Breakdown File Checklist
|
||||||
|
|
||||||
|
When creating `job-breakdown.md` files:
|
||||||
|
- [ ] All numbers in "Requirements Analysis" table come from job posting OR documented facts
|
||||||
|
- [ ] All numbers in "Strengths in Context" are from paul-halvorsen-resume-detailed.md
|
||||||
|
- [ ] No invented metrics like "years of experience with technology X" unless documented
|
||||||
|
- [ ] Salary recommendations are conservative estimates, not fabricated
|
||||||
|
- [ ] Keyword match % is realistic based on actual resume content
|
||||||
|
- [ ] All claims about Paul's background are verifiable from detailed resume
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
FROM pandoc/latex:latest
|
FROM ubuntu:latest
|
||||||
RUN tlmgr update --self \
|
RUN apt-get update && apt-get install -y pandoc texlive texlive-latex-extra texlive-fonts-recommended
|
||||||
&& tlmgr install enumitem sectsty underscore
|
|
||||||
WORKDIR /data
|
WORKDIR /data
|
||||||
VOLUME ["/data"]
|
VOLUME ["/data"]
|
||||||
|
ENTRYPOINT ["pandoc"]
|
||||||
|
|||||||
24
Makefile
24
Makefile
@@ -2,8 +2,8 @@ USER=paul
|
|||||||
FILE_NAME?=paul-halvorsen-resume
|
FILE_NAME?=paul-halvorsen-resume
|
||||||
TEMPLATE?=jb2resume-modern
|
TEMPLATE?=jb2resume-modern
|
||||||
|
|
||||||
NAME=build-paul-resume
|
NAME=localhost/build-paul-resume
|
||||||
CONTAINER_NAME=${NAME}-container
|
CONTAINER_NAME=build-paul-resume-container
|
||||||
|
|
||||||
USER_ID=$(shell id -u ${USER})
|
USER_ID=$(shell id -u ${USER})
|
||||||
GROUP_ID=$(shell id -g ${USER})
|
GROUP_ID=$(shell id -g ${USER})
|
||||||
@@ -17,7 +17,24 @@ endif
|
|||||||
# - jb2resume: Classic template (original)
|
# - jb2resume: Classic template (original)
|
||||||
# - jb2resume-modern: Improved with better spacing and typography
|
# - jb2resume-modern: Improved with better spacing and typography
|
||||||
# - awesome-cv: Modern Awesome-CV based template
|
# - awesome-cv: Modern Awesome-CV based template
|
||||||
.PHONY: resume resume-modern resume-awesome help clean cleanpaper cleanpodman cleanall
|
.PHONY: resume resume-modern resume-awesome resume-ats cover-letter help clean cleanpaper cleanpodman cleanall
|
||||||
|
|
||||||
|
cover-letter: .podman-build
|
||||||
|
podman run --rm \
|
||||||
|
--volume "$(realpath .)":/data \
|
||||||
|
--name ${CONTAINER_NAME} \
|
||||||
|
${NAME} \
|
||||||
|
${FILE_NAME}.md -f markdown --template templates/cover-letter.latex -o ${FILE_NAME}.pdf
|
||||||
|
@echo "✓ Generated ${FILE_NAME}.pdf (cover letter)"
|
||||||
|
|
||||||
|
resume-ats: TEMPLATE=jb2resume-ats
|
||||||
|
resume-ats: .podman-build
|
||||||
|
podman run --rm \
|
||||||
|
--volume "$(realpath .)":/data \
|
||||||
|
--name ${CONTAINER_NAME} \
|
||||||
|
${NAME} \
|
||||||
|
${FILE_NAME}.md -f markdown+yaml_metadata_block --template templates/jb2resume-ats.latex -o ${FILE_NAME}.pdf
|
||||||
|
@echo "✓ Generated ${FILE_NAME}.pdf (template: jb2resume-ats)"
|
||||||
|
|
||||||
resume: TEMPLATE=jb2resume
|
resume: TEMPLATE=jb2resume
|
||||||
resume: .podman-build
|
resume: .podman-build
|
||||||
@@ -59,6 +76,7 @@ help:
|
|||||||
@echo " make resume FILE_NAME=path/to/resume # Classic jb2resume"
|
@echo " make resume FILE_NAME=path/to/resume # Classic jb2resume"
|
||||||
@echo " make resume-modern FILE_NAME=path/to/resume # Modern improved template"
|
@echo " make resume-modern FILE_NAME=path/to/resume # Modern improved template"
|
||||||
@echo " make resume-awesome FILE_NAME=path/to/resume # Awesome-CV inspired template"
|
@echo " make resume-awesome FILE_NAME=path/to/resume # Awesome-CV inspired template"
|
||||||
|
@echo " make resume-ats FILE_NAME=path/to/resume # ATS-optimized single-column"
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "Examples:"
|
@echo "Examples:"
|
||||||
@echo " make resume-modern FILE_NAME=files/paul-halvorsen-files-backend-engineer"
|
@echo " make resume-modern FILE_NAME=files/paul-halvorsen-files-backend-engineer"
|
||||||
|
|||||||
@@ -1,92 +0,0 @@
|
|||||||
---
|
|
||||||
name: Paul Halvorsen
|
|
||||||
keywords: full-stack, react, node.js, c#, microservices, docker, kubernetes, SQL server, API design, REST API
|
|
||||||
left-column:
|
|
||||||
- "Email: paul.halvorsen@pm.me"
|
|
||||||
- "Phone: +1-410-236-4665"
|
|
||||||
right-column:
|
|
||||||
- "GitHub: github.com/malwhile"
|
|
||||||
- "LinkedIn: linkedin.com/in/paul-halvorsen"
|
|
||||||
- "Blog: flow.halvo.me"
|
|
||||||
fontsize: 10pt
|
|
||||||
fontenc: T1
|
|
||||||
urlcolor: blue
|
|
||||||
linkcolor: magenta
|
|
||||||
numbersections: false
|
|
||||||
---
|
|
||||||
|
|
||||||
## Professional Summary
|
|
||||||
|
|
||||||
Full-stack Software Engineer with 15+ years of experience designing and building scalable distributed systems, REST APIs, and database architectures. Proficient in both backend and frontend technologies with expertise in microservices patterns, cloud infrastructure (Docker, Kubernetes), and modern API design. Quick learner across multiple programming languages and frameworks with a proven track record of architecting systems serving millions of data points and hundreds of thousands of concurrent users.
|
|
||||||
|
|
||||||
## Core Technical Skills
|
|
||||||
|
|
||||||
**Backend:** Microservices architecture, REST API design, Docker, Kubernetes, distributed systems, service-oriented architecture | **Databases:** MySQL, SQLite, SQL (relational design, indexing, optimization) | **Frontend:** JavaScript, React, TypeScript, Node.js | **Languages:** Python (Advanced), Rust, C, GoLang, Java | **DevOps & Infrastructure:** GitLab CI/CD, cloud-based infrastructure, automated testing | **Practices:** Test-driven development, code reviews, agile development
|
|
||||||
|
|
||||||
## Professional Experience
|
|
||||||
|
|
||||||
### Software Engineer | Abnormal AI
|
|
||||||
\resumedate{**January 2026 – Present**}
|
|
||||||
|
|
||||||
- Design and develop Python-based microservices for multi-region distributed systems (US East, US West, EU West)
|
|
||||||
- Build and maintain Docker containerized services and Kubernetes orchestration across 10+ clusters with auto-scaling capabilities
|
|
||||||
- Develop REST APIs and data aggregation services handling millions of data points at scale
|
|
||||||
- Implement performance optimizations and data pipeline orchestration improving efficiency by up to 70%
|
|
||||||
- Write comprehensive unit and integration tests; maintain high test coverage using pytest
|
|
||||||
- Collaborate with cross-functional team on microservices architecture, service design, and continuous integration pipelines
|
|
||||||
|
|
||||||
### Sr Software Engineer | Binary Defense
|
|
||||||
\resumedate{**April 2022 – October 2025**}
|
|
||||||
|
|
||||||
- Architected and implemented Python backend libraries for cross-platform services (Windows, Linux, macOS)
|
|
||||||
- Designed and built REST APIs for secure communication between distributed client-server systems
|
|
||||||
- Optimized backend services achieving 60-80% improvements in memory and network efficiency through intelligent data processing
|
|
||||||
- Implemented encrypted database layers (SQLite) with secure key storage mechanisms
|
|
||||||
- Built comprehensive end-to-end testing frameworks and automated test suites
|
|
||||||
- Developed scalable services using event-driven architecture handling millions of events
|
|
||||||
- Maintained CI/CD pipelines for compilation, testing, and deployment across platforms
|
|
||||||
- Implemented security hardening including certificate transparency, key management, and secure protocols
|
|
||||||
|
|
||||||
### Security Software Engineer | Parsons
|
|
||||||
\resumedate{**April 2018 – November 2020**}
|
|
||||||
|
|
||||||
- Designed and built back-end services supporting concurrent multi-user access with role-based access control
|
|
||||||
- Implemented REST APIs for file management with web interfaces and CLIs
|
|
||||||
- Managed relational databases (SQL Server, MySQL) with advanced indexing and optimization strategies
|
|
||||||
- Developed data deduplication logic and custom serialization protocols for network optimization
|
|
||||||
- Implemented LDAP integration for enterprise authentication systems
|
|
||||||
|
|
||||||
### Security Software Engineer | NSA
|
|
||||||
\resumedate{**November 2011 – April 2018**}
|
|
||||||
|
|
||||||
- Designed and maintained relational databases (MySQL) holding thousands of records with complex queries and optimization
|
|
||||||
- Built REST JSON APIs for real-time data transfer between web interfaces and backend services
|
|
||||||
- Implemented query optimization and indexing strategies reducing latency by 50%+
|
|
||||||
- Developed full-stack web applications using JavaScript, JQuery, PHP, and Python on backend (Tomcat, Apache, Nginx)
|
|
||||||
- Designed dynamic user interfaces for data exploration and visualization
|
|
||||||
- Deployed backend systems serving thousands of concurrent users across distributed infrastructure
|
|
||||||
|
|
||||||
### Software Developer | Salisbury University
|
|
||||||
\resumedate{**November 2006 – May 2008**}
|
|
||||||
|
|
||||||
- Built backend systems for risk assessment application with real-time data processing and reporting
|
|
||||||
- Designed database schemas and implemented data storage solutions
|
|
||||||
- Collaborated with Geographic Information Systems team on data integration
|
|
||||||
|
|
||||||
## Education
|
|
||||||
|
|
||||||
**Master of Science in Computer Science** | University of Maryland Baltimore Campus (2013)
|
|
||||||
- Thesis: "Stateless Detection of Malicious Traffic: Emphasis on User Privacy"
|
|
||||||
|
|
||||||
**Bachelor of Science in Computer Science** | Salisbury University (2009)
|
|
||||||
- Graduated Magna Cum Laude
|
|
||||||
|
|
||||||
## Certifications
|
|
||||||
|
|
||||||
- CompTIA Security+ (Expired 04/04/2024)
|
|
||||||
|
|
||||||
## Open Source & Projects
|
|
||||||
|
|
||||||
- **sjles-pta-vote** (Go, TypeScript, React) - Full-stack community voting platform with React frontend and REST API backend
|
|
||||||
- **baseball-nn** (Python) - Machine learning project demonstrating data pipeline development
|
|
||||||
- **testct** & **ctclient** (Rust) - Certificate transparency testing, validation, and monitoring tools
|
|
||||||
@@ -1,84 +0,0 @@
|
|||||||
---
|
|
||||||
name: Paul Halvorsen
|
|
||||||
keywords: backend engineer, distributed systems, Python, GoLang, performance optimization, CI/CD, Redis, Elasticsearch, AWS, API design, scale, testing, TDD
|
|
||||||
left-column:
|
|
||||||
- 'Sr Backend Engineer'
|
|
||||||
- 'Email: [paul.halvorsen@pm.me](mailto:paul.halvorsen@pm.me)'
|
|
||||||
- 'Phone: +1-410-236-4665'
|
|
||||||
right-column:
|
|
||||||
- 'LinkedIn: [www.linkedin.com/in/paul-halvorsen](www.linkedin.com/in/paul-halvorsen)'
|
|
||||||
- 'Git: [https://git.halvo.me/paul](https://git.halvo.me/paul)'
|
|
||||||
- 'Blog: [https://flow.halvo.me](https://flow.halvo.me)'
|
|
||||||
---
|
|
||||||
|
|
||||||
# Summary
|
|
||||||
|
|
||||||
Backend engineer with 15+ years building systems at scale. Expert in designing distributed systems that process billions of events daily with focus on performance, reliability, and maintainability. Polyglot developer (Python, GoLang, C, Rust) comfortable learning new languages and frameworks. Proven track record of end-to-end ownership in high-autonomy environments, from architecture to production support. Passionate about clean code, testing, and pushing systems to their limits.
|
|
||||||
|
|
||||||
# Work Experience
|
|
||||||
|
|
||||||
## Abnormal AI
|
|
||||||
|
|
||||||
**Software Engineer**: Jan 2026 - Present (Remote)
|
|
||||||
|
|
||||||
- **Infrastructure at Scale**: Build and maintain 10 Kubernetes clusters across US East, US West, EU West, and government regions with auto-scaling and sophisticated deployment pipelines
|
|
||||||
- **Distributed Data Systems**: Architect and maintain services that aggregate real-time and long-term storage for multiple customers simultaneously
|
|
||||||
- Python and GoLang microservices
|
|
||||||
- Comprehensive pytest-driven test coverage and unit testing at all layers
|
|
||||||
- Designed for auto-scaling to increase efficiency and reduce costs
|
|
||||||
- Implemented compression strategies for large-scale data management
|
|
||||||
- **API & Job Systems**: Build cron job orchestration in Kubernetes, manage RBAC across infrastructure
|
|
||||||
- **Ownership**: Own meaningful outcomes across full stack - design, implementation, deployment, monitoring
|
|
||||||
- **Collaboration**: Heavy inter-team communication in monorepo environment with shared ownership model
|
|
||||||
- **Team**: Work with 5-person engineering team in flat, high-trust structure
|
|
||||||
|
|
||||||
## Binary Defense
|
|
||||||
|
|
||||||
**Sr Software Engineer**: April 2022 - Oct 2025
|
|
||||||
|
|
||||||
- **Large-Scale Backend Systems**: Engineered systems serving Fortune 500 companies with thousands of endpoints, handling billions of events daily
|
|
||||||
- **Performance Optimization** - Demonstrated deep expertise in identifying and eliminating bottlenecks:
|
|
||||||
- Reduced CPU usage by 90% through intelligent filtering of previously observed issues
|
|
||||||
- Reduced memory consumption by 60% using regex patterns and targeted filtering
|
|
||||||
- Reduced network traffic by 80% through data transformation and optimization
|
|
||||||
- Reduced disk storage by 20% by converting multiple string patterns to compiled regex
|
|
||||||
- **Distributed Event Processing**: Built multi-platform event streaming libraries (Windows, Linux, macOS) with event-driven architecture watching filesystem, user, Windows events, and network changes
|
|
||||||
- White/blacklist systems with complex filtering logic
|
|
||||||
- Data sanitization, decoration, and serialization for backend transmission
|
|
||||||
- De-duplication to reduce network load and backend storage costs
|
|
||||||
- **Infrastructure & Deployment**: GitLab CI/CD pipelines for cross-platform testing and deployment (Docker, Windows VMs, macOS)
|
|
||||||
- Integration testing across VMs, temporary servers, and pre-configured environments
|
|
||||||
- Cross-compilation for multiple OS targets (Windows Server 2009-2019, Windows XP-11, Linux, macOS)
|
|
||||||
- **Technology Stack**: Rust (tokio, reqwest, serde), Python (pyenv, pipenv, cython), Docker, SQLite with encryption, Azure API integrations
|
|
||||||
- **Code Quality**: Nextest and unit testing at all layers; writing RFCs and ADRs to drive architectural decisions
|
|
||||||
- **Team Dynamics**: SCRUM-based environment with high code review standards and collaborative architecture discussions
|
|
||||||
|
|
||||||
## Kyrus Tech
|
|
||||||
|
|
||||||
**Sr Software Engineer**: Nov 2020 - April 2022
|
|
||||||
|
|
||||||
- **Distributed Systems Design**: Built covert communication systems with Apache Thrift, HTTPS, and REST APIs routing through multiple layers
|
|
||||||
- Multi-threaded architecture with RSA key exchange and encrypted transfers
|
|
||||||
- C front-end, middleware, Python backend composition
|
|
||||||
- **Test-Driven Development**: Implemented comprehensive testing strategy using C, Python, and Pytest within GitLab CI/CD
|
|
||||||
- **Low-Level Systems**: Router fingerprinting and vulnerability analysis on Android with compact/rolling log aggregation
|
|
||||||
|
|
||||||
# Technical Skills
|
|
||||||
|
|
||||||
**Distributed Systems**: Kubernetes (10+ clusters), microservices architecture, event-driven design, job orchestration, auto-scaling, cross-region deployment
|
|
||||||
|
|
||||||
**Languages**: Python (Advanced), GoLang (Advanced), Rust, C, JavaScript - Quick learner of new languages and frameworks
|
|
||||||
|
|
||||||
**Backend Stack**: REST APIs, Redis, Elasticsearch, Docker, containerization, database design (SQLite, MySQL), encryption (RSA, AES)
|
|
||||||
|
|
||||||
**Testing & Quality**: Pytest, RSpec patterns, TDD methodology, comprehensive test coverage, Factory Bot approach to test data
|
|
||||||
|
|
||||||
**Infrastructure**: Kubernetes, AWS, GitLab CI/CD, Docker, cross-platform deployment, performance profiling and optimization
|
|
||||||
|
|
||||||
**Methodologies**: High-autonomy ownership, end-to-end feature delivery, code review culture, architectural documentation (RFC/ADR), SCRUM
|
|
||||||
|
|
||||||
# Education
|
|
||||||
|
|
||||||
- **University of Maryland Baltimore Campus** - Masters in Computer Science (2013)
|
|
||||||
- Thesis: "Stateless Detection of Malicious Traffic: Emphasis on User Privacy"
|
|
||||||
- **Salisbury University** - Bachelors in Computer Science (2009) - Magna Cum Laude
|
|
||||||
Binary file not shown.
@@ -1,87 +0,0 @@
|
|||||||
---
|
|
||||||
name: Paul Halvorsen
|
|
||||||
keywords: backend engineer, java, go, rest api, sql, microservices, api design, secure systems
|
|
||||||
left-column:
|
|
||||||
- "Email: paul.halvorsen@pm.me"
|
|
||||||
- "Phone: +1-410-236-4665"
|
|
||||||
right-column:
|
|
||||||
- "GitHub: github.com/malwhile"
|
|
||||||
- "LinkedIn: linkedin.com/in/paul-halvorsen"
|
|
||||||
- "Blog: flow.halvo.me"
|
|
||||||
fontsize: 10pt
|
|
||||||
fontenc: T1
|
|
||||||
urlcolor: blue
|
|
||||||
linkcolor: magenta
|
|
||||||
numbersections: false
|
|
||||||
---
|
|
||||||
|
|
||||||
## Professional Summary
|
|
||||||
|
|
||||||
Backend Software Engineer with 15+ years of experience designing and implementing secure, scalable REST APIs and backend systems. Expert in Java, Go, and SQL with proven track record of building high-performance services, optimizing database queries (50%+ improvements), and architecting microservices supporting hundreds of thousands of users. Passionate about clean code, rigorous testing, and solving complex backend challenges.
|
|
||||||
|
|
||||||
## Core Technical Skills
|
|
||||||
|
|
||||||
**Languages:** Java (Advanced), Go (Advanced), Python, Rust, C | **Backend:** REST APIs, microservices architecture, service-oriented design | **Databases:** MySQL, SQLite, SQL (query optimization, indexing, schema design) | **DevOps:** Docker, GitLab CI/CD, automated testing | **Practices:** Test-driven development, code reviews, agile development, secure coding
|
|
||||||
|
|
||||||
## Professional Experience
|
|
||||||
|
|
||||||
### Software Engineer | Abnormal AI
|
|
||||||
\resumedate{**January 2026 – Present**}
|
|
||||||
|
|
||||||
- Design and develop Python-based backend microservices for multi-region distributed systems with auto-scaling capabilities
|
|
||||||
- Build and maintain Docker containerized services and Kubernetes orchestration across 10+ clusters
|
|
||||||
- Develop REST APIs and data aggregation services handling millions of data points at scale
|
|
||||||
- Implement performance optimizations achieving up to 70% efficiency gains
|
|
||||||
- Write comprehensive unit and integration tests; maintain high test coverage
|
|
||||||
|
|
||||||
### Sr Software Engineer | Binary Defense
|
|
||||||
\resumedate{**April 2022 – October 2025**}
|
|
||||||
|
|
||||||
- Architected and implemented backend libraries in Python and Rust for cross-platform services
|
|
||||||
- Designed and built REST APIs for secure communication between distributed client-server systems
|
|
||||||
- Optimized backend services achieving 60-80% improvements in memory and network efficiency
|
|
||||||
- Implemented encrypted database layers (SQLite) with secure key storage
|
|
||||||
- Built comprehensive end-to-end testing frameworks and automated test suites
|
|
||||||
- Developed scalable services using event-driven architecture handling millions of events
|
|
||||||
- Maintained GitLab CI/CD pipelines for compilation, testing, and deployment
|
|
||||||
|
|
||||||
### Security Software Engineer | Parsons
|
|
||||||
\resumedate{**April 2018 – November 2020**}
|
|
||||||
|
|
||||||
- Designed and built backend file storage service supporting concurrent multi-user access with role-based access control
|
|
||||||
- Implemented REST APIs for file management with web and CLI interfaces
|
|
||||||
- Managed relational databases (MySQL) with advanced indexing and query optimization strategies
|
|
||||||
- Developed data deduplication logic and custom serialization protocols for network optimization
|
|
||||||
- Implemented LDAP integration for enterprise authentication systems
|
|
||||||
|
|
||||||
### Security Software Engineer | NSA
|
|
||||||
\resumedate{**November 2011 – April 2018**}
|
|
||||||
|
|
||||||
- Designed and maintained relational databases (MySQL) holding thousands of records with complex queries
|
|
||||||
- Built REST JSON APIs for real-time data transfer between web interfaces and backend services
|
|
||||||
- Implemented query optimization and indexing strategies reducing query latency by 50%+
|
|
||||||
- Developed backend web applications using Java, Python, and PHP on application servers (Tomcat, Apache, Nginx)
|
|
||||||
- Designed and deployed secure communication protocols and custom serialization formats
|
|
||||||
- Built backend systems serving thousands of concurrent users across distributed infrastructure
|
|
||||||
- Implemented security hardening including encrypted storage, secure key exchange, and certificate validation
|
|
||||||
|
|
||||||
### Systems Engineer | NSA
|
|
||||||
\resumedate{**September 2009 – November 2011**}
|
|
||||||
|
|
||||||
- Managed infrastructure supporting 130+ RHEL servers across 10+ systems with multiple services
|
|
||||||
- Developed Python automation scripts for system monitoring, health checks, and remediation
|
|
||||||
- Built reporting systems integrating with REST APIs for real-time alerting and status tracking
|
|
||||||
|
|
||||||
## Education
|
|
||||||
|
|
||||||
**Master of Science in Computer Science** | University of Maryland Baltimore Campus (2013)
|
|
||||||
- Thesis: "Stateless Detection of Malicious Traffic: Emphasis on User Privacy"
|
|
||||||
|
|
||||||
**Bachelor of Science in Computer Science** | Salisbury University (2009)
|
|
||||||
- Graduated Magna Cum Laude
|
|
||||||
|
|
||||||
## Open Source & Projects
|
|
||||||
|
|
||||||
- **sjles-pta-vote** (Go, TypeScript) - Full-stack community voting platform with Go backend and REST APIs
|
|
||||||
- **testct** & **ctclient** (Rust) - Certificate transparency testing, validation, and monitoring tools
|
|
||||||
- **baseball-nn** (Python) - Machine learning project with data pipeline development
|
|
||||||
1247
notes/LINKEDIN-OPTIMIZATION.md
Normal file
1247
notes/LINKEDIN-OPTIMIZATION.md
Normal file
File diff suppressed because it is too large
Load Diff
79
notes/README.md
Normal file
79
notes/README.md
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
# Notes Directory
|
||||||
|
|
||||||
|
Documentation, guidance, and optimization notes for your job search and application workflow.
|
||||||
|
|
||||||
|
These files are committed to git because they're reference materials that help guide your process.
|
||||||
|
|
||||||
|
## Files
|
||||||
|
|
||||||
|
### LINKEDIN-OPTIMIZATION.md
|
||||||
|
Complete audit and optimization strategy for your LinkedIn profile.
|
||||||
|
|
||||||
|
**Sections:**
|
||||||
|
- Profile score (current: 96 followers, 0 posts)
|
||||||
|
- 10-point scoring system for each section
|
||||||
|
- Gap analysis and improvement recommendations
|
||||||
|
- Action items for each profile section
|
||||||
|
- Skills analysis and missing keywords
|
||||||
|
- Experience description templates
|
||||||
|
- Content strategy recommendations
|
||||||
|
|
||||||
|
**Use this to:**
|
||||||
|
- Improve your LinkedIn visibility to recruiters
|
||||||
|
- Add missing skills and keywords
|
||||||
|
- Write compelling experience descriptions
|
||||||
|
- Plan content strategy for engagement
|
||||||
|
|
||||||
|
**Related:** See `/search/` for discovered positions and `/applications/` for submitted applications.
|
||||||
|
|
||||||
|
## Adding New Notes
|
||||||
|
|
||||||
|
When creating optimization or guidance documents:
|
||||||
|
|
||||||
|
1. **Profile/Platform Optimization:** Put in this folder
|
||||||
|
- LinkedIn optimization strategies
|
||||||
|
- Resume optimization guides
|
||||||
|
- Cover letter best practices
|
||||||
|
- Interview preparation guides
|
||||||
|
|
||||||
|
2. **Process Documentation:** Put in this folder
|
||||||
|
- Workflow guides (not skill-specific)
|
||||||
|
- Strategy documents
|
||||||
|
- Best practices
|
||||||
|
- Lessons learned
|
||||||
|
|
||||||
|
3. **Skill Documentation:** Keep in `.claude/skills/`
|
||||||
|
- Skill-specific guides (in each skill folder)
|
||||||
|
- Search workflows (`job-search/SEARCH-STRATEGY.md`)
|
||||||
|
- Resume building workflows (`build-resume/BUILD-RESUME-WORKFLOW.md`)
|
||||||
|
- Checklists and templates
|
||||||
|
|
||||||
|
4. **Ephemeral Output:** Put in other folders
|
||||||
|
- Search results → `/search/`
|
||||||
|
- Job applications → `/applications/`
|
||||||
|
- Job boards reference → `/search/` or `.claude/skills/job-search/`
|
||||||
|
|
||||||
|
## Folder Organization
|
||||||
|
|
||||||
|
```
|
||||||
|
/home/paul/Public/resume/
|
||||||
|
├── notes/ ← This folder
|
||||||
|
│ ├── README.md
|
||||||
|
│ ├── LINKEDIN-OPTIMIZATION.md
|
||||||
|
│ └── [other optimization docs]
|
||||||
|
├── search/ ← Search results (not committed)
|
||||||
|
├── applications/ ← Job applications (not committed)
|
||||||
|
├── .claude/
|
||||||
|
│ └── skills/
|
||||||
|
│ ├── build-resume/ ← Resume building skill docs
|
||||||
|
│ └── job-search/ ← Job search skill docs
|
||||||
|
└── [project files]
|
||||||
|
```
|
||||||
|
|
||||||
|
## Current Contents
|
||||||
|
|
||||||
|
- **LINKEDIN-OPTIMIZATION.md** — Profile optimization audit and action plan
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Last Updated:** March 18, 2026
|
||||||
@@ -374,9 +374,11 @@ rust, cargo, python, c, docker, containers, TDD, test driven development, pytest
|
|||||||
|
|
||||||
## Open Source & Personal Projects
|
## Open Source & Personal Projects
|
||||||
|
|
||||||
- **testct** & **ctclient** (Rust) - Certificate Transparency testing, validation, and monitoring tools
|
- **testct** & **ctclient** (Rust) - Certificate Transparency testing, validation, and monitoring tools; forked and enhanced for production monitoring scenarios
|
||||||
- **baseball-nn** (Python) - Machine learning project demonstrating AI-assisted development with Claude Code
|
|
||||||
- **sjles-pta-vote** (Go, TypeScript, React) - Full-stack community voting platform for school PTA organization, leveraging Claude Code for planning, code reviews, and development
|
- **sjles-pta-vote** (Go, TypeScript, React) - Full-stack community voting platform for school PTA organization, leveraging Claude Code for planning, code reviews, and development
|
||||||
|
- **baseball-nn** (Python) - Machine learning project demonstrating AI-assisted development with Claude Code for neural network training and prediction
|
||||||
|
- **date-scanned-pics** (Python) - EXIF metadata utility for organizing and dating scanned photograph collections; automatically processes JPG files with date-encoded filenames and updates metadata
|
||||||
|
- **task-organizer-assignment** (Common Lisp) - Recursive algorithm implementation solving task dependency ordering problem; demonstrates functional programming patterns and Docker-based execution
|
||||||
|
|
||||||
## Miscellaneous
|
## Miscellaneous
|
||||||
|
|
||||||
|
|||||||
@@ -1,103 +1,123 @@
|
|||||||
---
|
---
|
||||||
name: Paul Halvorsen
|
name: Paul Halvorsen
|
||||||
keywords: rust, cargo, python, c, docker, containers, TDD, test driven development, pytest, CI/CD, JavaScript, JQuery, PHP, MySQL, rest, API, JSON, XML, git, GitLab, nginx, remote, testing
|
keywords: software engineer, python, golang, rust, java, c, javascript, docker, kubernetes, aws, ci/cd, testing, rest api, mysql, distributed systems
|
||||||
left-column:
|
left-column:
|
||||||
- 'Sr Software Developer'
|
- "Email: paul.halvorsen@pm.me"
|
||||||
- 'Email: [paul.halvorsen@pm.me](mailto:paul.halvorsen@pm.me)'
|
- "Phone: +1-410-236-4665"
|
||||||
- 'Phone: +1-410-236-4665'
|
|
||||||
- 'Last Updated: \today'
|
|
||||||
right-column:
|
right-column:
|
||||||
- 'Personal Blog: [https://flow.halvo.me](https://flow.halvo.me)'
|
- "GitHub: github.com/malwhile"
|
||||||
- 'LinkedIn: [www.linkedin.com/in/paul-halvorsen](www.linkedin.com/in/paul-halvorsen)'
|
- "LinkedIn: linkedin.com/in/paul-halvorsen"
|
||||||
- 'Git Repo: [https://git.halvo.me/paul](https://git.halvo.me/paul)'
|
- "Blog: flow.halvo.me"
|
||||||
- 'Citizen of the United States'
|
fontsize: 10pt
|
||||||
|
fontenc: T1
|
||||||
|
urlcolor: blue
|
||||||
|
linkcolor: magenta
|
||||||
|
numbersections: false
|
||||||
---
|
---
|
||||||
|
|
||||||
# Summary
|
## Summary
|
||||||
|
|
||||||
I'm a Software Engineer with over 14 years development and 18 years professional experience, with exposure to Rust, C, Python, PHP, Go, JavaScript, Java, and C++ languages; various SQL DBs; tokio, JQuery, and Pytest frameworks; Docker and GitLab CI/CD; and Rest API, NATS, JSON, XML, and nginx technologies.
|
Software engineer with 15+ years of development experience building scalable systems and applications. Expertise in Python, Go, Rust, Java, and C; REST APIs; database design; and performance optimization. Experience across infrastructure, backend systems, and full-stack development. Strong foundation in automated testing, CI/CD pipelines, and distributed systems.
|
||||||
|
|
||||||
# Work Experience
|
## Technical Skills
|
||||||
|
|
||||||
## Binary Defense
|
**Languages:** Python, Go, Rust, Java, C, C++, JavaScript, PHP
|
||||||
|
|
||||||
**Sr Software Engineer**: April 2022 - Oct 2025
|
**Databases:** MySQL, SQLite, Postgres
|
||||||
|
|
||||||
- Rust development including: tokio (test), reqwest, anyhow, serde, windows, cargo, cmake, and WIX
|
**Infrastructure & Tools:** Docker, Kubernetes, AWS, GitLab CI/CD, Git, Pytest, automated testing
|
||||||
- Python development using pyenv, pipenv, cython, docker, GitLab pipelines, and static compilation
|
|
||||||
- Develop security alarms for Windows, Linux (Debian and RedHat), and MacOS: Event driven by Windows Events, file and directory updates, and network connections
|
|
||||||
- Written RFC and ADR to drive design and decision making on project direction
|
|
||||||
- Design and build encrypted SQLite DB (configuration and cache), network containment, and secure key exchange and authentication
|
|
||||||
- Design and build HTTP and NATS Rest API for receiving configuration (JSON) and sending data to backend servers and Microsoft Azure
|
|
||||||
- Aid in distributed deployment to dozens of customers with hundreds of endpoints
|
|
||||||
|
|
||||||
## Kyrus Tech
|
**Specializations:** Systems programming, API design, performance optimization, security, TDD
|
||||||
|
|
||||||
**Sr Software Engineer**: Nov 2020 - April 2022
|
## Experience
|
||||||
|
|
||||||
- Perform test driven development: C, Python/Pytest, Docker, GitLab CI/CD, Ghidra
|
### Abnormal AI
|
||||||
- Build covert communications and file transfers proxy: HTTPS, Apache Thrift, Rest API
|
**Software Engineer** | \resumedate{**January 2026 – Present**}
|
||||||
- Design compact router fingerprinting and vulnerability analysis: Android, TCP/IP, StreamCypher
|
|
||||||
- Modify C code to suppress system logging in various Linux Kernel versions
|
|
||||||
|
|
||||||
## Parsons
|
- Microservices and data aggregation systems serving customers across US, EU, and government regions
|
||||||
|
- Python and Go backend services; REST APIs and data processing pipelines
|
||||||
|
- Kubernetes infrastructure: 10 auto-scaling clusters in AWS
|
||||||
|
- Real-time and long-term data management; aggregation pipelines for efficiency
|
||||||
|
- Performance optimization through compression and smart scaling strategies
|
||||||
|
- Cross-team collaboration in monorepo environment
|
||||||
|
- Team of 5 engineers delivering features and platform reliability
|
||||||
|
|
||||||
**Cyber Security Software Engineer**: Apr 2018 - Nov 2020
|
### Binary Defense
|
||||||
|
**Sr Software Engineer** | \resumedate{**April 2022 – October 2025**}
|
||||||
|
|
||||||
- Develop covert Windows application: C, C++, Python
|
- Applications protecting thousands of Fortune 500 company endpoints across Windows, Linux, and macOS
|
||||||
- Build modular solution for plugin architecture and distributed deployment
|
- Rust development: tokio, cargo, cross-compilation, unit testing
|
||||||
- Design custom API for minimal communications on limited bandwidth
|
- Python microservices: REST APIs, event aggregation, data pipelines
|
||||||
- Encrypt storage and comms using AES shared key to maintain confidentiality and integrity
|
- Performance optimization: reduced CPU 90%, memory 60%, network traffic 80%
|
||||||
- Build back-end service for file storage and search: Java, Tomcat, NiagaraFiles (NiFi), nginx, Hadoop, MySQL, LDAP, RBAC
|
- Encrypted SQLite databases and secure key storage
|
||||||
- Create API for uploading files via web interface or CLI
|
- GitLab CI/CD pipelines with Docker (Linux/Windows) and VM testing
|
||||||
- Generate metadata for searching
|
- Public key pinning and certificate transparency for secure API design
|
||||||
|
- Designed RFCs and architecture decision records driving technical direction
|
||||||
|
|
||||||
## NSA
|
### Kyrus Tech
|
||||||
|
**Sr Software Engineer** | \resumedate{**November 2020 – April 2022**}
|
||||||
|
|
||||||
**Security Software Engineer**: Nov 2011 - Apr 2018
|
- Test-driven development: C, Python/Pytest, Docker, GitLab CI/CD
|
||||||
|
- Covert communications proxy: HTTPS, Apache Thrift, REST APIs
|
||||||
|
- Router fingerprinting and vulnerability analysis on Android platforms
|
||||||
|
- Linux kernel modifications for system monitoring
|
||||||
|
|
||||||
- RedTeam DevOps development of browser enumeration, manipulation, and exploitation: PHP, JavaScript, JQuery, CSS, Python, MySQL, Java, Apache, Tomcat, Linux, Windows, Chrome, Firefox, Safari, IE, Edge
|
### Parsons
|
||||||
- Design Rest and JSON API to transfer data between targets, server, and UI
|
**Cyber Security Software Engineer** | \resumedate{**April 2018 – November 2020**}
|
||||||
- Distribute covert JavaScript to targets across US government networks for enumeration and exploitation
|
|
||||||
- Design front-end to provide a dynamic UI with real time target data, graphs, and charts
|
|
||||||
- Design MySQL database to hold and quickly query enumeration and exploitation data
|
|
||||||
- Advise and develop vulnerability mitigation strategies for various military and government customers
|
|
||||||
- Train and provide SOPs to NSA RedTeam operators for various tools
|
|
||||||
|
|
||||||
**Systems Engineer**: Sept 2009 - Nov 2011
|
- Modular Windows application in C, C++, Python with distributed plugin architecture
|
||||||
|
- Custom API design for minimal bandwidth communications
|
||||||
|
- AES-encrypted storage and communications
|
||||||
|
- Backend file storage service: Java, Tomcat, NiFi, nginx, Hadoop, MySQL, LDAP, RBAC
|
||||||
|
- File upload APIs and metadata generation for search functionality
|
||||||
|
|
||||||
- Deploy, maintain, and monitor 30+ systems with 130+ Red Hat Enterprise Linux (RHEL) servers: LDAP, DNS, Apache, NiFi, Hadoop, Apache, Puppet, DHCP, PXE
|
### NSA
|
||||||
- Develop and deploy monitoring, reporting, and issue correcting scripts: Python
|
**Security Software Engineer** | \resumedate{**November 2011 – April 2018**}
|
||||||
- Organize, train, and participate in team performing 24x7 call-in rotation
|
|
||||||
- Responsible for 5+ domestic and foreign system deployments
|
|
||||||
|
|
||||||
## Salisbury University
|
- Browser security platform: PHP, JavaScript, jQuery, Python, MySQL, Java
|
||||||
|
- REST and JSON APIs for data transfer between targets and backend servers
|
||||||
|
- Dynamic UI with real-time data visualization, graphs, and charts
|
||||||
|
- MySQL database design and optimization for enumeration and exploitation data
|
||||||
|
- Vulnerability mitigation strategies for military and government customers
|
||||||
|
- Training and documentation for operators and developers
|
||||||
|
|
||||||
**Software Developer**: Nov 2006 - May 2008
|
**Systems Engineer** | \resumedate{**September 2009 – November 2011**}
|
||||||
|
|
||||||
- Funded through the Wallops Flight Facility (NASA)
|
- Deployment and maintenance of 30+ systems with 130+ RHEL servers
|
||||||
- Provide simplified UI and scenario builder for the Satellite Tool Kit (STK): Managed C++
|
- LDAP, DNS, Apache, NiFi, Hadoop, Puppet, DHCP, PXE services
|
||||||
- Design risk assessment scenarios for launch vehicles and UAVs over the DELMARVA peninsula
|
- Python monitoring, reporting, and issue correction scripts
|
||||||
- Collaborate with Geographic Information Science (GIS) for mapping
|
- 24x7 call-in rotation rotation coordination and team training
|
||||||
|
|
||||||
**Lab Administrator**: Sept 2007 - May 2009
|
### Salisbury University
|
||||||
|
|
||||||
- Support Math and CS departments at SU
|
**Software Developer** | \resumedate{**November 2006 – May 2008**}
|
||||||
- Maintain the Linux labs on campus: dual boot OpenSUSE, WindowsXP, and OpenSUSE server
|
|
||||||
- Perform backups, updates, user management (LDAP), disk quotas, and remote access
|
|
||||||
|
|
||||||
# Education
|
- Simplified UI and scenario builder for Satellite Tool Kit (STK) in Managed C++
|
||||||
|
- Risk assessment scenarios for launch vehicles and UAVs
|
||||||
|
- GIS collaboration for mapping and visualization
|
||||||
|
|
||||||
- **University of Maryland Baltimore Campus**: Masters in Computer Science; 2013. Thesis: "Stateless Detection of Malicious Traffic: Emphasis on User Privacy"
|
**Lab Administrator** | \resumedate{**September 2007 – May 2009**}
|
||||||
- **Salisbury University**: Bachelors in Computer Science, Minor in Math; 2009. Magna Cum-Laude
|
|
||||||
- **Security+** (Expired): ID: COMP001021281239; Exp Date: 04/04/2024
|
|
||||||
- **Royal Military College (RMC Canada)**: Training in OpenBSD development and administration
|
|
||||||
|
|
||||||
# Miscellaneous
|
- Linux lab maintenance: dual boot OpenSUSE/WindowsXP, server administration
|
||||||
|
- Backups, updates, user management (LDAP), disk quotas, remote access
|
||||||
|
|
||||||
- **RedBlue Conference**: Presented combination web enumeration/exploitation tool
|
## Open Source & Personal Projects
|
||||||
- **National Conference for Undergrad Research (NCUR)**: Presented development of STK scenario building and manipulation
|
|
||||||
- **SANS Courses**: Staying up-to-date on security research
|
|
||||||
- **Homelab**: Proxmox running test VMs, email, cloud storage, gitea, DNS, multimedia, genealogy, and static web pages
|
|
||||||
- **Web Admin for PTA**: Setup and maintain WordPress pages, calendar, and blog
|
|
||||||
|
|
||||||
|
- **testct & ctclient** (Rust) – Certificate Transparency testing and monitoring tools
|
||||||
|
- **sjles-pta-vote** (Go, TypeScript, React) – Full-stack community voting platform
|
||||||
|
- **baseball-nn** (Python) – Machine learning project with neural networks
|
||||||
|
- **date-scanned-pics** (Python) – EXIF metadata utility for photo organization
|
||||||
|
|
||||||
|
## Education
|
||||||
|
|
||||||
|
- **Master of Science, Computer Science** – University of Maryland Baltimore County (2013)
|
||||||
|
Thesis: "Stateless Detection of Malicious Traffic: Emphasis on User Privacy"
|
||||||
|
- **Bachelor of Science, Computer Science** – Salisbury University (2009)
|
||||||
|
Magna Cum Laude
|
||||||
|
- **Royal Military College (RMC Canada)** – Training in OpenBSD development and administration
|
||||||
|
|
||||||
|
## Additional
|
||||||
|
|
||||||
|
- Presentations: RedBlue Conference (web enumeration/exploitation), NCUR (STK scenario development)
|
||||||
|
- SANS courses for current security research
|
||||||
|
- Homelab: Proxmox virtualization, email, cloud storage, DNS, multimedia, genealogy, web services
|
||||||
|
|||||||
Binary file not shown.
@@ -1,102 +0,0 @@
|
|||||||
---
|
|
||||||
name: Paul Halvorsen
|
|
||||||
keywords: python, backend developer, REST API, database management, security, MySQL, git, docker, testing, performance optimization
|
|
||||||
left-column:
|
|
||||||
- "Email: paul.halvorsen@pm.me"
|
|
||||||
- "Phone: +1-410-236-4665"
|
|
||||||
right-column:
|
|
||||||
- "GitHub: github.com/malwhile"
|
|
||||||
- "LinkedIn: linkedin.com/in/paul-halvorsen"
|
|
||||||
- "Blog: flow.halvo.me"
|
|
||||||
fontsize: 10pt
|
|
||||||
fontenc: T1
|
|
||||||
urlcolor: blue
|
|
||||||
linkcolor: magenta
|
|
||||||
numbersections: false
|
|
||||||
---
|
|
||||||
|
|
||||||
## Professional Summary
|
|
||||||
|
|
||||||
Backend Engineer with 15+ years of experience developing scalable server-side applications, REST APIs, and database systems. Expert in Python, MySQL, and test-driven development with a proven track record of optimizing backend performance and implementing security best practices. Passionate about building reliable infrastructure and writing clean, testable code.
|
|
||||||
|
|
||||||
## Core Technical Skills
|
|
||||||
|
|
||||||
**Languages:** Python (Advanced), Rust, C, GoLang | **Databases:** MySQL, SQLite, SQL/NoSQL | **Backend:** REST APIs, JSON, Nginx | **DevOps:** Docker, Git/GitLab CI/CD | **Testing:** Pytest, Unit Testing, Integration Testing | **Security:** Encryption (RSA, AES), Authentication, Data Protection | **Frameworks & Tools:** Tokio, TDD, pytest
|
|
||||||
|
|
||||||
## Professional Experience
|
|
||||||
|
|
||||||
### Software Engineer | Abnormal AI
|
|
||||||
\resumedate{**January 2026 – Present**}
|
|
||||||
|
|
||||||
- Develop and maintain Python-based data aggregation services for multi-region deployments (US East, US West, EU West)
|
|
||||||
- Design and optimize real-time storage and long-term data management systems handling customer data at scale
|
|
||||||
- Implement performance optimizations including auto-scaling and compression, improving efficiency by up to 70%
|
|
||||||
- Write comprehensive unit and integration tests using pytest; maintain high test coverage
|
|
||||||
- Collaborate with 5-person team on monorepo architecture and continuous integration pipelines
|
|
||||||
- Build and manage infrastructure using GoLang and Python for data pipeline orchestration
|
|
||||||
|
|
||||||
### Sr Software Engineer | Binary Defense
|
|
||||||
\resumedate{**April 2022 – October 2025**}
|
|
||||||
|
|
||||||
- Architected and implemented Python backend libraries for cross-platform event monitoring (Windows, Linux, macOS)
|
|
||||||
- Designed REST APIs for secure communication between client endpoints and backend services
|
|
||||||
- Optimized backend services, achieving 60-80% improvements in memory and network traffic reduction through intelligent filtering and compression
|
|
||||||
- Implemented encrypted SQLite database layers with secure key storage (DPAPI, freedesktop.secrets)
|
|
||||||
- Built end-to-end integration testing framework spinning up pre-configured VMs and automated test servers
|
|
||||||
- Executed performance profiling and optimization on data processing pipelines handling millions of events
|
|
||||||
- Developed Python libraries for network traffic monitoring with event-driven architecture and regex-based filtering
|
|
||||||
- Maintained CI/CD pipelines (GitLab) for compilation, testing, and deployment across platforms
|
|
||||||
- Implemented security hardening: public key pinning, certificate transparency validation, secure key exchange protocols
|
|
||||||
|
|
||||||
### Security Software Engineer | Parsons
|
|
||||||
\resumedate{**April 2018 – November 2020**}
|
|
||||||
|
|
||||||
- Designed and built back-end file storage service supporting concurrent multi-user access with role-based access control (RBAC)
|
|
||||||
- Implemented REST API for file management with web and CLI interfaces
|
|
||||||
- Managed MySQL database with advanced indexing and optimization strategies
|
|
||||||
- Developed data deduplication logic to eliminate redundant storage and support multi-user read access
|
|
||||||
- Built custom serialization protocol optimizing network traffic and data transfer
|
|
||||||
- Implemented LDAP integration for enterprise user authentication
|
|
||||||
|
|
||||||
### Security Software Engineer | NSA
|
|
||||||
\resumedate{**November 2011 – April 2018**}
|
|
||||||
|
|
||||||
- Designed and maintained MySQL databases holding CVE data, exploit information, and system fingerprints
|
|
||||||
- Built REST JSON APIs for real-time data transfer between web interfaces and backend services
|
|
||||||
- Implemented query optimization and indexes reducing query latency by 50%+
|
|
||||||
- Developed backend web services using PHP, Python, and Java supporting thousands of concurrent users
|
|
||||||
- Created secure communication protocols and custom serialization for limited-bandwidth environments
|
|
||||||
- Deployed backend systems on Tomcat, Apache, and Nginx across Linux and Windows platforms
|
|
||||||
|
|
||||||
### Systems Engineer | NSA
|
|
||||||
\resumedate{**September 2009 – November 2011**}
|
|
||||||
|
|
||||||
- Managed infrastructure supporting 130+ RHEL servers across 10+ systems
|
|
||||||
- Developed Python automation scripts for system monitoring, health checks, and remediation
|
|
||||||
- Built reporting systems integrating with Web APIs for real-time alerting and status tracking
|
|
||||||
|
|
||||||
### Software Developer | Salisbury University
|
|
||||||
\resumedate{**November 2006 – May 2008**}
|
|
||||||
|
|
||||||
- Built C++ backend for risk assessment system supporting real-time data processing and reporting
|
|
||||||
- Designed database schema for scenario storage and analysis
|
|
||||||
- Collaborated with Geographic Information Systems team to integrate maps and spatial data
|
|
||||||
|
|
||||||
## Education
|
|
||||||
|
|
||||||
**Master of Science in Computer Science** | University of Maryland Baltimore Campus (2013)
|
|
||||||
- Thesis: "Stateless Detection of Malicious Traffic: Emphasis on User Privacy"
|
|
||||||
|
|
||||||
**Bachelor of Science in Computer Science** | Salisbury University (2009)
|
|
||||||
- Graduated Magna Cum Laude
|
|
||||||
|
|
||||||
## Security Clearance & Certifications
|
|
||||||
|
|
||||||
- CompTIA Security+ (Expired 04/04/2024)
|
|
||||||
- Expired TS/SCI Clearance
|
|
||||||
|
|
||||||
## Open Source & Projects
|
|
||||||
|
|
||||||
- **testct** & **ctclient** (Rust) - Certificate transparency testing, validation, and monitoring tools
|
|
||||||
- **baseball-nn** (Python) - Machine learning project using TDD and pytest
|
|
||||||
- **sjles-pta-vote** (Go, TypeScript) - Full-stack community platform with REST APIs
|
|
||||||
36
templates/cover-letter.latex
Normal file
36
templates/cover-letter.latex
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
% Cover Letter LaTeX Template for Pandoc
|
||||||
|
\documentclass[$if(fontsize)$$fontsize$$else$11pt$endif$,letterpaper]{article}
|
||||||
|
|
||||||
|
\usepackage{hyperref}
|
||||||
|
\usepackage{geometry}
|
||||||
|
\usepackage[parfill]{parskip}
|
||||||
|
\usepackage{lmodern}
|
||||||
|
\usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc}
|
||||||
|
\usepackage[utf8]{inputenc}
|
||||||
|
|
||||||
|
\hypersetup{
|
||||||
|
colorlinks = true,
|
||||||
|
urlcolor = blue,
|
||||||
|
linkcolor = blue,
|
||||||
|
pdfauthor = {$if(author)$$author$$endif$},
|
||||||
|
pdftitle = {Cover Letter},
|
||||||
|
pdfpagemode = UseNone
|
||||||
|
}
|
||||||
|
|
||||||
|
\geometry{
|
||||||
|
body={6.5in, 9.0in},
|
||||||
|
left=1.0in,
|
||||||
|
top=1.0in
|
||||||
|
}
|
||||||
|
|
||||||
|
\providecommand{\tightlist}{%
|
||||||
|
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
|
||||||
|
|
||||||
|
\pagestyle{empty}
|
||||||
|
\urlstyle{same}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
$body$
|
||||||
|
|
||||||
|
\end{document}
|
||||||
93
templates/jb2resume-ats.latex
Normal file
93
templates/jb2resume-ats.latex
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
% LaTeX Resume Pandoc Template jb2resume-ats.latex
|
||||||
|
%
|
||||||
|
% ATS-optimized variant: single-column linear layout, no multi-column
|
||||||
|
% headers, no decorative fonts or colors. Designed for maximum
|
||||||
|
% compatibility with Applicant Tracking Systems (ATS) and online parsers.
|
||||||
|
%
|
||||||
|
% Based on jb2resume.latex by John Bokma
|
||||||
|
% https://github.com/john-bokma/resume-pandoc
|
||||||
|
|
||||||
|
\documentclass[$if(fontsize)$$fontsize$$else$10pt$endif$,letterpaper]{article}
|
||||||
|
|
||||||
|
\usepackage{hyperref}
|
||||||
|
\usepackage{geometry}
|
||||||
|
\usepackage{enumitem}
|
||||||
|
\usepackage{underscore}
|
||||||
|
\usepackage[parfill]{parskip}
|
||||||
|
\usepackage{lmodern}
|
||||||
|
\usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc}
|
||||||
|
\usepackage[utf8]{inputenc}
|
||||||
|
|
||||||
|
% PDF metadata for parsers
|
||||||
|
\def\name{$name$}
|
||||||
|
|
||||||
|
\hypersetup{
|
||||||
|
colorlinks = true,
|
||||||
|
urlcolor = black,
|
||||||
|
linkcolor = black,
|
||||||
|
pdfauthor = {\name},
|
||||||
|
pdfkeywords = {$keywords$},
|
||||||
|
pdftitle = {\name: Resume},
|
||||||
|
pdfsubject = {Resume},
|
||||||
|
pdfpagemode = UseNone
|
||||||
|
}
|
||||||
|
|
||||||
|
\geometry{
|
||||||
|
body={6.5in, 9.5in},
|
||||||
|
left=1.0in,
|
||||||
|
top=0.75in
|
||||||
|
}
|
||||||
|
|
||||||
|
% Tightlist fix for Pandoc
|
||||||
|
\providecommand{\tightlist}{%
|
||||||
|
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
|
||||||
|
|
||||||
|
% No running header — ATS parsers can misread header/footer text
|
||||||
|
\pagestyle{plain}
|
||||||
|
\thispagestyle{empty}
|
||||||
|
|
||||||
|
% Simple section fonts — no colors, no decorative fonts
|
||||||
|
% Standard serif for maximum parser compatibility
|
||||||
|
\usepackage{sectsty}
|
||||||
|
\sectionfont{\rmfamily\bfseries\large\MakeUppercase}
|
||||||
|
\subsectionfont{\rmfamily\bfseries\normalsize}
|
||||||
|
|
||||||
|
% No section numbering
|
||||||
|
$if(numbersections)$
|
||||||
|
\setcounter{secnumdepth}{5}
|
||||||
|
$else$
|
||||||
|
\setcounter{secnumdepth}{0}
|
||||||
|
$endif$
|
||||||
|
|
||||||
|
% Simple bullet points, no decorative dashes
|
||||||
|
\setlist[itemize]{leftmargin=1.5em, label={\textbullet}, itemsep=1pt, parsep=0pt}
|
||||||
|
\setlist[description]{leftmargin=0em, style=sameline}
|
||||||
|
|
||||||
|
% Standard URL font
|
||||||
|
\urlstyle{same}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
% ---- HEADER: single-column linear layout ----
|
||||||
|
% Name on its own line, then all contact info below linearly.
|
||||||
|
% No minipage / multi-column — critical for ATS parsing.
|
||||||
|
|
||||||
|
{\LARGE\bfseries \name}
|
||||||
|
|
||||||
|
\vspace{4pt}
|
||||||
|
|
||||||
|
$if(left-column)$
|
||||||
|
$for(left-column)$$left-column$ \\
|
||||||
|
$endfor$
|
||||||
|
$endif$
|
||||||
|
$if(right-column)$
|
||||||
|
$for(right-column)$$right-column$ \\
|
||||||
|
$endfor$
|
||||||
|
$endif$
|
||||||
|
|
||||||
|
\vspace{6pt}
|
||||||
|
\rule{\linewidth}{0.6pt}
|
||||||
|
|
||||||
|
$body$
|
||||||
|
|
||||||
|
\end{document}
|
||||||
@@ -71,6 +71,9 @@ $endif$
|
|||||||
% Don't use monospace font for URLs
|
% Don't use monospace font for URLs
|
||||||
\urlstyle{same}
|
\urlstyle{same}
|
||||||
|
|
||||||
|
% Custom command for dates - smaller than headers
|
||||||
|
\newcommand{\resumedate}[1]{{\small #1}}
|
||||||
|
|
||||||
% Better spacing control
|
% Better spacing control
|
||||||
\setlength{\parskip}{0.4em}
|
\setlength{\parskip}{0.4em}
|
||||||
\setlength{\parindent}{0em}
|
\setlength{\parindent}{0em}
|
||||||
|
|||||||
@@ -76,6 +76,9 @@ $endif$
|
|||||||
% Don't use monospace font for URLs
|
% Don't use monospace font for URLs
|
||||||
\urlstyle{same}
|
\urlstyle{same}
|
||||||
|
|
||||||
|
% Custom command for dates - smaller than headers
|
||||||
|
\newcommand{\resumedate}[1]{{\small #1}}
|
||||||
|
|
||||||
\begin{document}
|
\begin{document}
|
||||||
|
|
||||||
% Place name at left
|
% Place name at left
|
||||||
|
|||||||
@@ -1,109 +0,0 @@
|
|||||||
---
|
|
||||||
name: Paul Halvorsen
|
|
||||||
keywords: developer relations, tools, open source, full-stack, AI, Rust, Python, Go, CLI, dashboards, SDK, git, CI/CD, docker, kubernetes, REST API, testing
|
|
||||||
left-column:
|
|
||||||
- "Email: paul.halvorsen@pm.me"
|
|
||||||
- "Phone: +1-410-236-4665"
|
|
||||||
right-column:
|
|
||||||
- "GitHub: github.com/malwhile"
|
|
||||||
- "LinkedIn: linkedin.com/in/paul-halvorsen"
|
|
||||||
- "Blog: flow.halvo.me"
|
|
||||||
fontsize: 10pt
|
|
||||||
fontenc: T1
|
|
||||||
urlcolor: blue
|
|
||||||
linkcolor: magenta
|
|
||||||
numbersections: false
|
|
||||||
---
|
|
||||||
|
|
||||||
# Summary
|
|
||||||
|
|
||||||
Software Engineer with 15+ years of experience building tools, platforms, and infrastructure that developers love. Passionate about creating intuitive developer experiences, from CLI utilities and SDKs to dashboards and REST APIs. Deep background in open-source practices, full-stack development, and infrastructure automation. Currently leveraging AI in daily development workflows. Experienced communicator who translates complex platform capabilities into accessible, understandable solutions for developer audiences.
|
|
||||||
|
|
||||||
# Core Skills
|
|
||||||
|
|
||||||
**Developer Tools & Frameworks:** CLI utilities, REST APIs, SDKs, dashboards, web interfaces, React, TypeScript
|
|
||||||
|
|
||||||
**Languages:** Rust, Python, Go, C, JavaScript, Java
|
|
||||||
|
|
||||||
**Infrastructure & DevOps:** Kubernetes, Docker, GitLab CI/CD, GitHub, Git, Linux (RHEL/Debian/Ubuntu)
|
|
||||||
|
|
||||||
**Specialties:** Open-source development, cross-platform development, full-stack implementation, developer experience design, TDD, AI-augmented workflows
|
|
||||||
|
|
||||||
# Work Experience
|
|
||||||
|
|
||||||
## Abnormal AI
|
|
||||||
|
|
||||||
**Software Engineer**: Jan 2026 - Present
|
|
||||||
|
|
||||||
- Daily experience with AI-augmented development workflows (Claude) for code summarization, planning, and implementation
|
|
||||||
- Design and maintain Kubernetes infrastructure (10+ clusters) supporting real-time data aggregation and long-term storage for customers across US, EU, and government sectors
|
|
||||||
- Build Python and Go services with comprehensive testing; optimize for performance and scalability
|
|
||||||
- Partner with engineering, product, and leadership across cross-functional teams in monorepo environment
|
|
||||||
|
|
||||||
## Binary Defense
|
|
||||||
|
|
||||||
**Sr Software Engineer**: April 2022 - Oct 2025
|
|
||||||
|
|
||||||
- Architected and built cross-platform Rust libraries and SDKs for multi-platform security agent deployed to thousands of customer endpoints (Windows, Linux, macOS)
|
|
||||||
- Designed comprehensive CI/CD pipeline infrastructure (GitLab): Docker containerization, VM testing, automated deployment, and contributed best-practices documentation
|
|
||||||
- Created integration testing framework (Python) with automated VM provisioning, test execution, and environment teardown — enabling developers to test complex scenarios reliably
|
|
||||||
- Wrote RFC and ADR documents to communicate architectural decisions to engineering and leadership teams
|
|
||||||
- Delivered measurable performance improvements: 90% CPU reduction, 60% memory optimization, 80% network traffic decrease through filtering and algorithmic improvements
|
|
||||||
|
|
||||||
## Kyrus Tech
|
|
||||||
|
|
||||||
**Sr Software Engineer**: Nov 2020 - April 2022
|
|
||||||
|
|
||||||
- Built multi-threaded communications libraries (C and Python) with REST API interface for complex network operations
|
|
||||||
- Designed and implemented embedded tool for Android with minimal footprint using low-level networking (TCP/IP, ICMP, DNS)
|
|
||||||
- Applied test-driven development practices across C, Python, and Docker environments with GitLab CI/CD
|
|
||||||
|
|
||||||
## Parsons
|
|
||||||
|
|
||||||
**Cyber Security Software Engineer**: Apr 2018 - Nov 2020
|
|
||||||
|
|
||||||
- Built file storage service with REST API and web UI (Java, Tomcat, nginx, MySQL, LDAP, RBAC) for multi-user file management and search
|
|
||||||
- Designed custom serialization format and API to minimize network traffic across constrained links
|
|
||||||
- Implemented file deduplication and metadata indexing enabling efficient multi-user access and discovery
|
|
||||||
|
|
||||||
## NSA
|
|
||||||
|
|
||||||
**Security Software Engineer**: Nov 2011 - Apr 2018
|
|
||||||
|
|
||||||
- Built full-stack developer platform used by RedTeam operators: frontend (JavaScript, JQuery), backend (PHP, Python), database (MySQL), and infrastructure (Apache, Tomcat, nginx)
|
|
||||||
- Designed REST/JSON API and dynamic web UI providing real-time visibility into data, metrics, CVE lookups, and analytics — functionally an internal developer portal
|
|
||||||
- Created comprehensive documentation: SOPs, operator guides, and onboarding materials that significantly reduced team ramp-up time
|
|
||||||
- Trained new developers and operators, translating complex technical workflows into clear, understandable procedures
|
|
||||||
- Presented tooling to security practitioners at RedBlue Conference; delivered vulnerability mitigation guidance to military and government customers
|
|
||||||
- Maintained database of thousands of records with optimization and indexing for efficient queries
|
|
||||||
|
|
||||||
**Systems Engineer**: Sept 2009 - Nov 2011
|
|
||||||
|
|
||||||
- Maintained 130+ RHEL servers across 30+ systems; wrote Python automation scripts providing self-healing and reporting via Web API
|
|
||||||
- Trained and supervised contractor team of 5 on operations procedures and tooling
|
|
||||||
|
|
||||||
## Salisbury University
|
|
||||||
|
|
||||||
**Software Developer**: Nov 2006 - May 2008
|
|
||||||
|
|
||||||
- Built simplified UI and scenario builder for the Satellite Tool Kit (STK) — a tool making a complex aerospace simulation accessible to non-expert users; Managed C++
|
|
||||||
- Presented at National Conference for Undergraduate Research (NCUR)
|
|
||||||
- Funded through NASA/Wallops Flight Facility
|
|
||||||
|
|
||||||
# Open Source & Personal Projects
|
|
||||||
|
|
||||||
- **testct** & **ctclient** (Rust) — Certificate Transparency testing, validation, and monitoring tools
|
|
||||||
- **sjles-pta-vote** (Go, TypeScript, React) — Full-stack community voting platform for school PTA; demonstrates end-to-end tool-building for developer/end-user experience
|
|
||||||
- **baseball-nn** (Python) — Machine learning project with modern development practices
|
|
||||||
|
|
||||||
# Education
|
|
||||||
|
|
||||||
- **University of Maryland Baltimore Campus**: M.S. Computer Science, 2013
|
|
||||||
- Thesis: "Stateless Detection of Malicious Traffic: Emphasis on User Privacy"
|
|
||||||
- **Salisbury University**: B.S. Computer Science, Minor in Math, 2009 (Magna Cum Laude)
|
|
||||||
|
|
||||||
# Speaking & Engagement
|
|
||||||
|
|
||||||
- **RedBlue Conference**: Presented web security tooling to audience of security practitioners
|
|
||||||
- **NCUR**: Presented STK scenario builder development at National Conference for Undergraduate Research
|
|
||||||
- **Homelab**: Self-hosted open-source ecosystem (gitea, CI, DNS, storage, email, static sites on Proxmox)
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
# Cover Letter: Paul Halvorsen — Software Engineer at Valon
|
|
||||||
|
|
||||||
Dear Hiring Team,
|
|
||||||
|
|
||||||
I'm writing to express my strong interest in the Software Engineer role at Valon. After following your work in fintech and regulated industries, I'm genuinely excited about the opportunity to contribute to ValonOS and help transform how the mortgage industry operates.
|
|
||||||
|
|
||||||
Throughout my 15+ years as a backend engineer, I've spent most of my career building infrastructure for systems that require uncompromising reliability—the kind where failures cascade and impact customers directly. I've built distributed systems handling billions of events daily, engineered APIs serving Fortune 500 companies, and optimized systems that reduced resource consumption by 80-90%. But what excites me most about Valon isn't the scale problem itself—it's that you're solving it *within a regulated industry*. The complexity of federal, state, and agency requirements is a fundamentally different challenge than traditional tech, and that's exactly what I want to learn and master.
|
|
||||||
|
|
||||||
What draws me to Valon specifically is your approach. Most companies try to bolt technology onto broken legacy systems. You built your own mortgage servicing business first—not as a feature, but as a way to deeply understand the problem space. That thinking resonates with me. I've always believed that understanding your domain completely is table stakes for building great software. Your transformation from 0% to 60%+ margins proves that philosophy works. And seeing a team from Stripe, Jane Street, Meta, and Google building something in fintech tells me you've recruited for both technical excellence and the ability to learn complex new domains.
|
|
||||||
|
|
||||||
I'm confident I can succeed in this role. I learn quickly—I've worked across Python, Go, Rust, and C; built systems on Kubernetes, Docker, and GCP; and shipped complex features in distributed systems repeatedly. More importantly, I'm genuinely curious about regulated industries and excited to spend the next few years diving deep into mortgage servicing. I want to be part of a team that's rewriting the playbook for an entire industry.
|
|
||||||
|
|
||||||
I'd love the opportunity to discuss how my background in building reliable, scalable infrastructure can contribute to Valon's mission.
|
|
||||||
|
|
||||||
Thank you for considering my application.
|
|
||||||
|
|
||||||
Warm regards,
|
|
||||||
Paul Halvorsen
|
|
||||||
paul.halvorsen@pm.me
|
|
||||||
+1-410-236-4665
|
|
||||||
@@ -1,75 +0,0 @@
|
|||||||
---
|
|
||||||
name: Paul Halvorsen
|
|
||||||
keywords: software engineer, Python, Kubernetes, distributed systems, Google Cloud, Docker, system design, scalable infrastructure, fintech, API design
|
|
||||||
left-column:
|
|
||||||
- 'Software Engineer'
|
|
||||||
- 'Email: [paul.halvorsen@pm.me](mailto:paul.halvorsen@pm.me)'
|
|
||||||
- 'Phone: +1-410-236-4665'
|
|
||||||
right-column:
|
|
||||||
- 'LinkedIn: [www.linkedin.com/in/paul-halvorsen](www.linkedin.com/in/paul-halvorsen)'
|
|
||||||
- 'Git: [https://git.halvo.me/paul](https://git.halvo.me/paul)'
|
|
||||||
- 'Blog: [https://flow.halvo.me](https://flow.halvo.me)'
|
|
||||||
---
|
|
||||||
|
|
||||||
# Summary
|
|
||||||
|
|
||||||
Full-stack engineer with 15+ years building systems at scale. Deep expertise in distributed systems, Python development, and building robust infrastructure for complex, regulated domains. Proven ability to learn new technologies and problem spaces quickly while maintaining code quality and system reliability. Experience designing and operating systems handling billions of dollars in transactions with zero tolerance for failure. Excited about solving hard problems at the intersection of technology and regulated industries.
|
|
||||||
|
|
||||||
# Work Experience
|
|
||||||
|
|
||||||
## Abnormal AI
|
|
||||||
|
|
||||||
**Software Engineer**: Jan 2026 - Present (Remote)
|
|
||||||
|
|
||||||
- **Large-Scale Infrastructure**: Architect and maintain 10 Kubernetes clusters across multiple regions (US East, US West, EU West, government) with auto-scaling and production-grade reliability requirements
|
|
||||||
- **Python Microservices**: Build and maintain core data aggregation services handling real-time and long-term storage with comprehensive pytest coverage and unit testing throughout
|
|
||||||
- **System Design & Operations**: Design systems that reliably serve multiple customers simultaneously with varying data requirements across geographies
|
|
||||||
- **Performance & Reliability**: Implemented auto-scaling strategies and compression pipelines to increase efficiency and manage costs at scale
|
|
||||||
- **Cross-functional Collaboration**: Work in tight team environment with heavy inter-team communication in monorepo structure; partner with infrastructure, backend, and product teams
|
|
||||||
- **Ownership Model**: Own features end-to-end from design through deployment and monitoring
|
|
||||||
|
|
||||||
## Binary Defense
|
|
||||||
|
|
||||||
**Sr Software Engineer**: April 2022 - Oct 2025
|
|
||||||
|
|
||||||
- **Distributed Event Processing at Scale**: Built systems serving Fortune 500 enterprise customers handling billions of events daily across thousands of endpoints
|
|
||||||
- **Infrastructure & Reliability**: Deployed on Windows, Linux, and macOS with cross-platform testing and reliability as foundational requirement
|
|
||||||
- GitLab CI/CD pipelines for compilation, testing, and deployment
|
|
||||||
- Docker containerization for consistent reproducible builds
|
|
||||||
- **Python Backend Development**: Designed and built multiple production services with focus on performance, reliability, and maintainability
|
|
||||||
- pytest-driven test suite ensuring confidence in changes
|
|
||||||
- Performance optimization: reduced CPU usage 90%, memory usage 60%, network traffic 80%
|
|
||||||
- Built data serialization and transformation pipelines for reliable backend communication
|
|
||||||
- **System Design**: Engineered event-driven architectures handling filesystem, user, and network events with deterministic behavior
|
|
||||||
- **Architecture & Standards**: Wrote RFCs and ADRs to drive technical decisions; contributed to code quality and documentation standards
|
|
||||||
- **Complex Integrations**: Designed secure integrations with Azure and other third-party services
|
|
||||||
- **Team**: Collaborated with experienced engineering team in SCRUM environment with strong code review practices
|
|
||||||
|
|
||||||
## Kyrus Tech
|
|
||||||
|
|
||||||
**Sr Software Engineer**: Nov 2020 - April 2022
|
|
||||||
|
|
||||||
- **Distributed Systems**: Designed and built multi-layered distributed systems with REST APIs and complex routing logic
|
|
||||||
- **Test-Driven Development**: Implemented comprehensive testing strategy using pytest; built infrastructure to enable confident, rapid deployments
|
|
||||||
- **Python & Docker**: Built containerized services leveraging Docker for reproducible deployments
|
|
||||||
- **Low-Level Systems**: Worked on performance-critical code including reverse engineering and systems analysis
|
|
||||||
|
|
||||||
# Technical Skills
|
|
||||||
|
|
||||||
**Languages**: Python (Advanced), GoLang, Rust, C, JavaScript
|
|
||||||
|
|
||||||
**Infrastructure & Cloud**: Kubernetes (10+ production clusters), Google Cloud Platform (GCP), Docker, containerization, system design, microservices architecture
|
|
||||||
|
|
||||||
**Backend Development**: REST APIs, distributed systems design, database design (SQLite, MySQL), event-driven architecture, scalable data pipelines
|
|
||||||
|
|
||||||
**Testing & Quality**: pytest, test-driven development (TDD), comprehensive unit and integration testing, code review culture
|
|
||||||
|
|
||||||
**DevOps & Tools**: GitLab CI/CD, Docker, Kubernetes, monitoring, logging, performance profiling
|
|
||||||
|
|
||||||
**Soft Skills**: Quick learner, cross-functional collaboration, autonomy, code quality focus, rapid iteration
|
|
||||||
|
|
||||||
# Education
|
|
||||||
|
|
||||||
- **University of Maryland Baltimore Campus** - Masters in Computer Science (2013)
|
|
||||||
- Research in distributed systems and network security
|
|
||||||
- **Salisbury University** - Bachelors in Computer Science (2009) - Magna Cum Laude
|
|
||||||
Binary file not shown.
Reference in New Issue
Block a user