Senior Software Engineer
A Senior Software Engineer for the PacketSled Sensor Team is directly responsible for building cutting-edge capabilities for the emitting of network metadata at wire-speed. This individual is a core contributor for extending, maintaining and building higher efficiency capabilities while pushing the envelope of what is possible with hardware today – the goal of always doing more with less resources. This is not a “classic” Full Stack position, it is for someone that understand and prefers the lowest level details of a network stack, packet creation, protocol design and analysis and a passion for developing efficient software. The possibility of developing capabilities that may, ultimately, be open sourced or otherwise shared to the community is extremely beneficial and would include maintaining pull requests and answering questions as they occur.
Candidates Who Fit this Description
- Previous experience as a Senior Software Engineer with first-hand understanding of efficient software development practices.
- Expert in low-level software development and understands the nuances, debugging requirements and pitfalls of such development. Knowledge of hardware optimization, particularly in network card offloading, is a plus.
- Extensive experience in C and C++ development. Knowledge of Python and Golang are also pertinent.
- Understanding of network protocol design, analysis and debugging are fundamental.
- Experience with Make and CMake are beneficial.
- Background in Linux software development with an emphasis on RedHat Linux (CentOS).
- Experience in development of Domain Specific Languages (DSL) and an understanding and flexibility in learning and expending them is beneficial.
- Desire to co-manage and support open source software repositories, including documentation and Q&A support.
Successful Skills and Experience
- Self-starter with peer leadership experience.
- Excellent communication skills – both written and verbal.
- Hands-on experience with low-level software development and debugging.
- Candidate must have experience maintaining enterprise-level software.
- Candidate must have experience supporting enterprise-level software from an in-situ debugging perspective.
- Candidate must have strong documentation skills and a desire to help improve processes over time.
Essential Functions/Job Requirements
- Design, support and maintain the core PacketSled Network Sensor stack.
- Author documentation pertinent to development tasks.
- Assist in debugging and analysis of any Sensor-related issues.
- Hands on Experience writing software that intersects with hardware.
- Experience and a desire to find problems, fix them and employ all possible debugging capabilities to understand root causes.
- Deep understanding of software design principles, including the need for unit and system level tests as well as documenting designs and generating effective documentation.
- Advanced networking topologies, protocols and protocol design, infrastructure and networking architectures.
Minimum Required Education/Experience
- 6+ years of experience as a Software Engineer
- BA/BS in Computer Science, Software Engineering or another Engineering discipline or equivalent experience
- Excellent team player, creative, self-motivated, has a positive attitude and a strong desire for continued personal growth.
- US Citizenship Required
- Security Clearance not required
- A Background Check will be performed