Senior Backend Developer
Role details
Job location
Tech stack
Job description
The Soil Capital developer team is currently facing two interesting challenges: future-proofing our current platform and transforming it into a strong data-driven solution, backed by AI capabilities.
Our existing platform was built with focus on providing immediate business value, but the existing architecture is showing its age: two codebases, thin separation of concerns, and business rules spread across both stacks.
We are in the process of migrating to a cleaner foundation on Node.js, applying Clean Architecture, Domain-Driven Design, bounded contexts, and event-driven patterns to ensure a more testable and trustworthy core for our business-critical computations, and to support the next wave of features, integrations and data work we have in front of us. We are focusing on on refactoring core elements in parallel with shipping select features and maintaining the existing codebase in line with business needs. Most of your time will be spent on the new foundation; the existing codebase is still actively maintained, and being effective there is also part of the role.
Going forward, we want to leverage the primary data collected from farmers to generate the best-in-class insights to support the agricultural transition. The development team will be working closely with our data team to productise the science and models they have developed around agricultural transition.
We are looking for a Senior Developer who can be a credible technical voice on this trajectory: someone who has experience with these patterns, knows when to apply them and - just as importantly - when not to, and who is familiar with applications that visualise and interact with large data sets and complex models.
What you'll do
Build and consolidate the new architectural foundation
- Design and implement bounded contexts, domain layers and use cases on the Node codebase, in line with the Clean Architecture and DDD direction the team is taking.
- Migrate critical business rules from our legacy PHP codebase to Node, with a strong focus on testability and correctness. These are the calculations our certifications and payments depend on.Contribute to the normalized client facing API, data model, and the event-driven mechanisms that will underpin future internal and external integrations.
Support the development of data driven platform
- Work with the Data and development team to develop state-of-the art data visualisation & simulation tools.Productise, maintain and evolve underlying data and AI models to support these tools.
Help consolidate our engineering practices
- Reinforce the architectural and engineering practices we are putting in place (separation of concerns, dependency inversion, testing strategy, domain modeling) through code, code review and design discussions.
- Beyond theoretical knowledge, bring concrete expertise in using these patterns. Pragmatism matters: knowing when something is genuinely worth abstracting and when it's premature.
- Contribute to a technical culture where the bar rises through example and communication, not through gatekeeping.AI-assisted coding is part of how we work, and team members are expected to leverage it. As with architecture patterns, what matters is judgment: knowing when it accelerates the work and when it doesn't, and owning what you ship regardless of how it was written.
Keep the lights on, pragmatically
- Maintain and iterate on existing functionality in both the Node and PHP/Laravel codebases when product or operational needs require it.Help triage, prioritize, and respond to urgent operations-driven requests without losing sight of the longer-term consolidation work.
Collaborate across the team
- Work closely with the Developer Lead, Product Manager, Product Designer and the rest of the engineering team (currently 6 developers, a mix of mid-level and senior profiles).Participate in squad ceremonies and contribute to the roadmap and technical decision-making.
Requirements
Do you have experience in TypeScript?, Experience & expertise
- 5+ years of professional software development experience, with a meaningful portion in backend development roles.
- Strong, hands-on experience with Node.js / TypeScript in production.
- Concrete, hands-on experience with several of the following: Clean Architecture (or Hexagonal / Onion), Domain-Driven Design, event-driven architecture, CQRS , dependency injection / inversion, separation of concerns.
- Experience working with complex and large datasets, with an understanding of what makes them performant, maintainable and reliable.
- Solid testing discipline (unit, integration, contract) and an understanding of how architecture choices affect testability.
- Comfortable working in a PHP / Laravel codebase, or confident that you can be effective with it if required. Part of our codebase still lives there, and contributing to it is part of the job.
- Basic understanding of React/TypeScript, enough to investigate, debug and make small fixes where frontend and backend meet. For clarity, we are not expecting you to be a frontend developer.
- Experience designing and implementing REST APIs; GraphQL experience is a plus.
- Familiarity with SQL databases and data modeling; experience with NoSQL is a plus.Hands-on experience with AI-assisted development tools (Copilot, Cursor, Claude Code, or similar), with a thoughtful sense of where they help and where they don't.
Mindset
- Pragmatic. You know when to niggle and when to ship. You don't apply patterns for their own sake and know how to manage complexity.
- Honest about trade-offs and able to articulate them, to peers, to product, and to less experienced developers, in a constructive and collaborative way.
- Comfortable being exposed to two realities: the existing codebase that still pays the bills, and the new architecture which will support our future.
- Curious. We encourage thoughtful use of AI tools and frameworks in our engineering workflow, expecting engineers to engage with it critically without ignoring or over-trusting it.A genuine team player. The team is collaborative and constructive, and we want to keep it that way.
Nice to have
- Experience with n8n or similar workflow automation tools.
- Experience migrating from a monolith toward a more modular or service-oriented architecture in a real, demanding production context.Interest in agriculture, climate, or carbon markets.
Languages
- English - working proficiency - the technical and business language used throughout Soil Capital.French - conversational level - the language used most between office colleagues.