Druva is a leading provider of continuous data protection and disaster recovery solutions.
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 AngularJS 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
- 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