We have an urgent requirement for Python Developers (3-5 years of exp).
Job Description:
Our client's data platform consists of a series of Python microservices, which become integrated through REST and RabbitMQ. We are actively searching for an enthusiastic Core Python Developer to become a valuable member of our vibrant team. The selected individual will play a pivotal role in advancing our platform, making it more feature-rich, robust, streamlined, and performant by employing innovative architectural and development principles.
Responsibilities:
Python Development:
- Write clean, maintainable, and efficient Python code in line with common Pythonic principles.
- Develop and maintain Python microservices, ensuring seamless integration with our existing platform stack.
- Utilize common Python data libraries, such as Pandas, Polars, NumPy, and SciPy for data manipulation and analysis tasks.
- Familiarity with asynchronous programming in Python using libraries like asyncio or Dask and understanding of concurrency and parallelism concepts.
- Write unit tests for developed code using pytest to ensure functionality and reliability.
- Collaborate with the QA team to ensure comprehensive test coverage.
API Development & Integration:
- Design and develop RESTful APIs using frameworks like FastAPI and Flask.
- Ensure smooth communication between microservices via REST and message brokers like RabbitMQ.
Messaging/Caching Systems:
- Understand and work with pub/sub architectures and are familiar with message brokers including RabbitMQ and Kafka.
- Implement and manage caching solutions using Redis to enhance application performance.
Version Control:
- Use Git for source code management, adhering to best practices for branching, merging, and collaborative development.
Database Operations:
- Work with database technologies such as PostgreSQL and SQLite, understanding schema design, querying, and optimization.
Technical Skills Required :
- Bachelor's degree in Computer Science, Engineering, or a related field.
- 3-5 years minimum as a Python Developer with a solid understanding of the Python language and its best practices, adhering to common Pythonic principles.
- Development experience within the paradigms of microservices, cloud technologies and modern containerization platforms, e.g. AWS, Azure, GCP, Docker, and Kubernetes.
- Proficient in implementing and managing Redis as an in-memory data structure store, used for caching, session management, and real-time analytics.
- Familiarity with Redis data types, such as strings, lists, sets, and hashes, and their appropriate use cases.
- Strong understanding of RabbitMQ as a message broker, facilitating asynchronous processing and inter-service communication. Familiarity with RabbitMQ's exchange types, routing, and queue bindings, and the ability to troubleshoot common RabbitMQ issues.
- Proficient in writing tests using libraries like pytest or unit test to ensure code reliability and functionality.
- Experience with Object-Relational Mapping tools like SQLAlchemy or Django ORM, simplifying database operations and queries.
- Strong understanding of relational database concepts, with hands-on experience in designing, querying, and managing data using PostgreSQL, SQLite and Cloud Data Warehouses. Familiarity with normalization, indexing, and optimization techniques to ensure efficient data retrieval and storage.
- Experience in developing applications using frameworks like FastAPI, Flask or Django to simplify tasks like routing, database operations, and security authentication/authorization flows as examples.
- Familiar with tools like Jenkins, Travis CI, or GitHub Actions to automate the building, testing, and deployment of applications throughout the CI/CD lifecycle.
- Proactively identify challenges and bottlenecks, employing strong troubleshooting skills to address them.
Soft Skills Required :
- Strong verbal and written communication skills.
- Energetic, self-directed, and comfortable in a fast-paced environment.
- Team player with good interpersonal skills and quick to learn.