At Anaplan, we are a team of innovators who are focused on optimizing business decision-making through our leading scenario planning and analysis platform so our customers can outpace their competition and the market.
What unites Anaplanners across teams and geographies is our collective commitment to our customers’ success and to our Winning Culture.
Our customers rank among the who’s who in the Fortune 50. Coca-Cola, LinkedIn, Adobe, LVMH and Bayer are just a few of the 2,400+ global companies that rely on our best-in-class platform.
Our Winning Culture is the engine that drives our teams of innovators. We champion diversity of thought and ideas, we behave like leaders regardless of title, we are committed to achieving ambitious goals and we have fun celebrating our wins.
Supported by operating principles of being strategy-led, values-based and disciplined in execution, you’ll be inspired, connected, developed and rewarded here. Everything that makes you unique is welcome; join us and be your best self!
System Specification and Verification Engineer
We are seeking a Software Engineer to contribute to the development of scalable verification frameworks and formal methods for a complex, mission-critical system. This role sits within our System Specification team, which builds verification frameworks that operate at scale in the cloud and designs specification languages, writes rigorous system specifications.
The ideal candidate has a strong foundation in computer science and a keen interest in software correctness, language design, and building robust systems. While deep expertise in formal methods isn’t required, we’re looking for someone who is curious, analytical, and eager to apply rigorous thinking and well-founded methods to real-world engineering challenges.
Key Responsibilities
* Contribute to the development of verification frameworks and DSLs, integrating formal specifications with automated testing and scalable execution.
* Work closely with engineering and product teams to help codify design decisions into executable criteria.
* Assist in writing and refining system specifications, ensuring correctness and precision in critical system behaviours.
* Apply formal methods and automated verification techniques to software components, with guidance from senior engineers.
* Engage in code reviews and knowledge-sharing sessions to learn and contribute to best practices in correctness-driven engineering.
* Communicate technical concepts clearly and effectively within the team and to stakeholders.
Required Competencies
* Professional Experience: Experience as an individual contributor in software development, verification, or systems engineering.
* Programming Skills: Experience with JVM-based languages (Java, Kotlin, Scala) and familiarity with both object-oriented and functional programming paradigms.
* System Design: Experience in systems design for components of complex software projects.
* Testing & Verification: Some experience with automated testing techniques (e.g., Property-Based Testing, Behaviour-Driven Development) and an interest in software correctness methodologies.
* Communication Skills: Ability to clearly explain technical challenges and solutions in both written and verbal form, ensuring alignment and shared understanding.
Desirable Competencies
* Exposure to domain modelling and language design (e.g., DSLs, specification languages).
* Interest in formal specification methods such as VDM, B, or Z.
* Knowledge of advanced mathematical concepts (e.g., set theory, first-order predicate logic, lambda calculus).
* Experience with cloud platforms (AWS, GCP) or build tools (Gradle, Maven).
* Familiarity with Agile development methodologies, balancing iteration speed with rigour.
Personal Characteristics
* Correctness-focused mindset – values rigour and precision in software design.
* Curious and intellectually rigorous, with a drive to push the boundaries of software correctness.
* Academic excellence with practical thinking – comfortable engaging with theoretical concepts but pragmatic in applying them to real-world problems.
* Self-directed — able to convert abstract instructions and deliver comprehensive, concrete solutions.
* Collaborative and eager to grow – thrives in a team environment and enjoys exchanging ideas with others.
#J-18808-Ljbffr