We are looking for Principal Software engineers for the team. As part of this role you will be responsible to raise the bar for engineering excellence and set up practices that would enable the next evolution of the products. You will need to be hands-on with the technology and curious to learn and unlearn. Your primary focus will be to technically lead design, develop and deploy some of the most critical and technically complex offerings . You should be someone who is passionate about maintaining a clean and maintainable codebase. In this role you would also be forthcoming to mentor and guide peers towards technical know-hows and help in ideating towards a simple but more scalable approach for complex workflows. Your ownership, drive and passion would help provide for a world class user experience and stability of our products. What you will do Design and develop highly scalable, highly available, reliable, secure and fault tolerant systems with minimal guidance for one of the world's fastest growing company in the transportation industry Translate business requirements into scalable and extensible design Pair with team members on functional and nonfunctional requirements and spread design philosophy, goals and improve the code quality across the team Collaborate with cross functional teams (Mobile, DevOps, UX, QA etc.) on execution and delivery. Partner with the team to define and execute the feature roadmap Provide technology leadership to the team and foster engineering excellence Research new technologies and tools that enable building simplistic architecture for the next generation What you will need Overall experience of 10-13 Years (3 years of experience at least in people management) Should have at least 7 years of hands-on experience in designing, developing, testing and deploying applications at scale. Proficient in System Design, Design patterns, database structure, Linux/Unix. Experience with functional programming and infrastructure management is a plus. Well versed with Agile methodologies, TDD and Test Engineering and Automation. Excellent understanding of interactive application development paradigm, memory management, performance/resource optimisations, database interactions, network programming, concurrency and multithreading, fault tolerance, monitoring, security and operability of systems Ability to pick up new technologies and independently navigate obstacles and find innovative solutions. Ability to seamlessly switch focus between tasks and enthusiasm for seeking out learning opportunities. Ability to build strong relationships within and beyond the team, enhancing knowledge expansion and problem-solving efforts, while also nurturing the same through the exchange of constructive feedback.