Clickhouse C++ Developer

Ahrefs Logo

Ahrefs

πŸ“Remote - Worldwide

Summary

Join Ahrefs as a C++ Software Developer and contribute to the ClickHouse open-source project. You will collaborate with engineering teams to optimize data processing, improve database robustness, implement new SQL features, and work with the open-source community. This role requires strong C++ skills, understanding of Unix/Linux systems, and production debugging expertise. You will be responsible for handling the full development cycle of components, from task formalization to production support. Ahrefs is looking for someone who can independently manage tasks, make sound technical decisions, and work effectively in a fast-paced environment.

Requirements

  • Strong experience in C++ (including C++20)
  • Understanding of Unix/Linux systems inner working
  • Strong production debugging skills
  • Willingness to work on opensource and cooperate with the Clickhouse developers to upstream as many changes as possible
  • Experience in database and/or Clickhouse codebase

Responsibilities

  • Collaborate with software engineers to identify performance optimization opportunities for low latency massively parallel data processing, and work with other opensource contributors to improve Clickhouse performance and scalability
  • Implement optimizations specific to Ahrefs hardware and dataset to ensure data ingestion and queries perform efficiently on our infrastructure
  • Improve the robustness and fault tolerance of the data infrastructure by improving edge cases and error handling inside the database code as reported by the devops team, and adapt features of the database to simplify operations
  • Implement new features in the SQL interface and Clickhouse api to help business team develop new reports
  • Work with opensource Clickhouse community to upstream changes and improve the Clickhouse database as a whole
  • Help maintain Ahrefs specific fork of Clickhouse for features that cannot be upstreamed

Preferred Qualifications

  • Independently deal with bugs, schedule tasks and investigate code
  • Make well-reasoned technical choices and take responsibility for them
  • Understand the whole technology stack at all levels: from network and user-space code to OS internals and hardware
  • Handle full development cycle of a single component i.e. formalize task, write code and tests, setup and support production (basic DevOps), assure data correctness and quality
  • Approach problems with a practical mindset and suppress perfectionism when time is a priority
  • Write flexible, maintainable code and adapt to post-launch requirements/tweaks

Share this job:

Disclaimer: Please check that the job is real before you apply. Applying might take you to another website that we don't own. Please be aware that any actions taken during the application process are solely your responsibility, and we bear no responsibility for any outcomes.