Python/IBKR Engineer to Operate Tested Trading Bot — Retainer + Weekly Reports (Paper Only)
Worldwide
** Python/IBKR DevOps Engineer to Operate an Existing, Tested Earnings Trading Bot on a VPS (Fixed Milestones + Monthly Retainer, Weekly Reporting) ## Summary I have a **working, twice-reviewed, tested** earnings-reaction trading system built in Python (asyncio) with ib_insync for Interactive Brokers. I am NOT hiring you to design or build a bot. I'm hiring you to **deploy it, operate it on paper, keep it healthy, and send me one report every Friday.** All strategy rules are frozen in a specification document — your job is operations, not trading decisions. ## What the system is - Single documented Python file (~2,200 lines, v6.3 release candidate, four review passes by two independent AI code reviews with the full trail in the handover doc) + launchers for Windows and Linux, a handover README, and an entry/exit specification - Runs as a 24/7 daemon: parses earnings headlines from the IBKR API news feed (EPS vs consensus, revenue vs consensus, guidance direction), scores each signal 0–100, enters price- and volume-confirmed trades pre-market and after-hours, manages its own stops/targets/time exits - Hardened: expected-account verification (fatal exit on mismatch), broker-state reconciliation on every connect with confirmed-terminal order handling, durable partial-fill accounting, oversell guard, symbol-exclusivity for shared accounts, DURABLE degraded mode with an operator clear command, single-instance lock, atomic state writes with backup recovery, SQLite trade + incident database with schema auto-migration, durable order journal, Pushover alerting plus a local alerts file, daily heartbeat - Ships with an offline self-test suite (20 tests: parsers, scoring, dedup, state atomicity, lock) and was verified against a stubbed broker (reconciliation, partial fills, shared-account safety) - One command produces the weekly report (txt + html): P&L, win rate, profit factor, confidence calibration, top winners/losers, MFE/MAE per trade, open positions, incident counts — and a computed GO-LIVE ACCEPTANCE STATUS section with a pass/fail verdict against written criteria ## Scope of work **Milestone 1 — Deploy & verify the flagship bot (fixed price)** 1. Provision the bot on a Linux VPS that I own and pay for (or advise me on specs and I'll provision it) 2. Install IB Gateway or TWS connected to my IBKR **paper** account (credentials provided; see Access below), stable auto-restart config 3. Run the provided self-tests and system check; deploy with the provided supervised launcher (systemd preferred — propose your setup) 4. Execute the paper acceptance checklist in the handover doc (account-mismatch fatal exit, duplicate-instance rejection, restart with open position, partial fills, TWS restart mid-position, blocked-SELL handling, corrupted-state recovery) and attach logs/screenshots for each item 5. Add: automated Friday report email to me, log rotation, nightly database backup **Milestone 1.5 — Nonblocking order engine (fixed price; required before any live use)** 1. The bot currently uses blocking order waits (documented limitation: an in-flight exit can delay evaluation of other positions by up to ~135s per cycle). Replace enter/exit waits with a nonblocking order-state machine evaluated each main-loop pass. 2. Deliver with tests: multiple simultaneous positions, one illiquid symbol, forced-exit timing under load — verified on the paper account and submitted as a PR with logs. **Milestone 2 — Fleet takeover (fixed price; unlocked after 2–3 clean weeks on Milestone 1)** 1. Migrate my 3–4 other Python/ib_insync strategy bots (same stack, simpler) onto the same VPS, all against the paper account 2. Extend the report generator into ONE consolidated weekly fleet report (per-bot and combined) 3. Note: the flagship bot is already fleet-safe (it ignores other strategies' positions in the shared account and only ever touches its own share count) — keep it that way in anything you add **Phase 3 — Operations (monthly retainer, ongoing)** 1. Keep all daemons healthy: TWS/Gateway restarts, feed issues, OS patches, disk/memory hygiene 2. Respond to Pushover/watchdog alerts within agreed hours (propose your SLA — I expect same-business-day for non-critical, faster for stuck-exit alerts during US market hours) 3. Every Friday after the after-hours session: run the report, add a short commentary paragraph (incidents this week, changes made, anything needing my decision), email it to me. A missed report pauses the retainer. 4. Propose improvements as GitHub pull requests. Nothing merges without my approval. Strategy parameters (entry/exit thresholds) are frozen by spec and are not yours or mine to tune casually — changes go through a documented approval. ## Access you'll receive — and won't You WILL receive: - IBKR **paper trading** credentials (separate login from the live account; I can reset it at any time), API enabled on the paper port - My GitHub repository (code lives in my org from day one) - The VPS (my account, my billing, my root access retained) - Pushover keys for alerting You will NEVER receive: - My live brokerage username, password, or two-factor device - Live API access or any ability to move real money - Payment credentials of any kind I alone switch individual bots to live, on my own machine, only after the paper results meet the written acceptance criteria (minimum 8 weeks / 25 closed trades, profit factor, calibration, incident and drawdown thresholds — the spec is in the repo). Do not ask for live access; it is not part of this engagement at any milestone. ## Required skills - Python 3.11+ and asyncio in production (not just scripts) - ib_insync / IBKR TWS API — you have personally run it against TWS or IB Gateway and dealt with its quirks - Linux server administration: systemd, cron, log rotation, backups - SQLite, Git/GitHub PR workflow - Clear written English — the Friday report is a deliverable, not an afterthought Nice to have: IB Gateway headless setup (IBC/ib-gateway-docker), market-data entitlement debugging, Pushover/alerting pipelines, experience operating other people's trading systems. ## How to apply (read carefully — generic applications are ignored) Answer these three, briefly: 1. Describe one IBKR API gotcha you personally hit (disconnects, pacing violations, precautionary settings, contract qualification, market-data farms — anything real) and how you solved it. 2. How would you run IB Gateway unattended on a Linux VPS through IBKR's forced daily restart? 3–5 sentences. 3. Your proposed monthly retainer for ~2–5 hrs/week of operations plus incident response, and your alert-response SLA. ## Budget - Milestone 1: $500–1,500 fixed, based on experience - Milestone 2: $1,000–2,500 fixed - Phase 3: your proposed monthly retainer - Separately, a second freelancer will audit significant code changes; if you'd rather be that auditor, say so. ## Working style Async-first (I run a business during the day, US Pacific time). Everything in writing: GitHub issues/PRs and the Friday email. I value operators who surface problems early over ones who go quiet. The handover documentation is thorough — I expect you to read it before asking questions it already answers.
$5,000.00
Fixed-price- ExpertExperience Level
- Remote Job
- Complex projectProject Type
Skills and Expertise
Activity on this job
- Proposals:50+
- Last viewed by client:yesterday
- Interviewing:0
- Invites sent:0
- Unanswered invites:0
About the client
- United StatesWatsonville9:34 AM
- $36K total spent107 hires, 8 active
- 1,654 hours
Explore similar jobs on Upwork
How it works
Create your free profileHighlight your skills and experience, show your portfolio, and set your ideal pay rate.
Work the way you wantApply for jobs, create easy-to-by projects, or access exclusive opportunities that come to you.
Get paid securelyFrom contract to payment, we help you work safely and get paid securely.
About Upwork
- 4.9/5(Average rating of clients by professionals)
- G2 2021#1 freelance platform
- 49,000+Signed contract every week
- $2.3BFreelancers earned on Upwork in 2020
Find the best freelance jobs
Growing your career is as easy as creating a free profile and finding work like this that fits your skills.
Trusted by