Title: Software Engineer (C,C++,System Programming)
Bangalore, Karnataka, IN
Job Summary
NetApp is an intelligent data infrastructure company that provides unified data storage, integrated data services, and cloud operations solutions to enterprise customers. We help organizations unlock the best of cloud technology. As a technical member of the Common Platform team, you will work as part of the team responsible for Operating System, Kernel, Low level software and System Engineering. As part of the Research and Development function, the overall focus of the group is on competitive market and customer requirements, technology advances, product quality, product cost and time-to-market. This position requires and individual who is creative, self-motivated, team-oriented, technology savvy, and driven to produce results for the NetApp business.
Job Requirements
- Contribute to all stages of software development: design, coding, debugging, testing, and performance improvement.
- Engage in technical discussions within the team and across functions, sharing insights and solutions.
- Develop software using C and C++ in LINUX and UNIX environments.
- Apply knowledge of computer architecture, operating systems, file systems, networking, algorithms, and data structures.
- Demonstrate expertise in Linux kernel, scheduling, kernel debugging, and driver integration.
- Possess knowledge of computer hardware and architecture, including processors, memory, motherboards, I/O subsystems, and data structures.
- Knowledge in storage technologies is advantageous.
Preferred Skills:
- Understand PCIe lanes, link training, and error handling.
- Implement and debug watchdog timers for system reliability.
- Knowledge of high availability concepts, including failover mechanisms, redundancy, and load balancing.
- Familiarity with Intel CPU architecture and machine check architecture, including error detection, reporting, and recovery.
- Develop, debug, and integrate device drivers in the Linux kernel.
- Understand basic BIOS and boot loader concepts, including initialization sequences and firmware interfaces.
- Manage interrupt requests (IRQ), interrupt service routines (ISR), and deferred processing in the kernel.
- Understand basic storage platforms, including disk arrays, solid-state drives (SSD), and storage virtualization.
Education
- Have 2 to 7 years of relevant experience.
- Hold a bachelor’s degree in electrical engineering or computer science, or equivalent experience; higher degrees are preferred.
Job Segment:
Test Engineer, Software Engineer, Cloud, R&D Engineer, Testing, Engineering, Technology