C++ Networking Engineer

IANULY Talent Accelerators

Our client is a venture-backed startup based out of NYC working within the High-Performance Computing vertical. Their goal is to enable all organizations to leverage the power of Big Compute and believe that their customer base should focus on the science behind their applications – not on the computing environment. Our client has developed an enterprise platform solution that performs discrete-event network simulation at a data center scale.

 

Environment:

Our client runs a High-Performance Computing Platform (HPC) on AWS and other cloud providers with many additional open-source technologies and middleware. Their team uses a mix of Linux and some Windows. This means supporting and testing their full stack in a public cloud environment along with distributed schedulers, logging solutions, metrics, storage archiving, and optimization of HPC application cost/performance.

 

Position

Our client is looking for Senior level candidates with strong knowledge of C++ and networking fundamentals. Additionally, experience with the design and development of complex/distributed systems and/or high-performance computing services is highly prized. Your primary responsibility will be to help design and develop software to run network simulations using the NS3 framework.

 

Requirements

  • Previous development experience with ethernet routers, ethernet switches, etc. within a data center environment.
  • Strong C++ programming experience (experience using at least C++11 standard version, standard library, and STL containers)
    • Good understanding of dynamic polymorphism and C++ specific notions, such as friend classes
    • Familiarity with templating in C++
  • A minimum of 7+ yrs. of development on Unix/Linux platforms.
  • Strong understanding of data communications, networking protocols and standards such as TCP/IP, UDP, and Link layer protocols
  • Strong understanding of Data Structures and Algorithms, and experience with NS2 or NS3 simulation environments is a plus.
  • Good understanding of how to design and develop distributed systems, including experience debugging and solving performance issues in these environments.
  • Good understanding of memory management in non-garbage collected environments.
  • Familiarity with operation of network components, such as Switches, Routers, and Nics
  • Experience with debuggers such as GDB, and memory checkers such as Valgrind.
  • Knowledge of component data sheets and specifications
  • Implementation of automated testing platforms and unit tests
  • Proficient understanding of source code management using GIT tools
  • Familiarity with continuous integration
  • Bachelor’s Degree or equivalent in Computer Science or a related field

 

Responsibilities:

  • Responsible for all phases of the project life-cycle activities, from initial analysis through production support including design, implementation, testing, integration, and maintenance.
  • Design, build, document, and maintain efficient, reusable, and reliable C++ code.
  • Implement highly performant and quality modules.
  • Identify bottlenecks and bugs, and devise solutions to these problems.
  • Maintain code quality, organization, and automation.
  • Ability to work independently and with minimal direction.