C++ Developer

We run a High-Performance Computing Platform (HPC) on AWS with many additional opensource technologies and middleware. All our systems run in the Cloud so we always think cloud first! Our team uses a mix of Linux and some Windows. We are trying to remove each and every barrier that would keep the product team from executing faster than our competitors and releasing a clean, quality product. This means supporting and testing our full stack in a public cloud environment along with distributed schedulers, logging solutions, metrics, storage archiving, and optimization of HPC application cost and performance.

Role Description

We are looking for a C++ Developer with strong knowledge of networking concepts as well as design and development of complex/distributed systems and/or high performance computing services. Your primary responsibility will be to help design and develop software to run network simulations using the NS3 framework.

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

Requirements
  • Very strong C++ programming experience with a min. 7+ yrs. of development on Unix/Linux platforms.

  • Strong experience using at least C++11 standard version, standard library, and STL containers.

  • Strong experience with C++ compiler toolchains (e.g. gcc, clang), debuggers (e.g. gdb, lldb), performance, and memory analysis tools.

  • Strong experience building performant systems, such as high performance & low latency C++ applications, running under Linux OS. Experience with kernel/OS configurations and feature sets.

  • Strong experience with binary compatibility designs built with C++ and cross compilation support across different CPU architectures.

  • Strong understanding of Data Structures and Algorithms.

  • Good understanding of how to design and develop complex distributed systems, including experience debugging and solving performance issues in these environments.

  • Good understanding of memory management in non-garbage collected environments.

  • Experience with debuggers such as GDB, and memory checkers such as Valgrind.

  • 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.

Nice to Have (but not necessary):

  • Strong understanding of data communications and networking protocols and standards such as TCP/IP, UDP, and Link layer protocols

  • Strong experience building performant systems by networking multiple compute instances into clusters optimized with MPI for cloud (and cloud networking) environments.

Send your resume to hr@scalacomputing.com