Location: Pune
Experience: 6-12 Years
Industry: Storage Technologies
We are seeking an experienced Senior Software Engineer to join our development team. The ideal candidate will have a proven track record of designing and implementing new features for large-scale, mission-critical applications in a multi-petabyte storage environment. You will work on various layers of our product, ensuring performance, scalability, and maintainability, while collaborating with cross-functional teams.
Key Responsibilities:- Feature Development: Design, develop, and implement new features in collaboration with the development team and stakeholders.
- Code Maintenance: Build and maintain efficient, reusable, and reliable C/Linux/systems code.
- Bug Fixing & Optimization: Identify performance bottlenecks and bugs, and propose solutions.
- Code Quality: Maintain high standards in code quality, organization, and automation.
- Reviews & Documentation: Conduct thorough code reviews and create high-quality documentation, including release notes and root cause analysis as required.
- Performance & Reliability: Ensure product quality across functionality, performance, stress, stability, and reliability.
- Mentorship: Guide and mentor junior team members on technical aspects.
- Independence: Work independently and take ownership of tasks, ensuring timely delivery.
Requirements
- Industry Experience: 6-12 years of experience in software engineering with a focus on storage technologies such as backups, virtualization, network-attached storage, and data protection solutions.
- Proficiency in C: Strong knowledge of C programming language, including language specifications, standards, and system-level functions.
- Linux Systems Programming: Expertise in Linux system programming, especially on SuSE, CentOS, RedHat, with a focus on storage domains (backup, file systems, filers).
- Memory Management: Thorough understanding of memory management in non-garbage collected environments.
- Threading Primitives: Knowledge of threading and experience designing thread-safe applications.
- Debugging & Tools: Experience with debugging tools such as WireShark, gdb, and Valgrind.
- Databases: Familiarity with Postgres, SQL, and other relational databases.
- Testing Platforms: Experience in implementing automated testing platforms and unit tests.
- Storage Domain Expertise: Strong understanding of storage technologies, including backup technologies, file systems (NFS, CIFS/SMB), and network file systems.
Desired Skills:- Problem Solving: Strong analytical, problem-solving, and logical reasoning skills with attention to detail.
- Leadership: Good organizational and leadership skills, with experience leading technical teams.
- Communication: Excellent written and verbal communication skills.
- Self-Motivated: Self-starter with the ability to work independently and in remote teams.
- Complex Systems: Capable of architecting complex software solutions and working with large codebases.