We are seeking a highly skilled Software Engineer to join our dynamic team. In this role, you will be responsible for designing, developing, and maintaining scalable software solutions that impact millions of users. The ideal candidate has strong proficiency in Java and Python, as well as experience with Kubernetes for container orchestration.
The evaluation rounds will emphasize on object-oriented design principles, particularly focusing on SOLID principles (Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion) to ensure modularity, maintainability, and scalability in design. Candidates should demonstrate a solid understanding of these principles along with other core OOP concepts like inheritance, polymorphism, encapsulation, and abstraction.
We will assess their ability to build robust, maintainable architectures that align with industry standards. Additionally, we'll evaluate their familiarity with design patterns, as well as their ability to decompose complex requirements into well-structured, efficient solutions.
Responsibilities:
Software Development: Design, develop, test, and deploy high-quality software solutions using Java and Python.
Containerization: Implement and manage containerized applications using Kubernetes, ensuring scalability and reliability.
Collaboration: Work closely with cross-functional teams including product management, design, and other engineering teams to define, design, and deliver new features.
Performance Optimization: Analyze system performance and optimize applications for maximum speed and scalability.
Code Review: Participate in code reviews to maintain high code quality and share knowledge with team members.
Troubleshooting: Diagnose and resolve technical issues, providing support as needed for production environments.
Documentation: Write and maintain technical documentation for software systems and processes.