We are looking for a Senior Software Engineer who is comfortable operating across the entire system, from low-level Linux and networking problems to the architecture of large Go and Kubernetes-based distributed systems.
This role is for someone who can investigate a Linux kernel or networking issue in the morning, review a concurrency problem in Go before lunch, design a multi-service distributed flow in the afternoon, and help debug a C++ component when production behavior does not match expectations.
You do not need to be the deepest specialist in every technology we use. You do need the technical range, curiosity, and systems thinking to move between layers quickly and understand how they affect one another.
Our team owns RIC Systems end to end, including Near-RT RIC, Non-RT RIC, infrastructure, messaging, state management, network-facing components, microservices, deployment, performance, reliability, and production troubleshooting.
We are looking for someone who wants that breadth.
What You'll Do:
Take technical ownership across Near-RT RIC and Non-RT RIC systems, helping define architecture, reliability, scalability, and engineering direction.
Design and develop production backend services, primarily in Go, as part of a large distributed system composed of dozens of interacting services.
Move comfortably across the stack, from Linux, networking, sockets, containers, and system performance to application-level architecture and distributed system design.
Lead the design of complex multi-service flows involving messaging, distributed state, concurrency, retries, backpressure, ordering, consistency, and failure recovery.
Build and operate systems using technologies such as Kafka, NATS, Redis, Kubernetes, and comparable distributed infrastructure.
Debug difficult production issues that cross boundaries between application code, operating systems, networking, containers, infrastructure, and service architecture.
Requirements: 5+ years of professional software engineering experience, with significant hands-on experience building complex production systems.
4+ years of strong production experience with Go, especially backend services, concurrency, networking, and distributed systems.
Experience designing, building, and operating systems composed of many interacting microservices, preferably on Kubernetes.
Strong Linux fundamentals and the ability to debug problems involving processes, threads, memory, CPU, file descriptors, sockets, networking, containers, and system resources.
trong understanding of Kubernetes, including networking, service communication, resource management, deployments, failure modes, scaling, and production troubleshooting.
Experience with high-throughput distributed systems using Kafka, NATS, Redis, or comparable messaging and state technologies.
Deep understanding of concurrency and distributed-system behavior under load, including synchronization, contention, backpressure, retries, ordering, consistency, timeouts, and failure recovery.
Experience working with meaningful production scale and the ability to discuss it quantitatively, such as messages per second, request rates, latency percentiles, queue depth, CPU and memory utilization, connection counts, data volume, or similar metrics.
Strong system-design skills. You should be able to whiteboard a multi-service architecture, explain how requests and data move through the system, identify failure modes and bottlenecks, and defend the trade-offs you make.
Strong production-debugging skills across logs, metrics, tracing, profiling, packet captures, Linux tools, and application-level instrumentation.
Ability to read and debug C++ when necessary. C++ does not need to be your primary development language.
A track record of leading complex technical initiatives from design through implementation and production rollout.
This position is open to all candidates.