Logo for PlantingSpace

Program Synthesis Engineering

Roles & Responsibilities

  • Designing and implementing complex, non-standard algorithms (graph theory, path finding, custom inference, compilers)
  • Experience in a collaborative, commercial software engineering environment, working on large codebases and using CI/CD, testing, and code reviews
  • Implementation of program synthesis frameworks
  • Strong foundation in computer science algorithms and data structures; proficiency in Julia or functional/typed languages (Rust, OCaml, C++, Haskell, etc.)

Requirements:

  • Define new features or fixes based on awareness of overall objectives and challenges
  • Commit to delivering defined features or fixes end-to-end
  • Define implementation strategies
  • Write design documents for more complex problems

Job description

We're building a system that represents domain knowledge as modular probabilistic models — making analysis rigorous and transparent. Users can connect these models flexibly into larger structures. The system enforces consistency across them, and propagates uncertainty through each step. Our first applications are in finance and scientific research, with use cases ranging from equity valuation and distress monitoring, to particle physics.

We are looking for strong software engineers to build our program synthesis pipeline. You will be able to choose how close to theory or the production system you want to work, and be exposed to cutting edge research in Bayesian statistics, dynamical systems, information theory, category theory, and more.

Essential experience

  • Designing and implementing complex, non-standard algorithms (graph theory, path finding, custom inference, compilers)

  • Experience in a collaborative, commercial software engineering environment, working on large codebases and using practices like CI/CD, testing, and code reviews

Useful experience

  • Implementation of program synthesis frameworks

  • Strong foundation in computer science algorithms and data structures

  • Julia, or usage of some more functional or typed languages, e.g. Rust, OCaml, Clojure, C++, or Haskell

  • Profiling and low level performance optimisation

  • Mathematics, Computer Science, or Statistics advanced degree

Responsibilities

  • Define new features or fixes, based on awareness of overall objectives and challenges

  • Commit to delivering defined features or fixes end-to-end

  • Define implementation strategies

  • Leverage the expertise of other team members effectively

  • Write design documents for more complex problems

  • Write clean and performant code

  • Help other team members to deliver on their goals

Required mindset

We've found that our successful team members share some key characteristics, and as we've grown our team, these are the qualities we've learned to seek out. We take pride in our strong, collaborative culture, and these core attributes not only reflect our shared values, but can help you evaluate how well you might fit into our team:

  • A builder at heart: You’re passionate about building things, solving complex problems, and approaching challenges with an entrepreneurial spirit and humility. Your sharp sense of prioritisation gives you a laser focus on delivering results that uplift the entire team, moving us closer to our goal.

  • Results-driven: You thrive when taking full ownership of tasks, seeing them through from start to finish, and taking accountability for the results. You’re proactive, resourceful, and avoid over-complication - anticipating problems, even in complex, uncertain environments.

  • Growth mindset: You are intellectually curious, have a critical mind, and seek opportunities to stretch your abilities. You explore the state-of-the-art, you dig deep to truly understand a problem, and question assumptions.

  • A strong collaborator: You naturally communicate with clarity and purpose, ensuring your ideas and updates are easily understood. You work efficiently, embracing an iterative approach that allows for frequent progress and course correction. You’re open to direct feedback, adapting quickly and using it to improve both your work, and the performance of those around you.

  • Approaching problems and tasks like a project manager:

    • You can take a given goal and break it down into smaller parts.

    • You can solve problems systematically, by yourself as well as collaboratively with others.

    • You involve others in effective problem-solving sessions because you value getting to the best solution over being right.

    • You document processes well to ensure others can jump in to collaborate effectively.

Want to know more?

On our website you can find more about our team and work culture, as well as example tasks that share some insight into the type of things team members are working on.

Our team works fully remotely, and mostly within the CET timezone.

Related jobs

Other jobs at PlantingSpace

We help you get seen. Not ignored.

We help you get seen faster — by the right people.

🚀

Auto-Apply

We apply for you — automatically and instantly.

Save time, skip forms, and stay on top of every opportunity. Because you can't get seen if you're not in the race.

AI Match Feedback

Know your real match before you apply.

Get a detailed AI assessment of your profile against each job posting. Because getting seen starts with passing the filters.

Upgrade to Premium. Apply smarter and get noticed.

Upgrade to Premium

Join thousands of professionals who got noticed and hired faster.