Designs, develops, troubleshoots and debugs software programs for software enhancements and new products. Develops software including operating systems, compilers, routers, networks, utilities, databases and Internet-related tools.
Based in Roseville, CA, USA, this exciting role is for an embedded software developer, programming primarily in C, to join the team developing next generation network security solutions. This particular position is working in the networking specialty area of Layer 3 routing protocols. Responsibilities will include the design and development of new functionality, using cutting edge technologies, to secure mission critical enterprise networks. Developers should have an ability to operate as part of a cross-functional team with hardware, qualification and service organizations. The ideal candidate is comfortable at all stages and aspects of the product lifecycle, from concept through design and planning, implementation, production and field support. Work within this job classification falls into three major categories: (1) Maintenance and enhancement. 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. (2) Major enhancement and new product design. Designs and develops major functional or performance enhancements for existing products, or produces new software products or tools. (3) Quality and performance assurance. Reviews requirements, specifications and designs to assure product quality; develops and implements plans and tests for product quality or performance assurance.
The successful applicant must have a proven track record in design and coding of embedded solutions and experience with the full product development lifecycle. Must have: Strong communication skills, drive and customer focus is mandatory; a solid working knowledge of layer 3 routing protocols is essential (including RIP, OSPF, BGP protocols). Experience with multicast protocol PIM-SM and network security is preferred.
What we bring to the table:
- The opportunity to shape and influence a major new product line, in a world-leading technology organization that is successful in the market, growing and has big plans.
- Exciting technologies and product design challenges.
- A dynamic work environment and a culture of excellence in a world class software engineering team.
- All the benefits of a large company - a competitive benefits package, many training opportunities and growth opportunities both locally and in the wider company.
Designs enhancements, updates, and programming changes for portions and subsystems of systems software, including operating systems, compliers, networking, utilities, databases, and Internet-related tools
Analyzes design and determines coding, programming, and integration activities required based on general objectives and knowledge of overall architecture of product or solution.
Writes and executes complete testing plans, protocols, and documentation for assigned portion of application; identifies and debugs, and creates solutions for issues with code and integration into application architecture
Leads a project team of other software systems engineers and internal and outsourced development partners to develop reliable, cost effective and high quality solutions for assigned systems portion or subsystem
Collaborates and communicates with management, internal, and outsourced development partners regarding software systems design status, project progress, and issue resolution
Represents the software systems engineering team for all phases of larger and more-complex development projects.
Provides guidance and mentoring to less-experienced staff members.
Education and Experience
Bachelor's or Master's degree in Computer Science, Information Systems, computer Engineering, or equivalent
Minimum 5 - 7 years experience
Knowledge and Skills
Expertise in multiple software systems design tools and languages.
Strong analytical and problem solving skills.
Designing software systems running on multiple platform types
Software systems testing methodology, including writing and execution of test plans, debugging, and testing scripts and tools
Excellent written and verbal communication skills; mastery in English and local language. Ability to effectively communicate product architectures, design proposals and negotiate options at management levels.
- Strong C programmer
- Embedded Linux experience
- Drive, initiative and enthusiasm
- Excellent design, implementation and debugging skills
- Experience developing high-performance applications
- Excellent working knowledge of networking protocols from Layers 2-7
- Detailed experience working with and developing Layer 3 network routers (including knowledge of static routes, and unicast routing – RIP/OPSF/BGP).
- Excellent verbal and written communication skills
- An open and collaborative mindset suited to a fast moving, high-performance team.
- Ability to design and develop to meet business/product requirements.
Commitment to customer quality.
Preferred Skills & Experience:
- Experience developing software for embedded systems.
- Knowledge of the design and function of any of the following areas very desirable:
- Good understanding of Linux routing subsystem including the kernel 2.6 routing table.
- Stateful firewalls, VPNs and Intrusion Prevention systems
- DoS and DDoS techniques
- Working knowledge of IPv6
- Working experience with multicast routing protocols, PIM-SM
- Network protocols: HTTP, DNS, Email protocols, etc.
HP - 15 months ago
Hewlett-Packard Company, or HP, is an American multinational information technology corporation headquartered in Palo Alto, California, USA...