About profile – ESSD_(Software)
In the software team at Micron, you will have a wide variety of opportunities starting from driver and tools development to validating the entire software stack which shall be used by many functional teams like firmware, validation, quality & reliability, and field engineering. It would be an exciting place to enable validation teams with automation frameworks, with tweaks to drivers at user and kernel space on both Windows, Linux and other real-time operating systems. Innovations and open-source contributions are possible at various levels in the software stack. Starting from understanding the product requirements, to tools requirements from different functional teams, to developing effective and efficient solutions, it’s the right place to start, right out of college in a fast-paced environment with wide knowledge of SSDs, SSD firmware and validation capacities. In this role, you would be responsible for design, development and maintenance of SSD Management applications and frameworks.
Roles & responsibilities can include but are not limited to:
Responsibilities:
- Develop (C/C++) code to manage NVMe/SATA storage devices
- Develop code for different operating systems (Windows, Linux, VMWare and Free BSD)
- Debug complex issues in involving different device drivers, operating systems, platform architectures and device firmware
- Understand and develop vendor specific NVMe/SATA commands to perform operations on SSD or to get data from SSD
- Develop code to issue vendor specific commands to get data from different controller vendors
- Review Code developed by peers
- Assist in DevOps processes for build and test automation
- Design and Develop APIs for 3rd party integrations
- Design and develop a framework/component stack in layered architecture to build various software solutions
- Design and develop abstraction layers for different OS platforms and SSD controller vendors
- Design and Develop APIs for easy integration with different technologies like CLI/GUI/REST API
Skillset:
- Knowledge of C/C++
- Good understanding of Python and C/C++ interactions
- Expert knowledge of Design Patterns and Data structures
- Knowledge of Device Drivers, system programming and multi-threading
- Understanding of Storage Devices, NVME/SATA
- Understanding of Windows and UNIX / Linux server storage environments
- Knowledge on building applications for Windows, Linux using different tool chains
- Excellent debugging and problem-solving skills
- Team player with excellent written and verbal communication skills, ability to participate of team discussions and taking decisions
- Good Knowledge of software engineering best practices, application development life cycle, source control management (git), build processes (Jenkins, Makefiles, MSBuild), testing and release
Education Requirement & eligibility:
- Bachelor’s/Master’s Degree in Electrical, Electronics or Computer Science Engineering
- CGPA requirements = 7.0 CGPA & Above
Location:
Hyderabad/ Bangalore