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.
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.
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
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.
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 email@example.com