Job Description
Roles and Responsibilities:
- Code, develop design, and architect features related to the existing application. We expect you to own modules end to end and take pride in the work products you ship.
- Lead from the front, when it comes to delivering high-quality work products. Serve as a mentor to the team members
- Create and define performance metrics. Ideate, innovate and hack through the existing systems to improve performance.
- Perform code reviews, set coding practices, and guidelines within the team.
- Make sense of the product specs, be nimble in getting the issues resolved. Be a thought leader.
Critical Functional Skills:
- Solid understanding and knowledge of Java/C/C++. You should understand the concepts of multithreading, I/O, messaging, instrumentation, etc and their implementation in Java/Any other Object-Oriented Language.
- Proficiency in the implementation of algorithms and the use of advanced data structures to solve problems in computing. A solid foundation in the principles of computer science is desired.
- Ability to write clean, modular, and loosely coupled code by the use of design patterns.
- He/She should be able to break down and architect complex software systems. For example- Build cars Availability Engine for Ola.
- Strong decision-making ability
- Deep expertise in at least one programming language & tech stack.
- Substantial experience in building complex and scalable solutions.
- Strong object-oriented design skills, ability to apply design patterns, and an uncanny ability to design intuitive module and class-level interfaces
- The ability to do deep problem solving and build elegant, maintainable solutions to complex problems.
- Experience leading multi-engineer projects and mentoring junior engineers
- Experience with full life cycle development in any programming language on a Linux platform
- Comprehensive operational experience including, optimizations, deployments and tuning servers like apache/MySQL/tomcat/solr
- Prior experience in working with Agile software methodologies (XP, Scrum), TDD, and Continuous Integration(CI/CD) a plus.
- BTech, MTech, or higher in Computer Science or related technical discipline (or equivalent). Or high technical acumen and rich technical experience
- Experience in building data-driven web application design and development is a plus
- Expert level experience in building a scalable, large and complex business application.
Experience Required:
- Typically with an experience of 8+ years of development experience in a product firm.
- Must have lead, designed, architected and delivered at least 1 project in his previous assignments independently.
Minimum Qualifications Required:
- Btech/MS from a reputed Institute
- Deep expertise with any or combination programming languages: Java, C++, C#, Ruby, Scala,
- Go any object-oriented high-level proprietary or open-source language with strong programming constructs. We are not skill-specific but go by strength in competencies.
Machine coding:
- Single machine in-memory program
- Need a working code with functionality
- Readable and well-designed code with right abstractions, separation of concerns, right design patterns
- Performant code with concurrency and efficient data structures
- Write test cases covering the happy path and edge cases.
Problem Solving:
- Choose the right combination of data structures to solve the problem
- Identify most edge cases for the problem
- Identify opportunities of parallelism: utilizes multi-core solutions where applicable
Design & Architecture:
- Distributed systems design and system interaction
- Identify API signatures
- LLD with class design
- Solve for performance & availability
