Description
We are looking for a Senior Software Engineer to join our Messaging, Streaming and Caching team. You will play a key role in improving our services and encouraging their adoption within Workday's infrastructure. You will design and build new capabilities from inception to deployment to exploit the full power of the core middleware infrastructure and services.
Primary Responsibilities
- Design, build, and enhance critical distributed services, including Kafka, Redis, RabbitMQ etc.
- Design, develop, build, deploy and maintain core distributed services using a combination of open source and proprietary stacks across diverse infrastructure environments (Kubernetes, OpenStack, Bare Metal, etc.)
- Design and develop core software modules for streaming, messaging and caching.
- Construct observability modules, alerts and automation for Dashboard lifecycle management for the distributed services.
- Build, deploy and operate infrastructure components in production environments.
- Champion all aspects of streaming, messaging and caching with a focus on resiliency and operational excellence.
- Evaluate and implement new open-source and cloud-native tools and technologies as needed.
- Participate in the on-call rotation to support the distributed systems platforms.
- Manage and optimize Workday distributed services in AWS, GCP & Private cloud env.
Requirements
- 6+ years of experiences as a Kafka, Redis or RabbitMQ Admin with cloud platform experience
- 6+ years of software engineering experience using one or more of the following: Java/Scala, Golang.
- 4+ years of distributed systems experience
- 3+ years of development and DevOps experience in designing and operating large-scale deployments of distributed NoSQL & messaging systems.
- 1+ year of leading a NoSQL technology related product right from conception to deployment and maintenance.
Nice to Have
- Consistent track record of technical project leadership and success involving collaborators and interested partners across the enterprise.
- expertise in developing distributed system software and deployments that perform well and degrade gracefully under excessive load.
- hands-on experience with atleast one or more distributed systems technologies like Kafka/RabbitMQ, Redis, Cassandra
- experience learning complex open source service internals via code inspection.
- extensive experience with modern software development tools including CI/CD and methodologies like Agile
- expertise with configuration management using Chef and service deployment on Kubernetes via Helm and ArgoCD.
- experience with Linux system internals and tuning.
- experience with distributed system performance analysis and optimization.
- strong written and oral communication skills and the ability to explain esoteric technical details clearly to engineers without a similar background.