Role Overview
We are looking for a passionate and highly capable Software Engineer to join our engineering team. The ideal candidate should have strong fundamentals in software engineering, the ability to design scalable and reliable systems, and a strong sense of ownership toward delivering high-quality solutions.
Responsibilities
- Design, develop, and maintain scalable, reliable, and high-performance software applications.
- Apply strong knowledge of Data Structures and Algorithms to solve complex engineering problems.
- Contribute to High-Level Design (HLD) and Low-Level Design (LLD) of software systems and features.
- Design and develop multi-threaded and concurrent applications with a focus on performance and reliability.
- Work with different types of databases, understanding their architecture, internals, performance characteristics, and appropriate use cases.
- Write clean, maintainable, and efficient code while following software engineering best practices.
- Collaborate with cross-functional teams to understand requirements, evaluate solutions, and deliver quality products.
- Take end-to-end ownership of assigned features and continuously improve existing systems.
Requirements
- Strong knowledge of Data Structures and Algorithms.
- Expertise in System Design, including HLD and LLD.
- Hands-on experience with multi-threaded/concurrent applications.
- Good understanding of databases and their internals, including different database architectures and performance considerations.
- Strong programming and problem-solving skills.
- Good understanding of software development principles, design patterns, and best practices.
Skills
- Data Structures
- Algorithms
- System Design
- Multi-threading
- Database Management