Software Engineer, REMOTE
As Sporting Risk's client base and product portfolio grow, we are looking for a Software Engineer to help design, build and scale the systems and products that power our business - from real-time data feeds and integrations to new client-facing products. This role sits at the heart of our engineering team, working on Python-based services deployed on AWS, spanning everything from feeds integration and data pipelines to building new features and products from the ground up.
You will design, build and maintain robust integrations with external data providers and client-facing APIs, ensuring our feeds are accurate, performant and resilient at scale. Alongside this, you'll play a key role in developing new products and features, working closely with trading, data science and technical support teams to turn ideas into reliable, production-ready systems. You'll take ownership of code quality, testing and deployment practices, and help shape our infrastructure as the business grows.
Sporting Risk leverages the predictive modelling of its data science team with an extensive tech operation to be a provider of innovative price feeds and content into companies operating within the gaming and media sectors.
The predictive modelling is powered by the most extensive and granular data available, internally collected by the company’s tech team and qualitative analysts. The heritage of the company lies in the expertise of a betting syndicate run by one of the founding partners, which the company powers the pricing for.
The company’s data collection and predictive modelling originated in football. In recent years this has extended into US sports, meaning the company now holds an extensive pricing, product and content portfolio across a range of sports.Fully remote role, with opportunities to travel to head office based in London, and offsite company meetings.
Fully remote role with opportunities to travel to London head office and company offsite meetings.
,[Distributed systems & messaging — Understands delivery guarantees (at-least-once vs exactly-once), idempotency, message ordering, backpressure, and can reason about failure modes like a consumer crashing mid-processing., Service & storage architecture — Can design services that stay responsive under load: offloading CPU-heavy work off the event loop, coalescing duplicate requests, deliberate caching strategy (keys, invalidation, stampede prevention), and informed storage/compression choices., Data engineering: ingestion, entity resolution & consensus — Experience integrating messy, real-world data feeds defensively; building record-linkage/matching logic on stable identifiers (not fragile heuristics like names); resolving conflicting data from multiple sources; treats silent mismatches as critical bugs, not edge cases., Performance & concurrency — Solid grasp of process vs thread models (and their trade-offs — e.g. fork + shared memory, copy-on-write behavior), where the GIL matters in an async Python context, and IO/compression cost trade-offs., Cloud, cost & deployment safety — Comfortable with cost-aware infrastructure choices (e.g. spot vs on-demand), avoiding flapping/instability, strong observability instincts, and designing changes for fast rollback with limited blast radius., Code quality & pragmatism — Writes idiomatic, simple code over clever code; can do surgical refactors without destabilizing legacy systems; tests by instinct even without being told to., Debugging & systems reasoning — Given an unfamiliar, large codebase and a vague bug report, forms hypotheses, instruments the system, and bisects methodically rather than guessing., Communication & collaboration — Explains complex technical trade-offs clearly to both technical and non-technical audiences; asks sharp clarifying questions; is honest about uncertainty rather than bluffing., Ownership & judgment — Drives ambiguous problems to a decision; can articulate what they deliberately chose not to solve and ] Requirements: Python, JavaScript, AWS, AI Tools: .