Senior Developer: C++ and Performance
In need of a Senior Developer to help us build and improve fast, scalable versions of novel machine learning and AI algorithms, as well as related algorithms and interfaces. The tasks performed by the incumbent will be varied and will be assigned based on the incumbent’s interests and experience, which may include things like working on a unique transactional database engine or improving memory management and garbage collection engines or implementing and optimizing new software functionality on the GPU or complex multithreaded coding.
The incumbent will need to have a sense of humor and be able to work in a fast-paced start up environment with shifting schedules and priorities. Anyone joining our team should have the ability and willingness to accept criticism and be able to explain and defend their suggestions and ideas when criticized.
- Develop maintainable, high-performance capabilities given algorithms or mathematical models
- Devise and improve algorithms
- Collaborate with team members on overall system design
- Find bottlenecks and improve performance of existing code
You will love this job if:
- You feel proud when you make a piece of software that used to take an hour to run complete its task in 30 seconds…
- …and the software now is also more numerically accurate.
- You enjoy following the advancements of computing hardware and have ideas on how you can take advantage of the new capabilities.
- You believe that you can have clean, understandable, elegant code that also runs fast, and enjoy demonstrating to others how it is possible.
You should get in touch with us if:
- You have at least of 7 years of experience with C++
- Experience building scalable distributed systems
- You have extensive knowledge or experience in three or more of the following areas and are interested in at least couple others: cache optimization, memory allocation, garbage collection, GPGPU development, SIMD, multi-threaded development, multi-core optimization, operating systems, compiler / interpreter design and implementation, compiler optimization, database engine development, processor architecture, algorithms, computational complexity, high-performance computing, distributed computing, networking protocols, or data compression algorithms.
- BS in Computer Science or equivalent work experience