- Languages required English
- Open to remote working? Yes
We are looking for a talented senior backend engineer to join our small but passionate team working from Amsterdam, NL, and Frankfurt, DE.
This person will be somebody who takes software craftsmanship seriously and adopts a holistic approach to the software development process, from architecture to implementation to testing and deployment.
Our preferred candidate is acutely aware that managing change requires code that is clean, tested, and self-documenting.
Our domain throws up a lot of interesting challenges: we need to model data-streams from different industries and sectors, we need to be able to interface with disparate systems, our financial systems require us to be correct, resilient and scalable, our APIs need to be intuitive and clear but also flexible.
Basically, we are a young and small team that has to meet the standards of a large and far-more-professional team.
We can’t move fast and break things, because we are a Fin/Insurtech and because we are live with real consequences (we don’t risk loosing our own money, but other people’s money!).
The system is a monolith at runtime, but split into bounded contexts in the codebase.
The business logic is designed around messages (event-driven), while the infrastructure layer is delegated to Django and the API projections to Django REST Framework.
You are a good fit for us if you care deeply about selecting the right approach for the specific problem at hand: you know about domain-driven design, TDD and have read your Uncle Bob, Kent Beck and Martin Fowler, but you don’t apply these unthinkingly or indiscriminately.
You take process discipline seriously, and are conscious that corners cut today will just incur technical debt tomorrow, whilst simultaneously being able to assess when technical debt is worth incurring in the interests of business objectives.
You value clean, idiomatic Python code, you are familiar with the ecosystem and you are aware of what is going on in the Python community.
We are aware that there is always room for improvement, and our codebase is no exception.
With our live system, improving code quality is critical for stability and future changes: the system’s architecture needs to evolve along the way.
We work remotely and strive to make developers productive and not distract them with pointless meetings and incessant Slack pings.
We have a process and a system, but don’t fetishize any particular methodology: just enough to make you productive.
We trust you to get the job done without somebody looking over your shoulders.
- Telecommuting is OK
- No agencies
– Excellent command of spoken and written English
– Flexible mindset, embracing change and new concepts
– Opinionated and vocal but accepting of decisions
– Experimented with idiomatic Python 3: list and set comprehensions, decorators, generators, context managers, type hints, etc.
– Converses in clean(er) architectures: separation of concerns, system boundaries, abstraction layers
– Clean code does not stop at the VCS, a well-organized git history matters
– Has a solid understanding of/exposure to Computer Science: knowledge breadth matters
– Is proficient with POSIX command line tools (choose any POSIX-ish operating system you want)
– Bonus points: event-driven systems, domain driven design, functional core/imperative shell
Expected tolerances (allowed to love, required to endure)
– DevOps, magic CI YAML incantations for tasks that could be solved in one line of Makefile
– Submit yourself to formatters and linters across all projects: ain’t no time for that
– Quick fixes can be a viable solution, be pragmatic
- Salary Offer €40 - 60,000