Senior Software Engineer
- Opened · 30d
- +0
- Closed · 30d
- −0
- Opened · 7d
- +1,3628% of open
- All software engineering
- 75,371open
Senior Software Engineer (Backend Applications)
We are a global digital innovation agency for the Intelligence Age, specializing in digital product development, brand transformation, media, and communications for major companies. Our Technology team is an integral part of our business; they are perpetual problem solvers, always seeking new and innovative ways to help our creatives bring their ideas to life. We work across a diverse range of projects, from major website builds and core tech platforms to bespoke experiences and strategic innovation with emerging technologies.
About the Role
We are seeking a Senior Software Engineer with a focus on backend applications to be part of our team servicing Google. This role will be responsible for building core services that power major global web experiences, with an emphasis on data ingestion, API design and implementation, and integrations. You’ll be comfortable with a variety of coding languages such as C++ and Python, and will design and scale low-latency RPC/REST microservices, architect globally distributed relational and vector database schemas, build resilient batch data-ingestion pipelines, and own automated CI/CD release workflows from prototype to production.
You will act as a core code contributor within a broader team, moving beyond simple feature implementation to architecting reusable systems, performing rigorous code reviews, and ensuring the seamless integration of diverse technologies. The ideal candidate is a specialist who understands the full software development lifecycle and is passionate about delivering high-quality, production-ready code in a collaborative environment.
Key Responsabilities
On any given day, you will:
- Design & Evolve API Designs: Design, version, and maintain clean, backward-compatible gRPC and REST/HTTP APIs (supporting multi-version v1/v2 lifecycles), including request/response contracts, deadline budgets, stateless encrypted pagination, and data-governance annotations.
- Build & Manage High-Performance Serving & Search Features: Build high-concurrency, low-latency backend handlers (using C++ primarily). Optimize hybrid retrieval pipelines that combine full-text search, real-time ML query embeddings, and vector search, with graceful degradation when upstream dependencies degrade.
- Design Distributed Databases: Architect normalized and interleaved relational schemas, partitioned full-text search indexes, vector indexes, and incremental materialized views on a globally distributed SQL database. Design atomic snapshot/versioning patterns for zero-downtime data updates and instant rollbacks.
- Manage Scalability & Batch Data Pipelines: Build and operate distributed ETL/batch ingestion pipelines that extract CMS content, perform HTML chunking and rate-limited ML embedding generation, validate data integrity, quarantine malformed records, and bulk-load snapshots at scale.
- Handle CI/CD, Release Engineering & Observability: Maintain automated build, test, coverage, and progressive rollout pipelines (continuous presubmit, multi-day staging soak phases, and decoupled scheduled data syncs).
- Collaborate with Frontend Dev & Product Teams: collaborate with other devs to assess product requirements, and translate those into technical specifications.
- Work with a fullstack team: Collaborate with fullstack web engineers to deliver web experiences leveraging enterprise-grade CMS platforms with custom integrations.
- Documentation & Technical Mapping: Create documentation to ensure technical clarity, supporting long-term maintenance and team scalability.
The Ideal Candidate
- T-Shaped: You have deep expertise in system application development, but also possess a breadth of skills to collaborate and contribute effectively across web experiences, a variety of backend stacks, and infrastructure design.
- Product Mindset: You don’t just build features; you build systems. You are passionate about understanding how the solutions you build serve broader product initiatives and outcomes and use product inputs to inform your architecture approach