Python Senior Architect Developer
We’re looking for someone to take the lead in systems architecture and platform evolution. We have two main Python projects, both requiring Python technologists with solid architecture skills in data modelling, inter-service communication, data science / ML and a feel for business modelling and the mapping of core systems to commercial activity.
The first of our projects relates to a re-thinking of the architecture of our ERP system and its relationship to the business. We’re an online retailer (like AliBaba or Amazon) so you can imagine that our ERP system, which coordinates logistics and stock management, is like the cardiovascular system of our company, delivering products to our customers, stock to our warehouses and financial insight into our finance team.
We’ve evolved with our ERP system (OpenERP) for some years and it’s served us well. We are going to jump forward some versions (from 7 to 12).
This is a great opportunity to pause, rethink our architecture and radically change the way we use it. There’s an opportunity to refactor business processes by considering a more thoughtful mapping of business functions into the ERP or augmenting it with extensions from our own backend service mesh.
Because we will be jumping from OpenERP (Odoo) 7 to version 12—which implies a Python switch from 2.7 to Python 3—this is essentially a green fields project to think about how the ERP system should map to the business and what backend companion services we should build around it. We’re separately building an internal innovation division which we want to leverage the ERP system to the max while remaining loosely coupled to it. That’s a tricky architectural (and business analysis) problem.
So, for that project we’re looking for these skills:
- Strong data modelling skills in mapping business behaviour into system entities.
- Good non-technical communication skills to engage with the business and understand the complexities of a multi-country logistics organisation.
- System architecture skills around making key re-architecture decisions.
- Lots of experience in inter-service messaging, understanding tradeoffs between synchronous and asynchronous event-driven styles.
- Experience in Event Sourcing and CQRS designs.
- Strongly opinionated around data architecture. These entities within the ERP really are the building blocks of our business; they define the DTOs right up into the React frontend.
Quite separate to all of that, which will be our main focus for the next year, we are also re-architecting other parts of the business from the ground up and building a data science team and platform for advanced data analytics. Our backend is moving to a service mesh configuration (i.e., a microservice architecture with service instance sidecars) and we’re using Kotlin on the JVM with Istio for that.
That presents an opportunity (long awaited) to redesign our data architecture. We’re a big fan of immutable data and our database design reflects that. It’s an immutable, append-only design (aka log-centric or Event Sourcing) implemented in Google Cloud’s Bigtable. An immutable time-series, event-based design is the ideal foundation for an analytics framework for the advanced customer experience personalisation we want to deliver via our mobile apps and also for delivering actionable insights that can optimise the logistics parts of our business.
For that work, the main skills we are looking for are much the same as above but with data analysis tools like ElasticSearch, Pandas and TensorFlow. Though, we’re at the start of that journey, so if you have some insight into better tools, we’re completely open to that. In fact, we positively want people to join our team with their own experiences, insights and ideas who can come in and tell us, Even better, you should be doing it like this instead!
You’ll be joining a rapidly growing team in a product innovation lab that is both transforming a large successful business and building a new generation of advanced technology around data analytics and mobile-first customer tools.
As an internal incubator we’re committed to doing things right (rather than fast), using the best tools available and creating exceptional products. We’re flexible on our tool-stack at this moment. In this particular role, we have the chance to dive deeply in our analysis of how the organisation is currently working, really get our business entity-relationship mapping right and lay down a data foundation on which we can build the next generation of our company and its growth.
Apply for this role if you like tough problems, using the best tools, working with smart people and making a long-term impact.