Job responsibilities
- Design and implements software modules in C++ included build system scripting, unit testing, integration testing, performance testing along with software packaging and configuration management.
- Participates in code/design reviews.
- Contributes toward product and internal documentation, technical specifications, software documentation and unit test plans.
- Assists in resolution of field problems as needed.
- Partners with QA (Quality Assurance) to ensure high quality software.
- Partners with owner, and collaborators of projects to deliver, support, and maintaining products.
- Opportunity to mentor junior-to-mid level engineers while the team is growing.
Qualifications
- 3+ years experience of professional software development.
- Have awareness in performance implication of various libraries in use included C++ STL to make decision whether to use 3rd party library or implement our own.
- Experience developing in C++ in a multi-threaded environment.
- Strong experience of application or backend development on Linux with comfortability in using Linux command lines & various tools.
- Experience in using Makefile, and CMake build system.
- Knowledge and experience in at least one of several kinds of real-time project development using C++ such as uses multi-threaded code in business application, embedded systems / IoT delivering real-world products, game development, network-based application striving for either low-latency or high-throughput such as web server, packet filtering, or trading related application.
- Good understanding of operating system concepts included memory management, caching system, etc.
- Hands-on experience with network programming (e.g., sockets, TCP/IP, UDP, multicast) using directly platform API e.g. socket API.
- Strong English writing & verbal communication skills.
- Ability to work partially in US hours.
Nice to have
- Experience developing on Windows.
- Experience in developing with either one of Rust, Go, C#, or Python, or other system-programming languages.
- Not afraid to be dealing with legacy code base (C++98) of some of our projects with eyes towards modernization to C++11 onwards.
- Experience in directly using Linux POSIX API e.g. multi-threaded with thread library, file system, I/O multiplexing, signal processing, etc.
- Have exposure to market data in financial sector, or having been exposed to investment, trading.
