Software Engineer - Python/FastApi
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