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.
- Packages
- $50 – $1,000 fixed
- Payout
- Wise, ≤48h from merge
- Stack
- TypeScript · Node
- Mode
- Async, written, no calls
- Commitment
- None — bid what you want
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.
-
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.
-
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.
-
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.
-
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.
-
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.”
-
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.
-
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.
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.
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.
Who we're looking for
We never hire on resumes. Every claim below gets tested by a pull request, not an interview.
| Area | What we expect |
|---|---|
| TypeScript | Strong in strict mode, and you can explain why any is usually a bug waiting to be scheduled. |
| Node APIs | Express or Fastify, REST endpoints, and webhooks specifically — signature verification, idempotency, retries, replay safety. |
| Testing | Vitest or Jest as a habit, not a chore. Assertions that check behavior, not expect(true).toBe(true). |
| Git | Small logical commits with real messages, clean PRs. We read your history — your pull request is your interview, every time. |
| English | Written English clear enough for work that is 100% async. Spoken English is never tested, because you'll never be on a call. |
| Bonus | Hands-on Stripe, HubSpot, or any logistics / dispatch / TMS API. Cloudflare Workers, Postgres, BullMQ and React are the kinds of things packages call for. |
| Not needed | A degree, certifications, a polished CV, a portfolio site, or a video interview. None of it is read. |
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| Task | A Stripe-style signed webhook receiver in Express: HMAC verification against the raw body, constant-time comparison, timestamp tolerance, idempotency by event id. |
| Time | 4-hour cap, self-reported honestly. A strong candidate finishes in about two. |
| Pass gate | Your own CI pipeline, written by you, green on the PR. A flawless implementation with red or absent CI is not reviewed. |
| Also required | Deterministic Vitest coverage of the happy path, tampered signature, replay, expired timestamp and malformed header. Injected clock — no sleeps, no network. |
| Scoring | Spec adherence 40 · test quality 30 · code clarity 20 · communication 10. The full rubric ships with the task — you see exactly how you're marked. |
| Threshold | 75 / 100 overall, and at least 30 / 40 on spec adherence. |
| Decision | Within two business days of your green-CI PR, in writing, with specifics either way. Narrow misses get one revision round inside seven days. |
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.
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.
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.
Rookie
Where everyone starts, on standard packages — typically $50–$300 — until the first clean merge lands.
ACCESS · standard board
Proven
Mid-tier packages open up and you get pinged earlier when a new board drops — before the general queue sees it.
ACCESS · mid-tier board, early ping
Trusted
Priority access to the largest packages, higher caps, and first look before anything reaches the general board.
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
- 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?
- Your GitHub profile, plus one repository you're proud of. A fork you actually contributed to counts; an empty fork doesn't.
- One sentence on your experience with Stripe, HubSpot, or logistics APIs. “None yet” is a fine answer if the rest is strong.