Vail Systems is seeking a Software Engineer who has strong expertise with distributed database systems specifically Redis to act as an internal consultant to engineering staff to ensure uniform adoption and centralized integration for how Redis is utilized in software at Vail. The role may be expanded to include other distributed databases in the future such as Kafka.As part of the Engineering team, the Software Engineer will be expected to coordinate closely with Systems Engineering and Linux Systems Administration teams to build internal software tools. Initially, this position would conduct a state and needs analysis to evaluate current usage of Redis, write and implement best practices for architecting and monitoring software systems. This role is team-oriented as you will collaborate with cross-functional and highly technical engineering staff, but you will also be required to be an independent self-starter.
The ideal candidate will have a strong Linux (CentOS 8) and programming background in languages such as C, C++, or Python. They should also have experience providing technical direction to identify and utilize best-fit architectural solutions for multiple projects across Vail’s product suite. The candidate will require knowledge of Kubernetes and Docker or similar container orchestration systems and deployment processes. Additionally, the candidate should be adaptable, detail-oriented, and a continuous learner.
What you’ll do:
- Investigate and troubleshoot issues to provide timely resolution for complex Redis software issues that improve system performance.
- Build, patch, and maintain Redis clusters.
- Perform cluster operations including expansion and migration to new datacenters.
- Develop and maintain automation scripts as needed.
- Coordinate deployments with operations teams to update, patch and upgrade Redis.
- Act as the central integration point for engineering teams and customers to leverage Redis and make recommendations in support of their technical and business requirements.
- Document best practices and procedures for technical teams to reference in order to architect and monitor software systems that utilize Redis and other data services.
- Consult at the highest technical level with clients, IT management, and enterprise-wide teams.
- Continually update Redis documents by adding and deleting data attributes for example, when modifications are made to user lists.
- Program Pub/Sub messages in Redis to allow subscribers to retrieve data pushed from appropriate channels.
- Maintain and update mapping of Redis architecture.
- Assist other teams design resilient Redis architectures to survive crashes.
- A Bachelor’s degree in Computer Science, Computer Engineering, Software Engineering or another related field.
- 3+ years of experience in a software development role.
- Prior professional experience with C, C++, Python, or another scripting language.
- Experience with Linux/Unix operating systems and shell scripting.
- Experience with Redis.
- Experience with Kubernetes/Docker or similar cloud environments.
- Excellent verbal and written communication skills.
- Experience with general distributed database systems and messaging systems like Kafka and RabbitMQ.
- Experience with Jenkins/CloudBees or similar CI/CD software delivery services.
- Experience with Git or similar version control systems.
- Experience with DevOps practices.
- Experience with Atlassian tools such as Jira and Confluence.