SOFTWARE ENGINEER

New York, New York, United States

Share with: Facebook LinkedIn Twitter Send to a friend

Design, engineer and develop high throughput or low latency software applications and systems to support new trading strategies or business changes in distributed systems. Develop C++ market connectivity system. Implement new exchange interfaces to expand to new trading venues. Refactor and engineer existing software components for enhanced performance, scalability and robustness. Monitor and analyze software system logs to resolve real-time production system issues. Rapidly debug, fix and release critical software components running in production. Meet and consult with clients to determine software project requirements. 

Requires a Bachelor’s degree or equivalent in Computer Science, Software Engineering, or related field.

Minimum experience required: 0

Skills required: 
  • Must have demonstrated knowledge of latency sensitive systems with a strong understanding of low level systems and network development. 
  • Must have demonstrated knowledge of developing large scale distributed and real-time systems. 
  • Must have demonstrated knowledge of developing robust high-performance applications in C++. 
  • Must have demonstrated knowledge of concurrency, multithreading and synchronization in C++ and Java, including language best practices, system design, performance tuning and debugging. 
  • Must have demonstrated knowledge of data structures, algorithms and software design. 
  • Must have demonstrated knowledge of Linux/Unix system internals, including networking and scheduling, appropriate for developing high performance and low latency systems, Libc, GCC, GDB. 
  • Must have demonstrated knowledge of network protocols such as TCP/IP and UDP. 
  • Must have demonstrated knowledge of adoption of SDLC best practices in code health, testing, and maintainability. 
  • Must have demonstrated knowledge of test infrastructure to develop automated/repeatable tests to efficiently validate components on a continual basis. 
  • Must have demonstrated knowledge of test-driven software lifecycle, including writing unit tests, performing code reviews, and building integration tests. 
  • Must have demonstrated knowledge of supporting systems, including troubleshooting, diagnostics, debugging, log tracing and analysis. 
  • Must pass company’s required skills assessment. 
We will accept any amount of graduate coursework, graduate research experience or professional experience with the required skills.