We are seeking a Senior Software Engineer with expertise in C programming to join our team.
You will focus on enhancing DNS server software to improve its performance, scalability, and reliability. Your role involves working closely with cross-functional teams, developing new DNS features, and ensuring software quality through rigorous testing. If you have a strong background in systems-level programming and networking, this opportunity is for you. Apply now to contribute your skills to advancing DNS technology.
Responsibilities
- Design and implement enhancements to DNS server software with emphasis on performance and scalability
- Refactor and optimize existing code to increase maintainability and efficiency
- Collaborate with cross-functional teams to establish technical specifications and project requirements
- Develop new DNS features and extensions compliant with industry standards such as DNSSEC, EDNS(0), and IPv6
- Debug and resolve software issues including performance bottlenecks and edge cases
- Write high-quality, well-documented C code following best practices and coding standards
- Conduct unit, integration, and system-level testing to ensure software robustness
- Stay updated on the latest developments in DNS technology and networking protocols
- Participate in code reviews and offer constructive feedback to peers
Requirements
- 7 to 11 years of experience in C programming with a focus on systems-level development
- Strong understanding of DNS concepts, protocols, and architecture
- Proficiency in networking protocols, including TCP/IP and UDP with network programming experience
- Familiarity with Linux/Unix development environments
- Advanced debugging and problem-solving skills using tools such as gdb and valgrind
- Capability to work both independently and collaboratively in fast-paced settings
Nice to have
- Experience with ISC Bind or equivalent DNS server software
- Knowledge of advanced DNS features like DNSSEC, EDNS(0), and zone transfers
- Familiarity with IPv6 and its impact on DNS
- Skills in multi-threaded programming and concurrency
- Understanding of software security principles and scripting languages such as Python and Bash for automation and testing