Summary:
Plans, designs, develops and tests software systems or applications for software enhancements and new products including cloud-based or internet-related tools. Most companies should be able to match to a specific software development engineer position. Use this position if company does not breakout software development positions such as Software Engineer (Applications) (5141-5146) or Software Engineer (Systems) (5161-5166).
Duties & Responsibilities:
Work with your team to become best in class in quality, innovation, and time to market while creating the next generation of Viavi's Network Performance Management and Diagnostics (NPMD) platform
- Responsible for ensuring product features are functionally correct, fully validated, and demonstrably
meet specifications
- Apply sound engineering principles for highly maintainable and testable software
- Develop with an eye towards high performance and data throughput
- Solve complex problems and implement designs using C/C++
- Actively contribute ideas for product improvements and solutions
- Show a passion for continued learning. Stay abreast of new technology and trends
- Work closely with Software Development Engineers in Test (SDETs) to facilitate functional software validation
- Experience with Microsoft Visual Studio is a strong plus
Pre-Requisites / Skills / Experience Requirements:
- Bachelor’s degree in Computer Science, Computer Engineering or equivalent
- 5+ years of relevant work experience
- Strong skills in C and C++, including algorithm design, data structures, and design patterns
- A proven ability to initiate and drive forward software development in an Agile development environment
- A solid understanding of the Software Development Lifecycle
- Excellent written and verbal communications skills
- Critical thinking and the ability to structure elegant solutions to difficult problems
- A passion for creating, reusing and maintaining well-structured and architected solutions
- The ability to deliver high-performance, customer-focused features
- Experience in debugging and testing new software constructs as well as an ability to predict and prevent negative side-effects when modifying existing or legacy code.
Nice to have
- Experience with data modeling and management techniques for "big data"
- Knowledge of networking and TCP/IP
- Experience with RESTful API creation and consumption
- Working knowledge of multiple data formats, including XML and JSON
- Network architectures and what impacts their performance
- Experience with layer 7 protocols and their inner workings
Read Full Description