Thomsonreuters

Senior Software Engineer II

Full timeSeniorPosted about 15 hours ago
Apply on Thomsonreuters →

Sign in to see who you know at Thomsonreuters.

Job description

Senior Software Engineer — Customer Files Orchestration

CoCounsel Legal is seeking a Senior Software Engineer to help build and operate the Customer Files Orchestration Service – the system that makes a customer's own documents usable by CoCounsel Legal's agents.

Every file a customer brings to CoCounsel passes through this team: upload, storage, extraction, embedding, and indexing, orchestrated end-to-end. You make millions of customer files available to CoCounsel. Bringing a customer's content together with Thomson Reuters' world-class proprietary content and the latest frontier models – including TR's own custom large language models – is what makes our products highly differentiated and our agent experiences genuinely grounded. This team is a critical part of what makes that combination possible.

It is also, unavoidably, a hard distributed systems problem. Supporting millions of files means real engineering: dedicated workers, fair queuing so one busy customer cannot starve another, durable state, idempotent processing, and honest reasoning about consistency and delivery guarantees across systems this team does not own.

The team owns what it builds, designing, implementing, testing, deploying, scaling, and operating the service end-to-end. As a Senior Software Engineer you own a meaningful part of that service outright. You are eager to ship something you’re proud of and become someone the team trusts.

Key responsibilities

Design & Technical Ownership

Own the orchestration service end-to-end – Take an ambiguous problem, shape it into a design, write the ADR, build it, ship it, and operate it. You and the team are accountable for the outcome, not just the pull request.

Make and defend the calls that define this domain – Where eventual consistency is safe and where only a strongly-consistent read is correct; at-least-once with idempotent processing versus the real cost of exactly-once; lease and heartbeat models for crash recovery; compare-and-swap state transitions across asynchronous service boundaries.

Build the queuing and flow-control machinery – Fair queuing so one busy tenant cannot starve another, rate limiting, backpressure, circuit breaking, dead-letter handling, and autoscaling.

Treat our APIs as a product – CoCounsel's file and workspace APIs serve a growing set of consumers beyond orchestration. Versioned contracts, documented behavior, backward compatibility, and deliberate change management are part of the work, not paperwork after it.

Design for correctness at scale, not correctness in a test – Anticipate the failure modes that only appear under concurrency and load and build systems where whole classes of bugs cannot occur rather than fixing them one at a time.

Reliability & Operations

Operate what you build – Take a primary on-call rotation for the service, lead incident response, and drive the post-mortem that keeps the same failure from recurring.

Make the system explain...