About the Role
We’re building a complex product that combines wireless/networked protocols, specialized hardware platforms, and operator-facing management software. We’re looking for a software engineer to own the orchestration layer — the “brain” that coordinates multiple subsystems into one reliable, controllable product.
This role is ideal for someone who enjoys making complicated systems behave predictably: turning high-level intent into concrete configuration, managing lifecycle and state, handling events and identifiers, and building robust services that run 24/7 in real deployments.
No prior cellular background is required — we will teach you the domain. What matters most is strong software engineering fundamentals and experience integrating systems.
What You’ll Do
- Build and maintain the control-plane / orchestration software that coordinates multiple services, protocols, and hardware-adjacent components.
- Implement workflows and state machines for system lifecycle: initialization, configuration, start/stop, mode transitions, health monitoring, recovery, and safe failure handling.
- Design and maintain APIs used by internal services and UIs (validation, authorization hooks, versioning, backward compatibility).
- Handle high-volume event streams and identity-like data: ingest, normalize, correlate, deduplicate, persist, and route according to system rules.
- Own system reliability: structured logging, metrics, audit trails, alarms, and debuggability in production environments.
- Work closely with engineers from different specialties (protocol/software/hardware/platform) to define integration contracts and ensure end-to-end behavior.
- Contribute to test infrastructure: integration tests, simulators/mocks, regression automation, and CI gates.
Technologies You’ll Use
- JavaScript / TypeScript for non-time-critical orchestration services, APIs, and tooling.
- C/C++ for performance- or resource-sensitive components and low-level integrations.
- Linux environment, networking, concurrency, IPC patterns (e.g., sockets/message bus/shared memory—depending on architecture).
- Git-based development, code reviews, CI/CD.
What We’re Looking For
- B.Sc. in Computer Science / Software Engineering / Electrical Engineering (or equivalent experience).
- 3+ years experience building production software in one or more of:
- Backend/services development
- Distributed systems / systems integration
- Control-plane / orchestration platforms
- Solid understanding of:
- State, concurrency, timeouts/retries, idempotency
- APIs and service boundaries
- Debugging in Linux (logs, networking tools, profiling)
- Strong “systems thinking”: you can reason about cross-component behavior, failure modes, and operational safety.
Nice to Have (Not Required)
- Experience with real-time-ish systems, hardware-adjacent software, or performance optimization.
- Familiarity with event-driven architectures, message queues, streaming pipelines.
- Experience building operator-facing products: auditability, RBAC, traceability, “explain what happened” capabilities.
- Any exposure to wireless/networking/protocols — but we don’t expect it.
What Makes This Role Interesting
- You’ll own the core software layer that turns multiple specialized components into one coherent product.
- You’ll work on problems like orchestration, observability, reliability, and performance — the same hard problems found in large-scale platforms, but in a tighter, high-impact team.
- You’ll learn a unique domain while staying grounded in broadly transferable software engineering skills.
