The Role – Senior Software Engineer
We are seeking a talented Senior Developer with a strong focus on Python-based AI / ML development, automation, and general software engineering. The successful candidate will play a key role in building and deploying machine learning features and data-driven applications. You will work on end-to-end solutions – from writing robust code and unit tests to developing APIs and integrating machine learning models into our product ecosystem. This role requires a mix of software engineering excellence, an eye for automation, and hands-on experience with AI / ML frameworks. If you are passionate about leveraging Python to solve complex problems and deliver scalable AI solutions, we want to hear from you.
Experience in the travel or retail industry would be an advantage.
Responsibilities
- Design, implement, and maintain software components that incorporate machine learning algorithms and data processing. Develop clean, efficient Python code for both backend logic and integration of ML models.
- Understand the business drivers behind each feature.
- Create and optimise data pipelines to collect, preprocess, and transform data for machine learning and analytics. Work with large datasets, ensuring data quality and availability for training and prediction tasks.
- Develop robust RESTful APIs and microservices (using frameworks like FastAPI or Flask) to expose machine learning functionalities and data services. Ensure APIs are secure, well-documented, and perform at scale.
- Write and maintain comprehensive tests for your code. Use PyTest for unit testing and Selenium (where appropriate) for end-to-end or UI testing to automate quality assurance. Ensure that new features have proper test coverage and meet quality standards before deployment.
- Collaborate with DevOps engineers to set up and maintain CI / CD pipelines for building, testing, and deploying applications and ML models. Containerise applications (Docker) and assist in orchestration (Kubernetes or cloud services) to ensure smooth deployment of scalable solutions.
- Work closely with data scientists to deploy machine learning models into production environments. Optimise model inference performance (leveraging frameworks like TensorFlow or PyTorch for model serving) and implement monitoring to track model performance, accuracy, and reliability post-deployment.
- Keep up-to-date with the latest developments in Python, AI / ML technologies, and software engineering best practices. Proactively suggest improvements to systems and processes, and contribute to architectural decisions that enhance the capabilities or performance of our AI solutions.
- Provide technical guidance and mentorship to Junior Engineers
Essential Skills & Experience
Bachelor’s degree in Computer Science, Engineering, or related field (or equivalent work experience). A Master’s degree or specialization in Artificial Intelligence / Machine Learning is a plus.Must have 8 years’ experience working as a Software Engineer on large software applicationsProficient in many of the following technologies – Python, REST, PyTorch, TensorFlow, Docker, FastAPI, Selenium, React, TypeScript, Redux, GraphQL, Kafka, Apache Spark.Experience working with one or more of the following database systems – DynamoDB, DocumentDB, MongoDBDemonstrated expertise in unit testing and tools – JUnit, Mockito, PyTest, Selenium.Strong working knowledge of the PyData stack – pandas, NumPy for data manipulation; Jupyter Notebooks for experimentation; matplotlib / Seaborn for basic visualisation. Experience with data analysis and troubleshooting data-related issues.Knowledge of design patterns and software architecturesFamiliarity with CI / CD and automation tools. Experience using Git for version control and platforms like Bitbucket for code collaboration. Knowledge of build tools and pipeline configuration (Jenkins) to automate testing and deployment.Strong problem-solving and analytical skillsPresentation and teamwork skillsUnderstanding of both Waterfall and Agile methodologies