About the role
As a Software Engineer you will play a crucial role in designing, developing, and maintaining robust applications using Python and FastAPI frameworks. You will be responsible for leading technical initiatives, mentoring junior developers, and ensuring the delivery of high-quality software solutions that meet our clients' business requirements.
Key responsibilities
- Design and develop scalable applications using Python and FastAPI frameworks
- Lead the architecture and implementation of application solutions aligned with business requirements
- Conduct code reviews and provide technical guidance to junior developers and team members
- Collaborate with business analysts and stakeholders to translate requirements into technical specifications
- Troubleshoot, debug and resolve complex application issues and performance bottlenecks
- Implement best practices for software development, including testing, documentation and deployment
- Participate in system design discussions and contribute to technical decision-making
- Maintain and optimise existing applications to ensure reliability and performance
- Stay current with emerging technologies and industry trends in Python development
- Contribute to the continuous improvement of development processes and tools
What we're looking for
- 7+ years of professional software development experience, with at least 4 years specialising in Python development
- Demonstrated expertise in FastAPI framework and building RESTful APIs
- Strong understanding of object-oriented programming principles and design patterns
- Experience with relational and non-relational databases, including SQL optimisation
- Proficiency in version control systems, preferably Git
- Knowledge of software testing frameworks and test-driven development methodologies
- Experience with cloud platforms such as AWS, Azure or Google Cloud Platform
- Understanding of microservices architecture and containerisation using Docker and Kubernetes
- Excellent problem-solving skills and ability to work independently and collaboratively
- Strong communication skills and ability to mentor and guide junior team members
- Bachelor's degree in Computer Science, Information Technology or equivalent professional experience
- Preferred: Experience with CI/CD pipelines, Linux/Unix systems administration and agile development methodologies