
Lead Software Developer (C++/ Distributed Software)
- Ottawa, ON
- Permanent
- Full-time
- Design and build distributed, multi-threaded system components that power Vertica’s core database engine.
- Develop features that ensure strong consistency, high concurrency, and fault tolerance at massive scale.
- Write robust, efficient C++ code with a focus on system-level performance.
- Collaborate on the integration of cloud storage backends such as S3, HDFS, and Azure Blob Storage.
- Diagnose and resolve performance bottlenecks across CPU, memory, disk, and network layers.
- Participate in architectural design discussions and technical planning.
- Work with QA, documentation, and support teams to ensure high-quality releases.
- Mentor and support junior engineers as part of a collaborative, remote-first team.
- Master’s degree in Computer Science or a related field; or a Bachelor’s degree in the same with at least 3 years of hands-on experience in systems-level software engineering.
- Strong proficiency in C/C++ systems programming.
- Proven experience building multi-threaded and distributed software.
- Solid grasp of algorithms, data structures, and computer systems.
- 2+ years of experience developing scalable, performance-critical software (e.g., databases, file systems, operating systems).
- Familiarity with relational database concepts and SQL internals.
- Strong debugging and problem-solving skills.
- Familiarity with consistency models, replication mechanisms, or storage engine architectures is considered an asset.
- A background in networking or I/O subsystems will be beneficial.
- Experience working with cloud object storage solutions (such as Amazon S3 or Google Cloud Storage) or distributed file systems (like HDFS or Ceph) is an advantage.
- Prior work on database internals or query execution engines is highly valued.
- Exposure to SQL optimization techniques or data processing engines (e.g., Apache Spark, Flink) is a plus.
- Familiarity with database file formats such as ORC and Parquet is desirable.