Description

Skills Required:
HLD, LLD, Scaling, Architecture, System Design, Distribution System, software development


Desirable Skills:
Scalability, Low Latency, Fault Tolerance, Memory Management

Years Of Exp:
6 to 8 Years

About the Role:
Bachelor's degree (4 years) or higher in Computer Science or equivalent.
6+ years of software development experience with 2+ years experience in lead roles (responsible for designing, architecting, tech stack selection, scaling and operationalisation) for creating new systems and redesigning/re-architecting existing systems that were successfully delivered to users.
5+ years hands on experience with building high-performance, highly-available and scalable distributed systems, scaling and evolving them.
Hands-on experience with SQL and no-sql systems (KV, columnar and document stores), scaling and tuning them for heavy read/write loads, making right trade offs.
Hands on experience in asynchronous processing, message queues.
4+ years hands on experience with creation and scaling of large scale distributed systems (compute, messaging, notifications, caching, data stores, monitoring, CI/CD, etc).
Strong expertise in concurrency constructs and debugging memory leaks, expert level skills in object oriented low level class/interface designs.
Possess technical leadership qualities.
Extremely good at problem solving, is a self thinker.
Ability to multitask and thrive in a fast paced timeline-driven environment.
Good team player and ability to collaborate with others.
Self driven and motivated, very high on ownership Is a plus.
2+ years hands on experience in Java, tuning JVM, debugging memory leaks, etc.

About the team:
Software Development Engineer III


You are Responsible for:
Own a functional area from product conception to delivery
Given a fuzzy product requirement, work with other stakeholders, product to understand & refine the requirements and change them to tech requirements
Prepare high-level designs under the guidance and document them
Low-level design and code independently in multiple tech components related to functional area
Choose the right tech stack for a given situation under guidance from senior team members
Optimism any existing microservices
Take non-functional requirement (Reliability & Availability, Scale, horizontal scalability) into consideration while taking any decision
Build, develop, mentor and coach junior team members
Owning the quality of code, UT coverage, documentation etc
Collaborate with teams by contributing to the shared vision and working closely with cross-functional stakeholders.

To succeed in this role – you should have the following:
Lead tech roadmap basis product asks and business goals for product areas owned.
Responsible for choice of tech stack, design and architecture of the products owned.
Own scalability, performance, availability, service robustness, maintainability, ease of debuggability.
Contribute to reducing infrastructure cost while improving scalability, availability and responsiveness and onboarding newer use cases.
Lead design and architecture reviews.
Mentoring junior SDEs in the team.
Evaluate avenues for platformization, creation of reusable libraries, etc.
Lead improvement in development processes and practices for the complete org and drive adoption - coding standards, code reviews, design reviews, build processes / CICD, automated testing (functional, performance, etc), and operations.
Participate in hiring outstanding engineers in the company, and improve the hiring process.

 

Education

Any Graduate