For engineers · Contract work packages

The spec is the whole conversation.

Fully specified, fixed-price TypeScript packages. The client's money is in escrow before your package opens, the payout leaves for Wise within 48 hours of merge, and you will never sit on a call with a client — because you will never meet one.

BOUNTY BOARD Sealed bids
Packages
$50 – $1,000 fixed
Payout
Wise, ≤48h from merge
Stack
TypeScript · Node
Mode
Async, written, no calls
Commitment
None — bid what you want
Building the bench now — invites open
$50 – $1,000per package, fixed at award. A $600 package is around two focused days.
48 hoursfrom merge to payout initiated. Not net-30, not “when the client pays.”
Escrow firstNo package opens for work until the client's milestone is funded.
Zero callsNo clients, no interviews, no timesheets, no screenshot trackers.
§ 01

How a package works, end to end

We win fixed-price contracts from Western clients and split each one into small, isolated packages. You bid on packages — never on client contracts, never on hours.

  1. STEP 01

    A package is posted

    A sanitized technical spec, a strict TypeScript interface contract you code against, numbered acceptance criteria (AC-1.1, AC-1.2, …), a deadline, and a bounty cap. If it isn't in the spec, you don't have to guess it. Genuinely ambiguous? Ask before you start — a sharp question counts in your favor, not against you.

  2. STEP 02

    You bid sealed

    Bids go in through a slash command and are never visible in the channel — not to other engineers, not after award, not ever. Your bid carries a three-sentence execution plan; a bid without a credible plan is discarded no matter how low it is. Lowest qualified bid wins.

  3. STEP 03

    Award, and the money is already there

    Bids are provisional until we win the client contract — you'll always know a package is win-first until an Award Notice arrives. On award, your bounty is locked at your number, and no package opens for work until that milestone is funded in escrow. No escrow, no code. That protects you exactly the way it protects us.

  4. STEP 04

    Your own repo, your own thread

    Push access to a private repository for that package and a private thread for questions. You never touch anyone else's package, and no one touches yours. One short standup message a day in the thread is the entire status requirement.

  5. STEP 05

    Pull request, green CI

    CI runs install, typecheck and tests on every push. Red pipeline is not reviewed. Your PR description states hours actually spent, any assumptions you made, and what you'd harden next — an honest partial with a note beats a padded “perfect.”

  6. STEP 06

    Review against the criteria

    Your PR is read against every acceptance criterion, independently — not trusted to your own tests. Misses come back as concrete written feedback with one revision round. There is no scope creep and no “one more thing”: if it meets every AC and CI is green, it merges.

  7. STEP 07

    Merge, then money

    Payout via Wise is initiated within 48 hours of merge. A 15–20% holdback — the exact figure is in your Award Notice — is released 14 days after project handover and covers only bugs that violate the written spec. If the client changes their mind about a requirement, that's new paid work, not your problem.

§ 02

What we promise, and what we ask back

Everything here is stated before your first bid, not discovered afterwards. It's also in the agreement you sign at onboarding.

Funded before you start

An Award Notice is never issued until the client's milestone is sitting in escrow. Your bounty amount is locked in our system the moment you're awarded. You will never write a line of code on a promise.

Paid within 48 hours of merge

Wise transfer initiated within two days of your PR merging, in USD at the real exchange rate, straight to your bank or supported wallet. No invoicing, no chasing, no waiting on the client's accounting cycle.

Priced above your local market, on purpose

Packages are sized so that competent, focused work comfortably beats local hourly rates — a $600 package delivered in about two days is roughly $30/hour effective. We would rather keep the same ten engineers for years than churn a hundred.

No surveillance, no theater

No time trackers, no screenshots, no daily video calls, no timezone requirement, no client interviews. We are not a BPO and we don't resell your hours. Everything is async and in writing.

Work you can put your name to

Real Western-enterprise engineering — payments, CRM, logistics, SaaS platforms, AI features — built to a standard you'd defend in a review. “Contract Software Engineer — Opportineer” is yours to list on LinkedIn or a CV, always.

A straight answer either way

Applications that follow the instructions get a reply, usually within three business days. Qualification tasks get a written decision within two business days, with concrete feedback whether the answer is yes or no.

RULES

Three hard rules

