Overview
Location: Full remote.
Schedule: Full time.
Job Purpose
We are looking for a Python Developer with extensive experience to create and deploy mission-critical applications, while ensuring high performance, reliability, and scalability. The ideal candidate will have deep expertise in Python and experience with distributed systems, caching, and managing applications that scale. You will work in a dynamic team to innovate and deliver high-quality software solutions.
Responsibilities
- Collaborate closely with cross-functional teams to develop and launch complex applications on various platforms.
- Design, evaluate, and improve scalable systems while ensuring robust integrations across distributed systems.
- Write high-quality Python code and demonstrate proficiency, or a willingness to learn, at least one additional language such as C#, Java, or another, valuing a flexible approach to engaging with different tech stacks
- Implement software design patterns and principles, including DDD, CQRS, and microservices architecture.
- Utilize knowledge of Kubernetes (k8s) and other tools to manage system performance and scalability.
- Maintain code quality through rigorous testing, including unit and integration testing, and code reviews.
- Develop and maintain comprehensive documentation and technical specifications.
- Lead problem-solving initiatives with innovative and scalable solutions.
- Mentor junior developers and contribute to best practices in software development.
Experience & Qualifications
- 4+ years of experience coding primarily in Python, with proven ability to handle complex codebase improvements and adapt to pre-existing coding patterns.
- Proficient in developing with REST APIs (e.g., Django, FastAPI, Flask) and knowledgeable in performance profiling and debugging.
- Experience with distributed systems, including Kubernetes, caching strategies, and understanding of fundamental principles like the CAP theorem.
- Advanced experience with CI/CD tools such as GitHub Actions, Jenkins, or TeamCity for automating build and deployment processes. Expert in using version control systems (Git) for branching, merging, and pull requests.
- Experience developing unit and integration tests to ensure high code quality and reliability. Ability to trace code's path of execution to diagnose and efficiently resolve issues.
- Strong skills in system design, capable of building scalable architectures with minimal supervision.
- Solid understanding and experience working with databases (e.g., SQL, NoSQL).
- Experience with SocketCluster for real-time, bi-directional communication (optional, secondary).
- Strong problem-solving skills and attention to detail, with the ability to work in an agile environment, adapting to changing requirements and delivering results on time.
- Proven communication skills to interact effectively across teams, fostering a culture of collaboration and excellence. Ability to lead by example, setting high standards for code quality and team collaboration.
- Committed to learning and technical growth.
- Fluency in English