Staff Software Engineer
Spirent Communications is seeking an excellent Staff Software Engineer to work as key member of Application and Security engineering team whose responsibility is to develop the network performance testing components for the award-winning Spirent Avalanche product family. We are looking for an experienced C/C++ developer who has various expertise in Linux based programming, network protocols, network drivers, high performance network traffic load generators, or similar technologies. Candidates should have good familiarity with how TCP/IP works in the real world, and have an interest in low-level optimization, debugging and L2-7 protocol implementation.
Spirent security engineers develop the next-generation solutions to ensure our connected world stays connect and stays secure. Our customers need products and security services to test, measure & securely handle information at massive levels. We're looking for engineers who distance themselves from the norm bringing new ideas from all areas, including virtualization, security, fuzzing, malware, DDoS, IoT, UI design and mobile networks. As a software engineer, you will work on a specific project critical to Spirent's needs with opportunities to switch teams and projects as you and our fast-paced business grow and evolve. We need our engineers to be versatile, display leadership qualities and be enthusiastic to tackle new problems across the full-stack as we continue to push the envelope in our field.
If you are a skilled software engineer who enjoys security and/or privacy work and is an expert in systems security, applications security, network security, IoT, data protection and infrastructure privacy, cryptography or automated malware analysis. This role is for you.
The successful candidate will add new protocols and features to traffic generator engines; restructure existing engines to meet new architectural goals; troubleshoot and resolve flaws in existing engines; help to identify new architectural goals; and communicate status, risks to test complete dates, and offer mitigation strategies to ensure on-time delivery of all committed projects to cross functional team. The day to day job includes requirements analysis, which would require protocols standards and technical forum research, making sure business requirement from customers is well understood and can put into a high-level design; Implement the test solution using C/C++, Python on Linux platform. Troubleshoot complex technical problems which involve software and hardware systems. Restructure/Optimize existing system to meet evolving performance and architectural goals; and well communicate status, risks to stakeholders. The candidates should be a good team player, a good self-motivator, and with strong passion of learning new techniques, developing and delivering high quality software.
- Bachelor's Degree in Computer Science, Engineering or related.
- 8 years of experience in similar job requirement is needed.
- Professional software development, including: Linux based programming, virtualization, TCP/IP stack, OpenSSL, and development of network protocols.
- Strong knowledge about networking technologies and protocols (such as TCP/IP, HTTP, TLS, Adaptive Bitrate Streaming, Traffic Replay, GTP).
- Strong problem-solving skills, experienced in complex debugging on Linux OS for L2-L7 protocol application, very familiar with GDB, GPROF etc.
- Good understanding on data structures, algorithms, and Linux Operating systems;
- C/C++ including complex debugging.
- Test-driven development, iterative development, Agile short release cycles, the full software lifecycle; and releasing/maintaining software in production environments.