Software Engineer at Cisco
Job Description
Cisco is a global technology company specializing in networking hardware and services. The Software Engineer will be responsible for developing and maintaining software for UCS family of computing systems, focusing on embedded software, firmware, and device driver development in storage components.
Responsibilities
- Develop software for UCS family of computing systems using C programming language in embedded software, RTOS, or Linux Kernel environments.
- Work on RAID controller firmware, OS device drivers, and management software.
- Collaborate with cross-functional teams to gather requirements, establish relationships, and lead software projects.
- Follow Cisco's 'Design Thinking Principles' to ensure secure and user-friendly software development.
- Write C code, unit tests, and maintain software independently.
- Debug and address software issues during development and in production systems.
- Contribute to technical design documentation and user documentation.
- Bring new ideas for product innovation and process improvement.
- Engage with BMC cross-functional and hardware design teams.
Skills
- Experience developing software using C programming language in embedded software or RTOS or Linux Kernel and or user level application development
- Experience working in RAID controller firmware or OS device driver and / or management software is highly desired
- Familiarity with storage technology like NVMe, SAS, SATA and knowledge of Redfish, System level functional knowledge including PCIe technologies would be a plus
- Comfortable working in a Server lab environment and hands-on with hardware equipment
- Understanding data center, cloud server product requirements, project and/or department needs
- Establishing relationships with appropriate cross-functional stakeholders to gather input, collect information and be able to technically lead software project and present status as needed
- Developing software consistent with Cisco ‘Design Thinking Principles’ with a focus on simplification and UX (User Experience) at its core, using secure coding practices, ensuring user privacy, and following software development best practices
- Writing C code, Unit tests, maintaining, enhancing software independently
- Identifying short- and long-term scope problems through design review participation and code reviews
- Testing any code developed to ensure high quality of work
- Partnering with other teams including design and product management to build the right solution for the customers
- Building technical design documentation to be used by the team as well as contributing to user documentation for end users
- Debugging and addressing software issues during development and in production systems to support customers
- Bringing new ideas for product innovation and helping improve software development processes
- Developing and maintaining software that manages storage components in Cisco UCS BMC (Embedded Linux) environment
- Engaging with BMC cross-functional (development as well as test teams) and hardware design teams
- Minimum of 1-10 years of experience in C programming language
- Knowledge of Linux embedded environments
- Experience developing firmware / software for networking or storage or GPU products
- Python scripting skills a plus
- Familiarity with PCIe technology for devices
- Storage protocols like SAS, SATA and NVMe
- DMTF Redfish and SNIA Swordfish model of managing storage components
- Hands-on working in the lab to setup equipment, bring-up new hardware and software and establish competitive product capabilities of different vendor solutions
Education Requirements
- Bachelors in Computer Science, Electrical Engineering, or related field
- Masters in Computer Science, Electrical Engineering, or related field
- PhD in Computer Science, Electrical Engineering, or related field
Benefits
- Medical, Dental, and Vision Insurance
- 401(k) Plan with Cisco Matching Contribution
- Short and Long-Term Disability Coverage
- Basic Life Insurance
- Wellbeing Offerings
- Paid Holidays
- Paid Time Off (PTO)
- Paid Time for Volunteering
- Employee Stock Purchase Program
Company Overview
