Software Engineer – Distributed Systems
IBM · San Jose, CA · 2 wk ago
HybridEngineeringFull-time
Your Role And Responsibilities
- Design Distributed Components: Architect and implement metadata services, distributed schedulers, catalog backends, and state coordination layers for petabyte-scale, high-throughput, low-latency data.
- Build Stateful & Fault-Tolerant Infrastructure: Implement replication, automatic failover, distributed consensus (Raft/Paxos), snapshot/restore, and exactly-once processing for correctness under failure.
- Contribute to CI/CD Pipeline: Contribute to the automated CI/CD pipeline, instrumenting components with structured logging, distributed tracing, and metrics that make failure modes observable.
- Debug Distributed Failures: Design, develop, and unit test fixes for customer-reported and production issues, building diagnostic tooling and driving post-mortems to resolution.
- Collaborate in Agile Environment: Partner with query engine, storage, GPU acceleration, and AI/ML teams to surface constraints early, conduct reviews, and document consistency decisions.
Preferred Education
Bachelor's Degree Required
Technical And Professional Expertise
- Distributed Systems Experience: 6+ years of professional software engineering experience, including at least 2 years designing and operating large-scale distributed systems (data platforms, databases, streaming, or comparable infrastructure).
- Systems Programming Proficiency: Strong skills in Java, Go, C++, or a comparable systems language, with experience writing and reviewing production distributed-system code.
- Consistency & Consensus Depth: Hands-on knowledge of consistency models (eventual, strong, causal), replication, quorum systems, leader election, and consensus protocols (Raft or Paxos) from direct implementation or deep operational experience.
- Fault Tolerance & Operations: Experience designing fault-tolerant systems with automatic failover, idempotent operations, and durable recovery, plus distributed observability (OpenTelemetry/Jaeger, Prometheus/Grafana) and stateful workloads on Kubernetes.
- Communication & Education: Clear written communication—able to produce design documents, post-mortems, and capacity analyses; Bachelor's degree in Computer Science, Engineering, or equivalent practical experience.
Preferred Technical And Professional Experience
- Lakehouse & Streaming Internals: Hands-on experience with petabyte-scale data movement, compaction, or tiering; stateful exactly-once streaming (Kafka, Flink, Pulsar); and open table format transaction protocols (Iceberg, Delta, Hudi).
- Advanced Distributed & GPU Topics: Familiarity with vector or hybrid logical clocks, contributions to open-source distributed systems (Iceberg, Trino, Kafka, etcd, Flink), GPU-accelerated data processing (NVLink/PCIe topology), and FinOps for stateful workloads.