Build and launch backend systems for Affirm Card checkout, delivering scalable in-app experiences while collaborating across engineering, product, design, and analytics and supporting system reliability.
Backend Software Engineering
📜 Description
- Define features and fixes in line with overall objectives and challenges.
- Deliver defined features and fixes end to end, including implementation strategy.
- Write clean, performant code and design documents for complex problems.
- Build and improve backend services, reliability, scalability, and observability.
- Collaborate with teammates and help them deliver their goals.
🛠️ Requirements
- Software engineering in a collaborative, commercial environment, working on large codebases and using practices like CI/CD, testing, and code reviews.
- Functional/typed languages, e.g. Rust, OCaml, Clojure, C++, or Haskell, and a willingness to learn and work with Julia, TypeScript and Rust.
- Scalable services development including databases, networking and computing across architectures.
- Implementation of observability across the stack.
- CI/CD pipelines with complex trade-offs between correctness and development experience.
- Hosting of machine learning models, or other computationally heavy services.
- Development of infrastructure with Terraform and Kubernetes.
Full 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 production system. This opening is focused on building a robust and scalable backend hosting our reasoning engine. It is ideal for an engineer with a deep interest in systems architecture, reliability and scalability. You will be able to choose how close to the reasoning engine or the infrastructure you want to work, and be exposed to a novel class of reasoning models.
Essential experience
Software engineering in a collaborative, commercial environment, working on large codebases and using practices like CI/CD, testing, and code reviews.
Functional/typed languages, e.g. Rust, OCaml, Clojure, C++, or Haskell, and a willingness to learn and work with Julia, TypeScript and Rust.
Scalable services development including databases, networking and computing across architectures.
Implementation of observability across the stack.
CI/CD pipelines with complex trade-offs between correctness and development experience.
Useful experience
Hosting of machine learning models, or other computationally heavy services.
Development of infrastructure with Terraform and Kubernetes.
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
How we work
Hierarchical goals, not personal hierarchies: We organise around a transparent tree of goals and tasks. Every quarter we plan milestone goals, which branch down into smaller and smaller tasks. This tree is the foundation of how we organise, not a side tool.
Transparency: Everyone should have access to every opportunity in the team that they can realistically handle. All goals, tasks, and the reasoning behind them are visible to everyone.
Decisions become tasks: When something is discussed and decided, it gets captured as a task in the right place in the tree, so that nothing dissipates as hot air.
Written and asynchronous by default: We are fully remote and document our learnings in writing. Communication happens transparently in shared channels, not in private threads and one-on-ones.
Growing from leaf to tree: New joiners start from smaller leaves of the tree and work themselves up to ownership of larger branches as trust and understanding build. Teams form around topics and dissolve when the work is done; people move to where they are most useful.
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.
What we do: https://planting.space/
Ways of work: https://planting.space/org/
Team culture and example tasks: https://planting.space/joinus/
For this job opening, we are looking for someone who can work within the CET timezone.
Similar jobs
Search more Backend Engineer jobsPython/Django Software Engineer (part-time, remote, with flexible schedule)
As a Python/Django Software Engineer, you will develop complex services to enhance healthcare solutions for patients and clinicians, collaborating with product teams.
DESENVOLVEDOR BACK END PL
Desenvolve e mantém aplicações backend com Java e tecnologias JVM, integrando microsserviços e APIs e contribuindo para soluções escaláveis, seguras e testáveis em ambientes cloud e conteinerizados.
ANALISTA DESENVOLVEDOR JAVA PL
Desenvolve e mantém aplicações Java, participando de todas as etapas do ciclo de software e contribuindo para sistemas financeiros robustos, escaláveis e de qualidade, em um time ágil e multidisciplinar.
Backend Developer (Spark, Spala, PL/SQL)
Develop and maintain backend data solutions with Apache Spark and Scala, contributing across the software lifecycle from requirements and testing to UAT, deployment, and production validation.