Breaking any of them ends the relationship immediately. They exist because the model only works if they hold.

  • 01

    No client contact. Ever.

    You will never be told who the end client is, and you must not try to find out, guess publicly, or reach them through any channel. If someone claiming to be a client contacts you, decline and tell us the same day. This rule is precisely why we can pay fast and keep the work flowing.

  • 02

    Nothing leaves the room

    Specs, interface files, repository contents, bounty amounts and bids are confidential even though they're sanitized. No posting the code publicly, no portfolio use without written approval, no pasting spec text into public tools or forums. The job title on your CV is always fine.

  • 03

    Deadline means re-award

    Miss your package deadline and the package is revoked and re-awarded to the next bidder, unpaid. Forty-eight hours of silence on an active package counts too. It isn't a punishment — it's the promise we make to every client, applied evenly. Tell us before the deadline that life happened and we'll work with you. A revoked package doesn't remove you from the pool.

§ 03

Who we're looking for

We never hire on resumes. Every claim below gets tested by a pull request, not an interview.

Bench requirements
AreaWhat we expect
TypeScriptStrong in strict mode, and you can explain why any is usually a bug waiting to be scheduled.
Node APIsExpress or Fastify, REST endpoints, and webhooks specifically — signature verification, idempotency, retries, replay safety.
TestingVitest or Jest as a habit, not a chore. Assertions that check behavior, not expect(true).toBe(true).
GitSmall logical commits with real messages, clean PRs. We read your history — your pull request is your interview, every time.
EnglishWritten English clear enough for work that is 100% async. Spoken English is never tested, because you'll never be on a call.
BonusHands-on Stripe, HubSpot, or any logistics / dispatch / TMS API. Cloudflare Workers, Postgres, BullMQ and React are the kinds of things packages call for.
Not neededA degree, certifications, a polished CV, a portfolio site, or a video interview. None of it is read.
§ 04

The entry gate

One qualification task stands between an application and the paid board. It's invite-only, it's unpaid, and we'd rather say that in the headline than bury it in step nine.

CI-verified
package-f-000 Qualification task
TaskA Stripe-style signed webhook receiver in Express: HMAC verification against the raw body, constant-time comparison, timestamp tolerance, idempotency by event id.
Time4-hour cap, self-reported honestly. A strong candidate finishes in about two.
Pass gateYour own CI pipeline, written by you, green on the PR. A flawless implementation with red or absent CI is not reviewed.
Also requiredDeterministic Vitest coverage of the happy path, tampered signature, replay, expired timestamp and malformed header. Injected clock — no sleeps, no network.
ScoringSpec adherence 40 · test quality 30 · code clarity 20 · communication 10. The full rubric ships with the task — you see exactly how you're marked.
Threshold75 / 100 overall, and at least 30 / 40 on spec adherence.
DecisionWithin two business days of your green-CI PR, in writing, with specifics either way. Narrow misses get one revision round inside seven days.
Why it's unpaid

Money here only ever moves on merged work — that rule is what makes the 48-hour payout affordable, and it applies to us as strictly as it applies to you. The gate is roughly two hours, it goes only to candidates we've already screened and want, and it is the last unpaid thing you will ever do for Opportineer.

What passing unlocks

An invite to the Engineers server, the one-time paperwork packet — NDA and IP assignment, W-8BEN, government ID, Wise details — and immediate bidding rights on live packages. Those are funded before work starts and paid within 48 hours of merge. Your first payout is the proof that the promise on this page is real, and we treat it that way.

§ 05

Your record is an asset here

Every delivery is logged: first-pass acceptance-criteria hit rate, deadline performance, review findings. That record — not seniority, not tenure, not who you know — decides what you get access to next.

Tier 01

Rookie

Where everyone starts, on standard packages — typically $50–$300 — until the first clean merge lands.

ENTRY · passed the gate
ACCESS · standard board
Tier 02

Proven

Mid-tier packages open up and you get pinged earlier when a new board drops — before the general queue sees it.

ENTRY · 3 clean deliveries, no holdback claims
ACCESS · mid-tier board, early ping
Tier 03

Trusted

Priority access to the largest packages, higher caps, and first look before anything reaches the general board.

ENTRY · 5+ packages, ≥90% first-pass AC rate, zero deadline misses
ACCESS · first look, highest caps

Apply in one form. No CV required.

Twelve fields and the three questions on the right. One of them asks for the word CHECKSUM, so we know you read this far. Applications missing any of the three aren't read; the ones that follow the instructions get a reply, usually within three business days.

The form is the only route in. dalton@opportineer.com is reserved but the mailbox has not been cut over yet — it has no MX record, so anything sent there bounces. Don't apply by email until this page says otherwise.

Answer these three

  1. In two or three sentences, how do you verify a Stripe webhook signature in an Express app? Be specific: what exactly do you compute the HMAC over, and what is the common Express mistake that quietly breaks it?
  2. Your GitHub profile, plus one repository you're proud of. A fork you actually contributed to counts; an empty fork doesn't.
  3. One sentence on your experience with Stripe, HubSpot, or logistics APIs. “None yet” is a fine answer if the rest is strong.