Senior Software Engineer (Dev Platform)
As a Senior Software Engineer on the Developer Platform Team, you will improve the platform foundations that Iterable engineers rely on to build, test, deploy, and operate services safely at scale. Your work will span the developer workflow end-to-end: from Scala, Bazel, and CI systems, through deployment workflows and self-service platforms, down to the Kubernetes and cloud infrastructure that make those experiences reliable in practice.
This is a hands-on senior engineering role for someone who is equally comfortable improving the inner loop for developers and owning the production platform systems behind it. You will lead high-leverage projects across build, test, deployment, and runtime infrastructure; drive work that reduces developer friction while improving reliability and cost efficiency; and partner closely with product engineering, infrastructure, security, and SRE to turn platform pain points into durable solutions.
Own the developer delivery path end to end: Improve the systems engineers' use to build, test, package, deploy, and validate changes with confidence across local development, CI, and production rollout workflows.
Lead shared engineering foundations: Evolve common libraries, build patterns, service templates, internal platform capabilities, and paved-path workflows that many teams depend on.
Improve CI performance, capacity, and reliability: Drive improvements to build and test feedback loops, runner health, workload placement, and failure isolation so engineers get faster, more predictable results.
Strengthen deployment and release infrastructure: Own and improve the control-plane systems that underpin delivery, including GitOps workflows, rollout orchestration, self-service deployment tooling, and the operational paths used to debug and recover production changes.
Take ownership of platform runtime infrastructure: Help operate and improve the Kubernetes and cloud infrastructure that underpins the engineering workflow, including cluster behavior, node-pool strategy, workload scheduling, access patterns, and reliability guardrails.
Turn recurring friction into durable leverage: Diagnose repeated failure modes across build, CI, deploy, and runtime systems, then solve them through automation, better defaults, observability, documentation, and platform product improvements.
Use AI to accelerate platform engineering safely: Apply tools like Cursor, Claude, and agentic workflows to codebase migrations, CI triage, platform automation, and internal tooling development with strong verification and guardrails.
Partner across engineering with senior ownership: Work closely with service teams and technical leaders to guide adoption, explain trade-offs, lead migrations, and make the paved path easier to use over time.
What We're Looking For
We prioritize strong software engineering fundamentals, systems thinking, and the ability to own ambiguous, cross-cutting platform problems from diagnosis through rollout. You do not need to have used our exact stack, but you should be comfortable learning deeply, operating in shared production systems, and building tools and infrastructure that other engineers depend on every day.
Strong software engineering fundamentals in Scala, Java, Kotlin, or another production language; able to read, modify, test, and review service code in a large shared codebase.
Experience owning a developer platform or infrastructure systems, such as build platforms, CI/CD, deployment tooling, internal developer portals, Kubernetes platforms, or cloud runtime infrastructure.
Strong working knowledge of build systems and delivery workflows; familiarity with Kubernetes, GitHub Actions, ArgoCD, Backstage, Bazel, EngFlow
Ability to debug complex failures that cross boundaries between application code, build tooling, CI runners, deployment systems, Kubernetes, and cloud infrastructure.
Experience leading migrations or foundational platform changes with a meaningful blast radius, including rollout planning, risk management, communication, and follow-through on adoption.
Product-minded approach to internal platform engineering; you care about usability, feedback loops, self-service, operational clarity, and whether platform investments make engineers faster and more confident.
Comfort using AI tools such as Cursor, Claude, or similar systems for real engineering work, including codebase exploration, migration support, test generation, CI triage, and agent orchestration.
Good judgment about AI-assisted automation: able to break complex tasks into plans, prompts, verification steps, and review loops with appropriate human oversight and safety guardrails.
Clear communicator who can work across product engineering, infrastructure, and security teams, explain trade-offs, keep stakeholders informed, and make steady progress in ambiguous technical areas.
What we offer
Competitive salaries & meaningful equity
Private Medical Insurance
Life/Risk Assurance
Meal Allowance: 8.55€ per day
Community Days (days for us to give back to the community)
Paid Annual Leave (22 days)
Global Lifestyle Reimbursement Account
Paid Sabbatical
Complete laptop workstation
The base salary range for this position in Lisbon, Portugal, is €66,500 – €88,000 per year (gross). This range is provided in anticipation of the requirements of the EU Pay Transparency Directive (2023/970), which EU member states are implementing into national law, and reflects the expected compensation at the start of employment for this role.The final offer will be determined based on your experience, qualifications, and performance throughout the selection process, while also ensuring alignment with our internal equity principles.