What are the responsibilities and job description for the Python Developer position at Zuven Technologies Inc?
Job Details
Position Overview: Client engineering team is responsible for developing, integrating and operating the capabilities marketing uses to engage in Email, SMS, Display, Media, Social and many other critical channels. Developers will participate in design, planning, development, release, monitoring and overall delivery of our web, mobile and application deliverables. The developer will be challenged to create new features and experiences that support millions of business & customer interactions each day while meeting the highest standards of availability, stability and performance. The ideal candidate will have extensive experience in microservice development, strong database design fundamentals, and proficiency in modern Python. The right candidate will be assertive and work to bring people together to help solve complex problems with an iterative approach.
Key Responsibilities:
- Develop and maintain microservices to ensure scalability and reliability.
- Design and optimize databases, including indexes, partitioning, and query optimization.
- Implement and optimize APIs, focusing on database connection pooling, asynchronous operations, data-driven design, and error handling.
- Collaborate with multiple developers on a single repository or project using version control systems, preferably git.
- Participate in trunk-based development and CI/CD processes.
- Utilize Terraform to manage key infrastructure.
- Develop and manage AWS Lambda functions, considering memory and time limitations, packaging, and parallelism configurations.
- Integrate AWS Lambda with AWS API Gateway when necessary.
- Write efficient, maintainable code in Python, leveraging type hinting, class/type systems, and virtual environment management tools.
- Conduct unit testing using frameworks such as pytest, unittest, nosetest, and/or doctest.
- Contribute to release management and build upon existing CI/CD and DevOps practices using tools like Azure DevOps, CircleCI, TravisCI, GitHub Actions, Chef, Puppet, or Ansible.
Qualifications:
- Required:
- Experience with microservice style development and maintenance.
- Strong fundamentals of database design, including indexes, partitioning, and query optimization for at least one type of database (RDMS, document database, OLAP, or key/value store).
- Ability to discuss the strengths and weaknesses of the chosen database and common performance optimization areas.
- Experience with API design and optimization, including database connection pooling, asynchronous operations, data-driven design, and error handling.
- Familiarity with trunk-based development and strong understanding of version control systems, preferably git.
- Strong fundamentals of modern Python (3.10 ), including type hinting, class/type systems, efficient iteration, and memory management.
- Familiarity with at least one Python paradigm (Object Oriented, Functional, Imperative).
- Understanding of virtual environment management and familiarity with tools like poetry, pipenv, virtualenv, venv, or conda.
- Familiarity with some IaC provider, preferably Terraform.
- Strong understanding of AWS Lambda, including memory and time limitations, packaging, parallelism configurations, and when to choose alternative services.
- Nice-to-Have:
- Experience with CI/CD tools and release management (CircleCI, TravisCI, GitHub Actions, Azure DevOps, Chef, Puppet, Ansible, etc.).
- Understanding of AWS API Gateway and its integration with AWS Lambda.
- Familiarity with bash scripting and/or Linux.
Personal Attributes:
- Strong problem-solving skills and attention to detail.
- Excellent communication and collaboration abilities.
- Proactive and self-motivated with a continuous improvement mindset.