Senior & Principal Software Engineers
- North America
Genesys is building the data platform of the future with a small team with a startup feel and the financial stability of an industry leader. We’re experiencing hyper growth and scalability is a key focus with hundreds of terabytes of data our customers generate. Our Analytics team is exposed to a large variety of technology with a chance to move around and work on something new practically every day. Working remote in the US or Canada is fine.
As a member of the team, you will:
- Develop and deploy highly-available, fault-tolerant software that will help drive improvements towards the features, reliability, performance, and efficiency of the Genesys Cloud Analytics platform.
- Actively review code, mentor, and provide peer feedback.
- Collaborate with engineering teams to identify and resolve pain points as well as evangelize best practices.
- Partner with various teams to transform concepts into requirements and requirements into services and tools.
- Engineer efficient, adaptable and scalable architecture for all stages of data lifecycle (ingest, streaming, structured and unstructured storage, aggregation) in support of a variety of data applications.
- Build, deploy, maintain, and automate large global deployments in AWS.
- Troubleshoot production issues and come up with solutions as required.
This may be the perfect job for you if:
- You have a strong engineering background with ability to design software systems from the ground up.
- You have expertise in Java, Python or similar programming languages.
- You have experience in web-scale data and large-scale distributed systems on a cloud infrastructure.
- You have a product mindset. You are energized by building things that will be heavily used.
- You have engineered scalable software using big data technologies.
- You have worked on and understand messaging/queueing/stream processing system.
- You have deep knowledge of Kafka, Flink, or Druid.
- You design not just with a mind for solving a problem, but also with maintainability, testability, monitorability, and automation as top concerns.
Technologies we use and practices we hold dear:
- Right tool for the right job over we-always-did-it-this-way.
- We pick the language and frameworks best suited for specific problems. This usually translates to Java for developing services and applications and Python for tooling.
- Packer and Ansible for immutable machine images.
- AWS for cloud infrastructure.
- Infrastructure (and everything, really) as code.
- Automation for everything. CI/CD, testing, scaling, healing, etc.
- Apache Flink and Apache Kafka for stream processing.
- Amazon DynamoDB, Postgres, Amazon S3, and Redis for query and storage.