Senior Developer — Part-Time Code Reviewer & Architecture Advisor

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Part Time

WAGE / SALARY

16/hr

HOURS PER WEEK

10

DATE UPDATED

Apr 18, 2026

JOB OVERVIEW

Rate: $14–18/hr (starting), with raise to $18/hr at 90 days based on performance
Hours: 10 hrs/week (~43 hrs/month), mostly async with 1-hour weekly sync call
Company: Pharmacy Pearls LLC — US-based pharmacy education company. We run a live LMS serving hundreds of pharmacists preparing for board exams (BCEMP, BCCCP, BCPS), an AI-powered
medical research platform, and an AI podcast pipeline.

---

Why this role exists
We have two excellent full-stack developers who ship production features with Claude Code every day. They do great work — but no one is critically reviewing their code. We need a
senior developer who will block bad PRs, catch architectural mistakes, and mentor the team. This is NOT a feature-coding role. You will review their work, propose architectural
improvements, and make sure our platform doesn't collect tech debt or security holes.

Think of it as the role a staff engineer or tech lead plays — but focused on review and advisory, not building.

---
What you'll do (10 hrs/week)

- Review 4–8 pull requests per week with actual line-level comments (not "LGTM")
- Block PRs that aren't ready — enforce testing, security, and code-quality standards
- 1-hour weekly sync call with the founder + 2 developers (Manila morning, your 8–10 AM)
- Async architecture input on design docs before devs start coding
- Monthly 1-page codebase health report (tech debt, risks, recommendations)
- Answer ad-hoc async questions about security, DB design, auth patterns

What you will NOT do

- Write feature code (our devs handle that)
- Own delivery timelines or sprint planning
- Handle client communication or support

---
Required skills

- 8+ years full-stack JavaScript/TypeScript
- React / Next.js, Node.js, PostgreSQL (production experience, not tutorials)
- Daily Claude Code user — you must use Claude Code yourself. We'll ask to see your setup.
- Code review experience — you have reviewed other developers' PRs and left line-level comments
- Written English at C1/C2 level — your review comments must be clear and professional
- Willingness to push back respectfully — if the founder proposes something bad, you say so

Strongly preferred

- AI/LLM integration experience (Claude API, RAG pipelines, vector databases)
- Drizzle or Prisma ORM
- Supabase, pgvector
- Observability tools (BetterStack, Sentry, Datadog)
- Testing discipline (Vitest, Jest, integration tests with real DBs)
- Security mindset (OWASP familiarity, auth/session patterns)

---
Our stack

TypeScript, React, Next.js, Node.js, PostgreSQL + Drizzle ORM, Supabase, pgvector, Tailwind CSS, BetterStack, Stripe, ClickUp, WordPress (legacy), Claude API, Voyage AI, OpenAI,
Cartesia TTS

---
How to apply

To be considered, include ALL of the following in your application. Applications missing any item will be skipped.

1. Your Claude Code workflow — screenshot of your CLAUDE.md file or a ~/.claude/ directory listing. When do you use Opus vs Sonnet vs Haiku? What slash commands or skills have you
created?
2. A link to one pull request you reviewed where you left at least 5 line-level comments that were not just approvals. If the repo is private, share a redacted screenshot.
3. Answer this in 200 words or less:
"A junior developer on the team opens a 170-file pull request that mixes three unrelated features — a dashboard, a notification system, and a database migration. All tests pass. The
founder wants it shipped this week. What do you do?"
4. Your rate preference between $10/hr and $14/hr, and why you'd accept a part-time retainer vs. a full-time gig.
5. Years of React/Node/TypeScript/PostgreSQL experience — specific numbers per stack.

---
Red flags that will get your application skipped

- Generic "I am hardworking and detail-oriented" cover letters
- No Claude Code evidence
- "LGTM" as your concept of a real code review
- Inflated experience claims (listing "5 years React" with a LinkedIn showing you started it last year)
- Asking to write feature code "to help"

---
What to expect if shortlisted

- 30-minute video interview (we will ask you to share your screen and show Claude Code in action)
- Paid 1-hour code review trial ($20) — you review a real PR from our codebase and leave written comments
- If the trial goes well, we start immediately with a 2-week probation period

Response time: We reply to all qualified applicants within 3 business days. We typically receive 100+ applications within 48 hours, so please make yours specific.

Looking forward to meeting you.

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0008
Controller Execution Time ( Jobseekers / Job )  0.0309
Total Execution Time  0.0322
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,523,384 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Senior-Developer-Part-Time-Code-Reviewer-Architecture-Advisor-1626635
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0249 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0003   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1626635
 LIMIT 1 
0.0003   SELECT *
FROM `employers`
WHERE `employer_id` = 437900
 LIMIT 1 
0.0159   SELECT COUNT(DISTINCT t.id) as cnt
FROM 
`t_thread` `t`
INNER JOIN `t_message` `mON `t`.`id` = `m`.`thread_id`
INNER JOIN `t_message_employer` `eON `m`.`id` = `e`.`message_id`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1626635
AND `misc`.`idIS NULL 
0.0006   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-06-19',ej.date_added) duration_daysDATEDIFF('2026-06-19',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_jobs ej WHERE e.employer_id ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-06-19',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1626635' 
0.0004   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1626635 
0.0008   UPDATE employer_jobs SET hit_counts '***Apr-18-2026=424***Apr-19-2026=142***Apr-20-2026=100***Apr-21-2026=54***Apr-22-2026=21***Apr-23-2026=18***Apr-24-2026=8***Apr-25-2026=12***Apr-26-2026=6***Apr-27-2026=7***Apr-28-2026=8***Apr-29-2026=10***Apr-30-2026=5***May-01-2026=3***May-02-2026=5***May-03-2026=3***May-04-2026=9***May-06-2026=10***May-07-2026=2***May-08-2026=3***May-09-2026=4***May-10-2026=3***May-11-2026=4***May-12-2026=2***May-13-2026=3***May-14-2026=6***May-15-2026=2***May-16-2026=1***May-17-2026=4***May-18-2026=4***May-19-2026=1***May-20-2026=14***May-21-2026=5***May-24-2026=1***May-25-2026=1***May-27-2026=3***May-30-2026=1***May-31-2026=2***Jun-01-2026=7***Jun-02-2026=4***Jun-03-2026=2***Jun-04-2026=2***Jun-05-2026=2***Jun-07-2026=4***Jun-08-2026=2***Jun-09-2026=1***Jun-10-2026=2***Jun-11-2026=6***Jun-12-2026=3***Jun-13-2026=2***Jun-19-2026=1' WHERE job_id'1626635'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Apr-2026=815***May-2026=96***Jun-2026=38' WHERE job_id'1626635'  
0.0012   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1626635' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1626635 
0.0038   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '437900'
AND `date_added` >= '2022-06-08' 
0.0003   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)