Job Description:
As a Principal Software Engineer at SanDisk, you will play a key role in designing, developing, and optimizing software solutions for our cutting-edge hardware devices. You will lead a team of skilled engineers, collaborating closely with cross-functional teams to deliver high-quality software that enhances the performance and functionality of our storage products.
Responsibilities:
Technical Leadership: Provide technical leadership and guidance to a team of software engineers. Drive the design and implementation of software solutions for SanDisk's hardware devices.
Architecture and Design: Architect and design software systems that efficiently interact with and control storage hardware components. Ensure scalability, reliability, and performance meet or exceed industry standards.
Coding and Development: Hands-on development of software components, modules, and applications. Write clean, efficient, and maintainable code while adhering to coding standards and best practices.
Collaboration: Collaborate with cross-functional teams, including hardware engineers, firmware developers, and quality assurance, to ensure seamless integration of software and hardware components.
Innovation: Stay abreast of industry trends, emerging technologies, and best practices. Introduce innovative solutions and technologies to enhance the functionality and performance of SanDisk's storage products.
Problem Solving: Proactively identify and address technical challenges, bottlenecks, and issues. Work collaboratively to find effective solutions and drive continuous improvement.
Code Review: Conduct and participate in code reviews to maintain code quality, consistency, and adherence to coding standards.
Documentation: Create and maintain comprehensive technical documentation for software architecture, design, and implementation.
Bachelor's or Master's degree in Computer Science, Electrical Engineering, or a related field.
years of experience in software development, with a focus on systems-level programming.
Proven experience in leading software development teams.
Expertise in Dart, Python or any related programming languages.
Experience with storage technologies, file systems, and device drivers.
Strong understanding of client applications and modern web development within dynamic environments
Excellent problem-solving and debugging skills.
Effective communication and collaboration skills.
Familiarity with Agile development methodologies.
Preferred Skills:
Knowledge of flash storage technologies.
Experience with embedded systems development.
Familiarity with storage protocols such as NVMe, SATA, or SCSI.
Experience with Linux kernel development.
See more jobs at Western Digital