Python Developer
Who we are looking for
We are looking for an enthusiastic and adaptable Mid/Senior Developer to join our client's project, to work on the ongoing extension and re-platforming of the company's systems onto a modern architecture employing Python services as part of an event driven system running on AWS Cloud infrastructure.
The client's tech team is split into several areas of responsibility. The Back Office is responsible for all the systems required to sell to a customer, other than the website or website merchandising. This therefore covers all the systems required to support product management, order management, inventory management, logistics and supplier management, warehouse management and customer service.
The Back Office systems are a combination of custom build software, opensource software and licensed software. The Back Office runs 5 development squads working on differing roadmap projects. The majority of the client's core systems are custom built. There is a culture of assessing and using the most suitable technology for the requirements, so the squads periodically introduce new technologies refreshing systems where required.
You will be working in a mixed languages environment and developing the client's platform using emerging technologies (Docker, Terraform, Nomad, GraphQL, serverless computing tools) and architectures such as event sourcing, CQRS, and MicroServices. The Technology team embraces an Agile mindset and processes.
Benefits
What we offer
- 100% remote
- flexible working hours
- work in a small, self-managing team
- self-development day every other week (work on something that interests you, but is not necessarily on the roadmap)
- quarterly, week long trips to the client's offices in London, UK (once the pandemic's over)
- 7.5h long workday
- competitive pay and career progression opportunities
Requirements
You should have good functional knowledge of Python and its ecosystem. You have previous experience developing cloud-native services, and a passion for writing readable and maintainable code using XP techniques such as CI, TDD, and pair-programming. You will work closely with the Product Owner, QA, Architect, and other development teams. Keen to learn with your peers while working on a range of modern techniques and patterns. Your team will develop maintainable, modular, scalable software, using industry best practices throughout.
What you’ll need:
- 5+ years experience building and maintaining distributed applications.
- Demonstrable understanding of OOP.
- Good functional knowledge of Python and its ecosystem.
- Experience building microservice based ecosystems.
- Experience with event driven architecture.
- Experience working with SQL or NoSQL databases.
- Hands-on experience of TDD.
- A good understanding of Scrum and XP and related Agile methodologies.
- Experience with continuous integration, automated deployment and continuous delivery.
- You are curious about learning and adopting new technologies, languages and practices.
- Good communication and team ethic.
- Ability to adapt and learn on the fly.
It would also be an advantage if you have
- Interest in software architecture and DDD.
- An understanding of e-commerce, supply chain, logistics and finance.
- Experience implementing or maintaining ERP systems in an e-commerce environment.
- Experience is using AWS Lambda or other serverless computing tools.
- Interest in working with React and Typescript.
- Involvement in open source projects.
- A degree in computer science or other engineering related subjects.