Job Description
About the job Python Application Engineer (Remote)
Role Brief
We are seeking an experienced Python Application Engineer to design and implement backend microservice HTTP REST APIs in line with the given user story requirements and software architecture.
The ideal candidate will have strong expertise in Python, Django, Microservices, HTTP REST APIs, RDBMS, Document Stores, Message Brokers, ORM, TDD, BDD, DDD, Acceptance Testing, and Agile Methodologies.
Experience with Docker, Kubernetes, Kafka, MongoDB, PostgreSQL, Redis is beneficial.
Responsibilities
_Application DevelopmentWork alongside a Product Manager and Software Architect to translate product requirements into Python application APIs and technicalfeaturesParticipate in code reviews of other team members to ensure consistent development standardsMaintain high level of software qualityAchieve high level of user story delivery velocityMaintain low number of defects in production
_Application TestingImplement Test Driven Development and Business Driven Development methodologies to ensure balanced automated test coverage for key business requirementsWork alongside a QA Engineer to address bugs and issues found after initial development
_Application DeploymentMaintain and evolve local Docker Compose environmentWork alongside a DevOps Platform Engineer to integrate with a CI/CD deployment pipeline for automated application deployments to a Kubernetes environment
_Domain KnowledgeBecome familiar with the business requirements and learn about the business domain relevant to the stories you work on
_Documentation and StandardsHelp to evolve team development standards to ensure high quality and speedy deliveryDocument team development standards and processes to be followed by you and your peersMaintain development environment setup guidesDocument architectural decisions and technical specifications
Key Requirements
_Experience5+ years as a Python Application Engineer, including at least 2 successful microservice projects3+ years working with Django framework and Django ORM2+ years experience with containerization technologies (Docker) and container orchestration (Kubernetes)Demonstrated experience building and maintaining RESTful APIs at scaleTrack record of implementing automated testing strategies (TDD/BDD)Previous experience working in an Agile/Kanban environmentHistory of successful collaboration with Product Management and Architecture teamsExperience with successful microservices architecture Domain Driven Design and implementationProven track record of maintaining high-quality code standards and documentation
_SkillsStrong proficiency in Python development with Django framework and Django ORMExperience building and maintaining RESTful APIs using Django Ninja or similar frameworksSolid understanding of microservices architecture and distributed systemsProficient with Git version control and collaborative development workflowsExperience with test automation frameworks and methodologies (pytest, unittest)Strong knowledge of relational databases (PostgreSQL) and Document Store databases (MongoDB)Familiarity with message brokers (Kafka) and caching solutions (Redis)Experience with containerization (Docker) and container orchestration (Kubernetes)Understanding of CI/CD pipelines and DevOps practicesKnowledge of API security best practices and authentication mechanisms (JWT)
_AttributesSolid problem-solving skills with the ability to work independently to meet given requirementsExcellent written and verbal communication skillsAbility to understand and implement business domain requirementsProactive approach to code quality
_OtherUse of time tracking software to accurately track time against Jira stories
Expected Outcomes
_Application DevelopmentDeliver high-quality Python microservice APIs that meet business requirementsMaintain development velocity while ensuring code quality standardsSuccessfully implement new features with minimal production defectsEnsure proper separation of concerns and domain boundaries in microservicesApply Domain Driven Design principles to service implementationIntegrate effectively with third-party APIs and internal servicesCreate reusable components and libraries where appropriateImplement robust error handling and validation mechanismsProvide meaningful logging and debugging capabilitiesDesign and implement scalable API endpoints following REST best practices
_Team CollaborationRegular participation in user story kicks off and sign off processesPresent the results of your work in demo recordings or screen share callsEffective communication of technical decisions and trade-offsTimely completion of assigned user storiesConstructive contribution to technical discussions
_Code Quality and TestingEnsure automated test coverage of critical business logicEnsure all code follows team coding standards and best practicesParticipate in regular code reviews and address feedbackImplement appropriate integration tests for key API endpointsMaintain clean, maintainable, and well-documented code
_InfrastructureHelp maintain and improve the local development environment (Docker Compose)Ensure services are properly containerized and configured for Kubernetes deploymentImplement effective data storage solutions using appropriate database technologiesDesign and maintain efficient message broker integrations
_Automation and DeploymentCreate and maintain automated test suites for all new featuresContribute to CI/CD pipeline improvementsEnsure smooth deployment processes through proper containerizationImplement automated rollback procedures for failed deploymentsCreate and maintain deployment configuration files (Helm)
_Monitoring and UptimeImplement comprehensive logging and monitoring solutionsCreate and maintain health check endpoints for all servicesHelp establish and maintain service level objectives (SLOs)Contribute to incident response and resolution proceduresImplement proper error handling and failure recovery mechanisms
_Documentation and StandardsMaintain up-to-date API documentation using OpenAPI/SwaggerDocument architectural decisions and technical specificationsCreate and maintain development environment setup guidesContribute to coding standards and best practices documentationDocument operational procedures and troubleshooting guides
_Performance and OptimizationOptimize API response times to meet performance SLOsImplement efficient database queries and caching strategies as appropriateMonitor and improve application resource usageIdentify and resolve performance bottlenecksImplement proper database indexing strategies
_Security and ComplianceImplement secure coding practicesEnsure proper API authentication and authorizationRegular security review of dependenciesMaintain compliance with data protection requirementsAddress security vulnerabilities in a timely manner
Keywords
Python, Django, Django Ninja, Django ORM, Pydantic, Docker, Kubernetes, Kafka, MongoDB, PostgreSQL, Redis, Document Stores, Message Brokers, Microservices, REST APIs, 3rd Party API Integration, Git, CI/CD, GitHub Actions, Test Automation, Unit Testing, Integration Testing, TDD, BDD, DDD, Acceptance Testing, Agile Methodologies, Kanban, Domain Knowledge