We are looking for experienced C++ developers that are passionate about building scalable & performant tech. The ideal candidate is interested in solving low-latency systems problems and optimise performance-critical code. He/She is passionate about technology, interested in both low level details of how computer hardware operates and high-level design of large systems and finally has a “start up” mentality. Able to iterate quickly and write production quality code rapidly.
Responsibilities
- Your responsibilities will span the entirety of the trading system, and will cover multiple products & assets within the crypto-currency trading universe (e.g. cash, futures)
- Projects may include connecting to new exchanges, upgrading major trading system components, designing a completely new application from scratch
- In this role, you will have the opportunity to deploy your coding skills to build a large-scale trading system (from scratch!) and understand crypto-currency trading
Must have
Required technical competencies (must have):Preferred technical competencies:
- 2+ years experience coding in C++ (C++11 onwards); professional experience in back end engineering/ python programming
- Experience with writing high performance code & benchmarking
- Advanced skills with object oriented design, data structures and algorithms
- Experience with GDB & Valgrind
- Familiar with all phases of SDLC (unit testing, automatic build and release, peer-review, Jenkins, Jira, GNU Make / Cmake)
- Expert troubleshooting abilities with strong debugging and problem solving skills
- Understanding of network and hardware architecture
- Thread pinning, cpu isolation, kernel bypass, shared memory
Nice to Have
- Experience developing distributed systems and cloud services (AWS or other)
- Database applications, intermediate (SQL, KDB)
- Experience with running code in containerized environments is a plus, especially Docker and Kubernetes
- Experience with intel TBB, CAF of disruptor
- Experience with userspace network stack
- Experience with multiplexed event loops like boost asio, libuv
- Experience with custom memory allocation, memory pooling, handling of statically allocated buffers and buffer sets, using buffer sequences and scatter-gather io
- Experience with replacement classes for standard library classes
- Experience with NUMA, cache optimising code, hardware inference
- Experience in stopping template bloat
Your personality
You are a team player with good interpersonal and communication skills. Effective communication, both verbal and written, is essential for all roles at Portofino because we work together with all teams from development to finance to operations and recruiting. You are a proactive person who takes initiative, likes to challenge yourself and is willing to go the extra mile to achieve individual as well as team goals You enjoy working with people who challenge you and make you better at what you do. This means you have an open mindset, ask for feedback often and feel positive about constructive criticism