Dell Software Principal Engineer C/C++ BIOS in Bengaluru, India
Dell creates technology solutions for a changing world. Our Information Technology (IT) Architecture team translates our customers’ business requirements into total enterprise-wide solutions. It takes deep technical knowledge to create architectural designs that exceed service requirements. We’re skilled in analyzing the customer’s business goals, objectives, needs and general business environment to create technical system solutions. Our expertise includes integrating hardware, processes, methodologies and software into the customer environment.
As a Principal Software Development Engineer, you will be responsible for the design and development activities associated with software using a range of applicable technologies (e.g., programming languages, compilers, assemblers, debuggers, other tools) for products used in local, networked or Internet-related computer programs. Analyzes requirements and develops innovative, useful software. Modifies existing software products to add new functions, adapt to new hardware, improve performance or enhance product usability. Leads in product development in all stages from planning and design to development and testing. Completes documentation and procedures for installation and maintenance. Assists training with production of formal training material for sales/marketing.
The team "Client Product Group" is responsible for building and delivering manageability software for Enterprise Client line of business (eg. Laptops, Workstations, Desktops etc.)
Responsible to work with external partners and internal Dell technology, marketing and engineering teams to Define/Design/Architect products for Next Gen Client Platforms.
Managing early technical engagements with key development partners
Defining and implement the overall software architecture and working in collaboration with HW and SW engineering for implementation
Developing detailed architecture and design specifications
Responsible for authoring UEFI FW specifications, creating UEFI protocol drivers, Applications on Wireless chipset reference code and developing / supporting platform UEFI FW on X64 platforms.
Responsible for all software and UEFI FW related issues during the planning, development, and validation stages of the program. You will be working on next generations products and will have an opportunity to gain experience on best in the world client technologies.
Your responsibilities may include but not be limited to: Understand feature requirements, architecture and design UEFI FW development mainly in C language Unit Tests development UEFI FW code debugging UEFI FW integration with other server HW and SW platform components, like CPU, PCH, FW, OS etc.
Participates in the software development lifecycle, which includes research, new development, modification, security, correction of errors, reuse, re-engineering and maintenance of software products
Responsible for the delivery of products within budget, schedule and quality guidelines.
Works with the team to develop, maintain, and communicate current development schedules, timelines and development status.
Manages or utilizes software that is built and implemented as a product, using best-in-class development process/lifecycle management (ex: Agile, Waterfall).
Creates technical documentation of software products/solutions. Assists with the development and review of end user and technical end user documentation.
Protects Intellectual property by working appropriate legal elements (ex: procurement, patents, opensource).
Makes changes to system software to correct errors in the original implementation and creates extensions to existing programs to add new features or performance improvements.
Designs and develops major functional or performance enhancements for existing products.
Develops and implements plans and tests for product quality or performance assurance.
Technical understanding of common security vulnerabilities and risks, as well as countermeasures and compensating controls
Usage of source code analysis tools Fortify, Coverity, Clang, or others
7 to 14 years of relevant experience or equivalent combination of education and work experience.
Experience in programming in C, Embedded Programming in C and C++ Knowledge in X86 / X64 Architecture and Instruction set.
Experience in using PCIe Analyzer, Wireless sniffer
Experience in embedded OS driver specifically on Network, USB, SATA
Experience in Filesystem drivers specifically NTFS, FAT32, Ext3 systems.
Test Driven Development including Unit Tests environments for C
Must have strong debugging and troubleshooting skills Ability to write and analyze requirements, functional specifications, design specifications, test plans, and documentation
Ability to prioritize and manage work to critical project timelines in a fast-paced environment and be organized, have an eye for detail, and be able to put ideas into a tangible form
Ability to develop new approaches to complex design problems
Knowledge of Intel architecture little endian, x86, x64
Remote debugging experiences on target platforms using ARIUM
Working with XML Basics of SW architecture, layered design, software patterns for embedded systems and resource management
Cultivates, develops and manages strong relationship with team members.
Ability to communicate design rationale and build consensus
Ability to prioritize and manage work to critical project timelines in a fast-paced environment
Ability to develop new approaches to complex design problems
Influences others through their professional/technical expertise.
Must be organized, have an eye for detail, and be able to put ideas into a tangible form.
Able to achieve mastery of new tools, languages and operating systems with some training and on-the-job experience.
Versed in the concept, use of and selection of revision control software (e.g. SVN, Git, ClearCase, Perforce or similar software).
Able to apply Software Lifecycle and Quality Assurance methodologies in a cost-effective manner, to bring high-quality products to market on time.
Understanding of software development lifecycle, product development lifecycle, and Agile development methodologies.
Master/Bachelor's degree in Computer Science, Computer Engineering, or related discipline, or equivalent work experience
Participation/Contributions to UEFI Spec/BIOS forum(s)
We offer highly competitive salaries, bonus programs, world-class benefits, and unparalleled growth and development opportunities — all to create a compelling and rewarding work environment.
Our Culture Code unites us and makes us a great family of companies and a great place to work. It’s how we run the business, go to market, work together and provide inspirational leadership.
Our culture code is defined by our values and are made real every day by defining expectations for how we work and how we lead.
Dell is committed to the principle of equal employment opportunity for all employees and to providing employees with a work environment free of discrimination and harassment. All employment decisions at Dell are based on business needs, job requirements and individual qualifications, without regard to race, color, religion or belief, national, social or ethnic origin, sex (including pregnancy), age, physical, mental or sensory disability, HIV status, sexual orientation, gender identity and/or expression, marital, civil union or domestic partnership status, past or present military service, family medical history or genetic information, family or parental status, or any other status protected by the laws or regulations in the locations where we operate. Dell will not tolerate discrimination or harassment based on any of these characteristics. Learn more about Diversity and Inclusion at Dell here (http://www.dell.com/learn/us/en/uscorp1/corp-comm/cr-equal-employment-opportunity?c=us&l=en&s=corp&cs=uscorp1) .