We are looking for a Lead Software Engineer with extensive experience in C programming to join our team.
You will focus on enhancing DNS server software by improving performance, scalability, and reliability while collaborating with cross-functional teams to meet project goals. This role involves designing new features, optimizing existing code, and ensuring compliance with industry standards. If you have a strong background in systems-level programming and networking, we encourage you to apply and contribute to advancing DNS technology.
Responsibilities
- Design and implement improvements to DNS server software to enhance performance and scalability
- Refactor existing codebases to increase maintainability and efficiency
- Collaborate with diverse teams to establish technical specifications and requirements
- Develop and integrate new DNS features ensuring adherence to standards such as DNSSEC, EDNS(0), and IPv6
- Diagnose and resolve software issues including performance bottlenecks and edge cases
- Write clean, well-documented C code following industry best practices
- Conduct thorough testing including unit, integration, and system-level tests to ensure software robustness
- Keep updated with latest developments in DNS technology and network protocols
- Participate actively in code reviews and provide constructive feedback to peers
Requirements
- 8 to 14 years of experience in C programming with a focus on systems-level development
- Solid understanding of DNS architecture, concepts, and protocols
- Proficiency in networking protocols, including TCP/IP and UDP and network programming techniques
- Familiarity with Linux or Unix development environments
- Strong debugging and problem-solving skills using tools such as gdb and valgrind
- Ability to operate independently and collaboratively in a dynamic environment
Nice to have
- Experience with ISC Bind or comparable DNS server software
- Knowledge of advanced DNS features including DNSSEC, EDNS(0), and zone transfers
- Understanding of IPv6 and its impact on DNS
- Background in multi-threaded programming and concurrency
- Familiarity with scripting languages such as Python or Bash for automation and testing