Druva delivers data protection and management for the cloud era. Druva Cloud Platform is built on AWS and offered as-a-Service, delivering globally accessible, infinitely scalable and completely autonomous enterprise data resiliency. Customers drive down costs by up to 50 percent by freeing themselves from the burden of unnecessary hardware, capacity planning, and software management. Druva?s patented cloud architecture transforms backup data into an asset, making it more open and accessible so customers can streamline governance, improve cyber resiliency, and gain critical insights to uncover opportunities and expedite decision making.
Druva has raised over $350m in venture capital, is trusted by over 4,000 global organizations and protects over 200 PB of data.
We are looking for a Senior Software Engineer with NodeJS and/or React JS being prominent experience requirements. This role will include responsibility for managing the interchange of data between the server tier and the users. Your primary focus will be the development of all server-side logic, definition and maintenance of the central database, and ensuring high performance and responsiveness to requests from the front-end.
Ideally the right candidate will have a focus on software delivery best practices and be able to demonstrate a leading role in definition of an industry aligned methodology. A direct contribution in framing quality delivery practises, both technology & process oriented, a distinct advantage.
Demonstrates a strong understanding of software architecture
Independently designs, implements and maintains software modules owned by the team
Can operate as SME for modules owned by the team
Analyses and determines effects of introducing new code and its impact on the architecture
Reviews software design and code, writes design documents
Escalates and handles red flags such as blocker bugs, environmental issues, and architectural issues leading to delay in the development activity. Resolves customer issues by interacting with support
Supports cross functional teams to achieve expected results
Guides other engineers to write well designed, efficient, testable code
Conducts technical interviews, supports hiring
Challenges status quo and suggests new relevant changes
Demonstrates application of new tools, approaches and methods
Debuggability, scalability, performance, security, product telemetry
Develops software modules for various parts of the system
Writes design documents and proposes design solutions
Demonstrates good understanding of software engineering processes such as agile methodologies, code-reviews, writing functional specifications
Understands and maintains existing code-base, adds features, fixes bugs, re-factors existing code
Solves challenging technical problems
Collaborates with team members and cross functional product teams
Writes well designed, efficient, testable code
Demonstrates strong knowledge of data structures
Demonstrates good understanding of development tools such as version control, effort management and ticketing and compiling and generating builds
Seeks help and advice from others when stuck to resolve existing issues at the earliest
Demonstrates a strong passion to learn
Possesses excellent interpersonal skills including communication and assertiveness
Estimates work assigned to self
Improves product quality by fixing bugs & enhancing product stability
Educated to degree level or with recognised and applicable industry certifications.
Minimum of 5yrs experience working as a software engineer
Strong knowledge of Node.js and frameworks available for it e.g. Express, Sequelize, etc.
Understanding the nature of asynchronous programming and its quirks and workarounds
Good understanding of server-side templating languages e.g Handlebars, EJS, etc.
Good understanding of server-side CSS pre-processors e.g SCSS, Less, etc
Basic understanding of front-end technologies, such as HTML5, and CSS3
Understanding accessibility and security compliance
User authentication and authorization between multiple systems, servers, and environments
Integration of multiple data sources and databases into one system
Understanding fundamental design principles behind a scalable application
Understanding differences between multiple delivery platforms, such as mobile vs. desktop, and optimizing output to match the specific platform
Creating database schemas that represent and support business processes
Implementing automated testing platforms and unit tests
Proficient understanding of code versioning tools, such as Git
Experience with Kubernetes a distinct advantage