Python Developer
Skills
About this role
We are looking for an experienced Python Software Engineer to design, develop, and maintain scalable, high-performance software solutions. The ideal candidate should have strong hands-on expertise in Python development, backend engineering, API development, cloud technologies, and modern software engineering practices.
Key Responsibilities
• · Design, develop, test, and maintain scalable applications and backend services using Python.
• · Build robust and reusable components, APIs, microservices, and integrations.
• · Develop RESTful APIs and integrate with internal and external systems.
• · Write clean, maintainable, well-tested, and production-ready code.
• · Troubleshoot complex technical issues and optimize application performance.
• · Work with databases, data models, caching, and asynchronous processing.
• · Implement secure coding practices, authentication, authorization, and API security.
• · Collaborate with Product Managers, Architects, DevOps, QA, and other engineering teams.
• · Participate in code reviews, technical design discussions, and architecture decisions.
• · Develop automated unit, integration, and functional tests.
• · Work with CI/CD pipelines and modern DevOps practices.
• · Monitor applications in production and support troubleshooting and root-cause analysis.
• · Contribute to technical documentation and engineering best practices.
Required Skills
• · Advanced proficiency in Python with strong knowledge of Python 3.x.
• · Strong understanding of object-oriented programming, data structures, algorithms, and design patterns.
• · Experience with Python frameworks such as FastAPI, Flask, or Django.
• · Strong experience developing REST APIs and microservices.
• · Good understanding of SQL and relational databases such as PostgreSQL, MySQL, or Oracle.
• · Experience with NoSQL databases such as MongoDB, DynamoDB, or Redis is preferred.
• · Strong knowledge of Git and version-control practices.
• · Experience with unit testing frameworks such as PyTest or unittest.
• · Knowledge of asynchronous programming using asyncio and related Python frameworks.
• · Experience with Docker and containerized application development.
• · Understanding of CI/CD and DevOps practices.
• · Strong debugging, problem-solving, and performance-optimization skills.
Core expectations (must have exposure across all):
• Software engineering: Proficiency in Python (preferred) or Java, with solid fundamentals (clean coding, testing, APIs, debugging, performance, and maintainability).
• Cloud engineering: Working knowledge of at least one public cloud provider—AWS preferred—including hands-on familiarity with deploying/running services, IAM/security basics, logging/monitoring, and common managed services.
• AI/ML exposure: Practical exposure to AI/ML concepts and workflows (e.g., model integration patterns, basic ML lifecycle understanding, evaluation basics), sufficient to ramp into agent development with minimal hand-holding.
Preferred experience (strong differentiators):
• Hands-on experience integrating with frontier model APIs (e.g., OpenAI or similar), including prompt design, tool/function calling, streaming, and reliability/cost considerations.
• Familiarity with advanced agent architecture concepts such as memory, guardrails/assurance, and MCP (Model Context Protocol) or similar patterns for tool interoperability.
• Experience with conversational/agent frameworks or platforms, such as LangGraph, CrewAI, Rasa, Decagon, or equivalent orchestration frameworks, including building multi-step workflows and tool-based agents
Education & Experience
• · Bachelor's or Master's degree in Computer Science, Engineering, Information Technology, or a related field.
• · Typically 5+ years of software engineering experience, with strong hands-on Python development experience.
• · Experience working in Agile/Scrum development environments.
• · Strong communication and collaboration skills.
• · Ability to independently analyze complex technical problems and deliver scalable solutions.
Nice to Have
• · Experience designing highly scalable distributed systems.
• · Knowledge of system design and software architecture.
• · Experience with event-driven and asynchronous architectures.
• · Experience in financial services, enterprise applications, or other large-scale environments.
• · Exposure to security, observability, and performance engineering.