Linux Software Engineer

C++, Linux, Cyber Security, Kernel, High Performance, CentOS, DPDK, Software development, Software architecture, Software engineering, Security-Enhanced Linux, Network layer, Command-line interface, Code review, x86, Continuous integration
Full Time
$100,000 - $180,000
Work from home not available Travel not required

Job Description


Trinity Cyber is looking for a full-time senior Linux software engineer to join their engineering team to help build out a highly customized x86 Linux based network security system. Ideal candidates will be able to work with the network analysis and operations team to generate feature requests, design a conceptual software architecture, and implement that architecture.



Trinity Cyber's solution is a system comprised of many components including the core application and surrounding supporting tools.  You should be comfortable being the primary developer for one or more major subsystems within the core application as well as its interaction with the other tools.  You will be expected to be able to take a concept from whiteboard through design to implementation including unit and integration testing, code review, deployment to development and test systems, and integration with supporting tools. The software you develop will be "mission critical" and running 24x7 with SLAs in place depending on it operating correctly.



Experience writing high throughput and/or low latency user space applications in C++ (11/14 or newer preferred):

  • Linux networking stack and/or custom user space packet processing (DPDK or similar) experience highly desired
    • Related development experience such as high frequency trading, game engine development, or high performance compute are also applicable
  • Performance tuning on Linux - full system (vTune, perf, gprof, etc.) and micro-benchmarking approaches
  • Throughput/Latency tradeoffs
  • Familiarity with basic function of major kernel subsystems (network stack, memory management, process/thread management, etc.); especially interaction with user space applications
  • Ability to separate 'fast path'/'data plane' from 'slow path'/'control plane' functionality
  • Experience with "lockless" data structures; including CPU architecture level interactions

Experience working on larger systems:

  • 2S and 4S Intel architectures including NUMA constraints
  • Applications with large memory footprint and impacts on cache efficiency for high throughput/low latency code
  • Hardware/software and user space/OS kernel interactions - BIOS tuning, cstates, process groups and affinity, PCI CPU affinity
  • Process and thread pinning

Knowledge of general software development under Linux (CentOS 7):

  • Basic systems administration: package management, shell scripting, SELinux
  • basics, common service configuration (sshd, httpd, named, dhcpd, etc.), iptables
  • Knowledge of compiler, debugger, and testing tool chains - gcc/clang/icc, gdb, CMake, autotools, lcov, gcov, Google Test, etc.
  • Continuous integration/continuous deployment systems - Jenkins, Bamboo, etc.
  • Static and dynamic code quality/code analysis tools - CodeSonar, cppcheck, sanitizers
  • Skill with at least one command line text editor (vim, emacs, etc.)

Understanding of network protocols:

  • Basics - Ethernet/IPv4/IPv6/TCP/UDP
  • HTTP (1.X)
  • WebSockets and 2.X/SPDY experience welcome
  • DNS
  • SMTP
  • Routing protocols
  • BGP/RIP/OSPF/etc.
  • Telnet
  • FTP

Familiarity with issues surrounding application layer proxying of network protocols:

  • Transparent intercepting proxy vs. explicit proxy
  • L2 vs L3 vs L7 transparency and performance/reliability impacts of proxies on various protocols
  • Experience with Linux "tproxy" or equivalent features (either standard stack or custom stack)

Experience with Tier 1 ISP grade high performance multi-node x86 network appliance development desirable:

  • 10Gbps+ throughput application layer proxies
  • 100,000s+ connections/s and concurrent connections
  • Liveness detection, node failover, load balancing, and state distribution in multi-rack level systems
  • Multi-tenant environments

Additional qualifications will include:

  • A Bachelors degree in the area of Computer Science, Technology, Engineering, Math or a related field. A Master’s degree would be a plus.
  • Must be authorized to work in the US without sponsorship (no corp-to-corp)
  • Must be local to the DC/MD/VA area and have the ability to work on-site at our office in Bowie, MD (Note: We have flexible working hours mitigate any commute concerns to the Bowie area).



Must possess the highest level of personal integrity, value team success over individual achievement, have the ability to contribute significantly to extending a culture of collaboration, both internally and externally, in order to maintain the superior reputation of Trinity Cyber - and enjoy having fun.



Negotiable salary, paid time off, and full benefits for the employee at no cost with the option to add dependent coverage. 

Dice Id : 10365473
Position Id : 6174508
Originally Posted : 4 months ago
Have a Job? Post it

Similar Positions

Linux Administrator
  • Career Advancements, Inc.
  • Washington D.c., DC
Senior Linux Engineer
  • Software Consultants Inc.
  • Bethesda, MD
Linux Administrator
  • IS Mavens Corporation
  • Bethesda, MD
Senior Linux Administrator
  • DISYS - Digital Intelligence Systems, LLC
  • Washington D.c., DC
UNIX/Linux System Admin
  • Omm IT Solutions
  • Windsor Mill, MD
Unix/Linux System Administrator IV
  • Information International Associates, Inc.
  • Alexandria, VA
Linux System Administrator
  • Attain
  • Washington, DC
UNIX/Linux System Admin
  • UpperRanchCo
  • Baltimore, MD
Senior Linux System Administrator
  • Leidos
  • Washington, DC
Infrastructure Linux Team Member
  • ClearFocus Technologies LLC
  • Mclean, VA
Linux System Administrator
  • Piper Companies
  • Springfield, VA
Linux Administrator
  • Infinity Consulting Solutions
  • Arlington, VA
Intermediate Linux System Administrator
  • Medical Science & Computing, Inc.
  • Bethesda, MD