← Back to jobs

Persistent Systems Logo
Software Developer

Persistent Systems

 

Gurugram, Haryana, India

Posted On: Just posted
Experience: 8+ years
Availability: Hybrid
Openings: 1
Category: Software developer
Tenure: No Preference/Any
Related Jobs

No related jobs found

Description

What You'll Do:

 

  • Design, develop, and maintain a unified Pub/Sub abstraction layer supporting multiple backends including ZeroMQ, Apache Kafka, Apache Pulsar, and Redis.
  • Build and enhance high-performance distributed messaging components used across the analytics platform.
  • Maintain and evolve Java and Python bindings for the core C++ library while ensuring API consistency across languages.
  • Design and implement scalable service discovery mechanisms using DNS-based endpoint resolution and REST APIs.
  • Develop partition assignment and message routing strategies for Kubernetes-based deployments.
  • Optimize performance-critical components including lock-free data structures, ring buffers, time-reorder queues, and thread affinity management.
  • Implement and maintain compression capabilities using ZSTD and related technologies.
  • Manage Redis and Redis Cluster integrations including connection management, protocol handling, and operational monitoring.
  • Develop and support REST server and client components along with OpenAPI-based code generation frameworks.
  • Define, maintain, and evolve Protocol Buffer schemas while ensuring backward and forward compatibility.
  • Develop and maintain traffic filtering and event processing frameworks for efficient data delivery.
  • Write comprehensive unit, integration, and performance tests across C++, Java, and Python ecosystems.
  • Troubleshoot complex distributed system issues involving networking, messaging, performance, scalability, and reliability.
  • Collaborate closely with platform consumers, architects, and engineering teams to evolve APIs and platform capabilities.
  • Participate in architecture reviews, design discussions, code reviews, and technical documentation activities.
  • Contribute to CI/CD pipelines, automated testing practices, and release management processes.

 

Expertise You'll Bring:

 

  • 8-12 years of software development experience with strong expertise in modern C++ (C++17 or later).
  • Extensive experience designing and maintaining reusable libraries, SDKs, or platform components.
  • Strong understanding of memory management, smart pointers, RAII, ABI stability, and performance optimization.
  • Experience with multithreading, concurrency, atomic operations, and lock-free programming techniques.
  • Strong knowledge of STL containers, algorithms, and modern C++ design principles. 
  • Hands-on experience with distributed messaging technologies such as Apache Kafka, Apache Pulsar, ZeroMQ, or similar platforms.
  • Strong understanding of Pub/Sub architectures, consumer groups, partitioning, message ordering, and fault tolerance.
  • Experience with high-throughput and low-latency messaging systems.
  • Strong networking fundamentals including TCP/IP, DNS, routing, load balancing, and distributed communication protocols.
  • Experience with Redis and Redis Cluster architectures and messaging patterns.
  • Experience building and maintaining Java integrations using JNA or JNI.
  • Experience working with Python bindings through pybind11, ctypes, cffi, SWIG, or related frameworks.
  • Strong understanding of cross-language interoperability and memory lifecycle management.
  • Hands-on experience with Google Protocol Buffers including schema design and version management.
  • Experience implementing serialization strategies for distributed systems.
  • Knowledge of compression technologies such as ZSTD and dictionary-based compression techniques.
  • Experience working with Docker-based deployments and containerized applications.
  • Strong knowledge of Git, CI/CD pipelines, and automated build and release processes.
  • Understanding of Kubernetes deployment models and distributed application architecture.
  • Familiarity with Helm charts and infrastructure automation practices.
  • Experience with build tools such as Make, Conan, Maven, and Python package management.
  • Strong understanding of scalable distributed system architecture.
  • Experience designing highly available and fault-tolerant platform services.
  • Ability to balance performance, reliability, maintainability, and scalability considerations.
  • Strong analytical, debugging, and troubleshooting skills.
  • Excellent communication and collaboration skills for working with cross-functional engineering teams

Education

Any Graduate

Related Jobs

No related jobs found

← Back to jobs