Job Description
We are seeking a highly skilled Software Engineer with expertise in Python and AWS Cloud to join our dynamic and innovative development team. As a Software Engineer, you will be responsible for designing, developing, and deploying scalable and reliable software solutions using Python and leveraging AWS cloud services. You will collaborate closely with cross-functional teams, including product managers, designers, and fellow engineers, to deliver high-quality software products that meet our customers' needs.
Responsibilities:
- Design and develop high-quality, efficient, and scalable software applications using Python, adhering to best practices and coding standards.
- Collaborate with the product management team to understand requirements, translate them into technical designs, and participate in the product development lifecycle.
- Write clean, maintainable, and well-documented code, while ensuring the overall quality of the code through code reviews and testing.
- Identify and address performance bottlenecks, debugging issues, and optimizing applications for maximum speed and scalability.
- Stay updated with the latest trends and advancements in Python, AWS and related technologies, and share knowledge and best practices with the team.
- Integrate and utilize AWS services such as Amazon S3, Amazon EC2, Amazon RDS, AWS Lambda, AWS DynamoDB, and others, as required by the application architecture.
- Ensure high performance, availability, and fault tolerance of applications by implementing AWS auto-scaling, load balancing, and monitoring mechanisms.
- Work closely with cross-functional teams, including designers and frontend developers, to ensure seamless integration of backend and frontend components.
- Participate in agile development methodologies, including sprint planning, task estimation, and regular team meetings.
- Mentor and provide technical guidance to junior team members, fostering their professional growth and development.
- Ensure smooth deployment and operation of the software in a cloud-based environment.
- Contribute to the continuous improvement of software development processes, tools, and methodologies.
Qualifications:
- Bachelor's degree in Computer Science, Software Engineering, or a related field.
- +3 years of experience in software engineering or a related role
- Solid understanding of Python programming language and its ecosystem, including frameworks like Scrapy, Django or Flask.
- Knowledge of containerization technologies like Docker and container orchestration platforms like Kubernetes is a plus.
- Extensive experience in designing and developing backend applications, APIs, and web services using Python frameworks
- Proficiency in database systems such as PostgreSQL, MySQL, or MongoDB, and familiarity with ORM (Object-Relational Mapping) frameworks.
- Strong understanding of software development principles, design patterns, and best practices.
- Experience with version control systems, such as Git, and familiarity with collaborative coding workflows.
- Solid understanding of software testing methodologies, including unit testing and integration testing.
- Experience working in an agile development environment and familiarity with agile methodologies (e.g., Scrum, Kanban).
- Excellent problem-solving and analytical skills, with a strong attention to detail.
- Effective communication and collaboration skills, with the ability to work well within a team.