Responsibilities
Develop, enhance, and maintain software-defined networking applications using Go and other relevant programming languages.
Collaborate with the team to design and implement distributed and containerized microservices in Go, generate APIs/SDKs, build user-experience tools such CLIs/Terraforms/UI/etc., and several custom observability plugins.
Estimate tasks from the product backlog for sprint work. Coordinate with technical project managers and product management teams to define a schedule.
Assist in the analysis & evaluation of modern technologies to meet the demand for product roadmap and technology platform goals.
Help in the evaluation and recommendation of appropriate technologies for product features and platform.
Advocate and follow the best design and development practices, adhering to high engineering standards.
Prioritize and parallelize daily tasks and ad-hoc requests under own supervision.
Troubleshoot and resolve issues related to production software components, deployment configurations, and performance bottlenecks.
Conduct code reviews and provide constructive feedback to peers to maintain code quality and improve overall development processes.
Collaborate with cross-functional teams, including network engineers, system administrators, and stakeholders to ensure seamless integration and deployment of networking software solutions.
Stay up to date with the latest trends, technologies, and standards to provide recommendations for improving network performance and reliability.
Provide on-call support, responding to and resolving critical incidents. Conduct root cause analysis of incidents and implement measures to prevent recurrence.
Continuously evaluate and improve existing processes, tools, and systems to enhance productivity, efficiency, and reliability.
Basic Qualifications
Excellent problem-solving and troubleshooting skills, with the ability to identify and resolve complex issues.
Strong proficiency in Go or a great programmer who is willing to master it, with a proven record of accomplishment of developing and maintaining robust software applications and distributed/containerized micro-services.
Strong programming foundation with knowledge of data structures, networking, and transactions.
Effective communication and collaboration skills, with the ability to work effectively in a team environment.
Experience building scalable and fault tolerant distributed systems.
Familiarity with containerization technologies like Docker and orchestration tools like Kubernetes is a plus.
Detail-oriented with a strong commitment to producing high-quality software.
Continuous learning mindset and willingness to stay updated with emerging technologies and industry trends.
Preferred Qualifications
Experience in Software Defined Networking (SDN), Linux Networking, and general networking skills.