Software Development Engineer II - Automation
Itential · United States · 1 wk ago
RemoteRemoteInformation TechnologyFull-time
Key Responsibilities
- Develop, deploy, and maintain robust and scalable automation platform services in Go, including the gateway server, gRPC APIs, WebSocket connectivity, and embedded network automation tooling.
- Design software with a focus on performance, reliability, and scalability — including distributed execution patterns, HA leader election, multi-backend store architecture (BoltDB, etcd, DynamoDB), and concurrent request handling.
- Collaborate with engineering teams to translate network automation requirements into clean technical specifications, working across the core platform, runner framework, and protobuf-defined service contracts.
- Independently own components from design through production delivery — including adapters, gRPC service handlers, store backends, or netsdk integrations — following established Go conventions and architectural patterns.
- Conduct code and design reviews to uphold Go idioms, concurrency safety, and API consistency across the gateway5 codebase.
- Continuously improve platform reliability through automation, refactoring, and optimization — including CI/CD pipeline enhancements, test coverage improvements, and performance profiling.
- Stay current with the Go ecosystem and cloud-native tooling (gRPC, buf, etcd, DynamoDB, Prometheus) and apply relevant advances to improve the platform.
Basic Qualifications
- Bachelor’s degree in Computer Science, Engineering, or a related technical field.
- 3+ years of professional software development experience.
- Proficiency in Go or a strongly-typed backend language (e.g., Java, C++); strong motivation and ability to work in idiomatic Go full-time.
- Solid understanding of CS fundamentals — data structures, algorithms, concurrency, distributed systems, and network protocols.
- Experience building and consuming gRPC or REST APIs in a collaborative team environment using standard workflows: Git, code review, vendored dependencies, and CI/CD pipelines.
- Strong problem-solving skills with a disciplined approach to debugging, testing (unit and integration), and root cause analysis.
- Good verbal and written communication skills, including the ability to document technical decisions and architectural tradeoffs clearly.
- Demonstrated ability to effectively leverage AI coding assistants and LLM-based tools to accelerate development workflows, improve code quality, and solve complex technical problems — including prompt crafting, output validation, and knowing when not to rely on AI suggestions.
Preferred Qualifications
- Master’s degree in Computer Science or a related field.
- Hands-on experience deploying Go services in AWS (DynamoDB, EC2, ECS/EKS) or comparable cloud environments, including containerized workloads (Docker/Podman, Kubernetes).
- Experience with gRPC and Protocol Buffers, including proto schema design and code generation toolchains (e.g., buf).
- Familiarity with distributed systems patterns: leader election, TTL-based locking, key-value stores (etcd, BoltDB), and graceful multi-node shutdown.
- Experience with network automation, CLI tooling, or integration with vendor device APIs (SSH, NETCONF, scrapligo).
- Prior work in an Agile environment with end-to-end ownership across the full SDLC — design, implementation, testing, CI/CD, and release.
- Demonstrated ability to deliver high-quality software independently, communicate trade-offs across teams, and uphold code quality standards through peer review.
- Experience with CI/CD pipelines (GitLab CI or similar), Go testing tooling (go test, mocks, integration test patterns), and coverage enforcement.