Senior Golang Engineer
Virtasant · Austin, Texas, United States
IT Services and IT Consulting · 51-200 employees
About the role
Design, develop, and maintain large-scale cloud-native applications using Golang within a Kubernetes environment. Troubleshoot production issues, optimize containerized workloads, and ensure high performance through rigorous testing and observability.
What they look for
Requirements
Requires 5+ years of professional software development experience with deep expertise in Golang and container technologies. A bachelor's degree in Computer Science or a related field is preferred, along with strong problem-solving skills and experience in distributed systems.
Full description
Job Title: Senior Golang Engineer
Type: Remote Coverage: Pacific Hours (8:00 AM – 5:00 PM PST)
Job Description:
We are looking for an experienced Senior Golang Engineer to join our engineering team. This role focuses on building and maintaining large-scale cloud-native applications with Golang while working extensively with Kubernetes, containers, and distributed systems. The ideal candidate has deep expertise in Golang, enjoys debugging complex production environments, and thrives in a fast-paced engineering culture with a strong emphasis on code quality and Test Driven Development.
Key Responsibilities:
Golang Development
- Design, develop, refactor, and maintain large Golang codebases.
- Demonstrate deep knowledge of Golang, including language internals.
- Read, understand, and contribute to complex existing codebases.
- Write comprehensive unit and integration tests using the standard Golang library, Ginkgo, and Gomega.
- Apply Test Driven Development (TDD) practices throughout the software development lifecycle.
Troubleshooting and Debugging
- Troubleshoot production applications using logs, profiling, and debugging tools.
- Investigate and resolve performance issues across distributed systems.
- Analyze production issues and implement long-term solutions to improve reliability.
Kubernetes and Container Platforms
- Deploy, scale, and maintain applications running on Kubernetes.
- Work with Kubernetes internals, including resource quota management and cluster behavior.
- Optimize workloads running in containerized environments.
- Utilize Docker and container technologies as part of the software delivery lifecycle.
Linux, Infrastructure, and Monitoring
- Leverage Linux system knowledge, including control groups (cgroups) and resource management.
- Work with PostgreSQL databases in production environments.
- Utilize Prometheus and monitoring tools to observe application health and performance.
- Contribute to the reliability and observability of cloud-native services.
API and Microservices Development
- Design and develop RESTful API services using Golang.
- Build scalable web and HTTP-based microservices.
- Collaborate with engineering teams to deliver reliable, high-performance distributed applications.
Qualifications:
Education and Experience
- Bachelor's degree in Computer Science, Engineering, or a related field (preferred).
- 5+ years of professional software development experience using Golang.
- Proven experience working with Kubernetes and container technologies.
- Strong problem-solving skills and ability to work effectively in a fast-paced environment.
Technical Skills
- Deep expertise in Golang development.
- Strong understanding of Kubernetes internals and resource management.
- Hands-on experience with Docker and Linux container technologies.
- Experience developing APIs and microservices.
- Proficiency with PostgreSQL.
- Experience using Prometheus or similar monitoring platforms.
- Strong debugging and performance profiling skills.
- Experience practicing Test Driven Development (TDD) with Ginkgo and Gomega.
Preferred Skills
- Experience reading and understanding Java code.
- Strong programming experience in Python or Java alongside Kubernetes environments.
- Experience working with monorepositories.
- Familiarity with CI tools and automated build pipelines.
- Experience with Bazel as a build system.
Soft Skills
- Strong analytical and problem-solving abilities.
- Excellent communication and collaboration skills.
- Ability to work independently while contributing effectively within a distributed engineering team.
- Comfortable working in a fast-paced, highly technical environment.