At Discover, be part of a culture where diversity, teamwork and collaboration reign. Join a company that is just as employee-focused as it is on its customers and is consistently awarded for both. We’re all about people, and our employees are why Discover is a great place to work. Be the reason we help millions of consumers build a brighter financial future and achieve yours along the way with a rewarding career.
Site Reliability Engineers (SREs) are a hybrid of systems and software engineers who are responsible for scaling, automation, and production issue support for applications. SRE’s have an intense passion for finding and improving efficiencies with infrastructure, development and deployment automation. As a SRE, you will lead the efforts of application deployment, reliability, scalability, availability and performance alongside the engineering and infrastructure teams. Site Reliability Engineers will work closely with our engineering teams to build mature, production-ready services and applications. As part of the SRE team, you will help define our standards for monitoring, alerting, scalability, and production-readiness. You will monitor and report on the uptime of our systems and services, the performance of our applications, and the capacity of our platform.
You will be empowered (yes, empowered) to apply software engineering techniques and discipline to production operations and help us deliver the world’s greatest solutions. You will provide feedback into the architecture and application design for each next generation of Payment Services development. If you are the type of person that loves driving technology problem solving sessions; has a tireless passion to increase the performance, resiliency and availability of IT solutions serving the greatest Customers and Partners in the World; we believe our SRE opportunity will allow you to be the superstar of all superstars!
To be clear, the position is responsible for the provisioning, benchmarking, tuning, and improving the end to end customer experience for our Payment Services platforms. In our industry where millions of dollars move every day and milliseconds count in every transaction you are always looking for ways to ensure our customers get the best response time. You will also be deeply involved in system roadmap planning and release management activities as well. Overall, you will become a rock star subject matter expert on the operation of these world class core systems powering our great Fortune 300 Company (which really operates like a startup). Additionally you will promote a risk-aware culture, ensure efficient and effective risk and compliance management practices by adhering to required standards and processes.
To be successful (and we know you can be), you will need to have a strong IT understanding with work experience in off- and on-premise cloud based and virtual system infrastructure and peripheral services including network, firewall, and database management. We also need you to understand the application development and quality assurance ends of the spectrum as you will need to interface with that crew as well. During problem escalations you are the driver of the team that finds the root cause, restores functionality, and proposes the long term solution.
Sounds awesome doesn’t it? We think so but we ultimately need you to make this a reality. You will be exposed to the latest technologies in the Industry while helping us create the next generation of Payment Service solutions (mobile payments, remote commerce, IoT payments, etc.). It’s all cutting edge and you have the opportunity to be right in the middle of it. If you’re motivated by leading your work vs. following a checklist, enjoy advocating for and driving change as well as inventing features or projects that solve a business challenge. Join our team. Do not hesitate as the naming rights to this team are still open to the early hires!!!
- Ability enhance and maintain complex software components and distributed systems.
- Create and manage a continuous build, integration, test, and deployment system
- Monitor, alert, analyze and troubleshooti large scale distributed systems
- Work with clustering technologies – high availability, resiliency and horizontal scaling. Good understanding of defining and executing High Availability, Disaster Recovery, Sustained Resiliency, Chaos Engineering tests
- Control application code deployment servers and code deployment methods
- OS tuning, optimization and system requirements for vertical scaling
- Understand networking concepts and experience with HTTP protocol
- Lead and participate in performance tests, identifies the bottlenecks, opportunities for optimization and capacity demands
- Monitor and report on SLA/SLO for a given applications services. Work with business and product owners to establish key performance indicators
- Work with team and leadership to develop the long term Site Reliability Engineering road map.
- Maintain (evaluate and upgrade) all platform required applications and libraries (java, python, etc)
- Partner with security engineers and develop plans and automation to aggressively and safely respond to new risks and vulnerabilities.
- Control application log collection and analysis – Automate processes and systems configuration/deployment
- Design and architect operational solutions for managing applications and infrastructure, with the specific goal of increasing the automation, repeatability, and consistency of operational tasks.
- Create and maintain monitoring technologies and processes that improve the visibility to our applications’ performance and business metrics and keep operational workload reasonable.
- Define and drive adoption of a best in class monitoring frameworks to accomplish end to end application or service monitoring and noiseless alerting end application or service monitoring and noiseless alerting with proper telemetry
- Analyze and participate in periodic on-call duties to prevent, solve and automate the response to problems in mission critical services and automated deployment
- Work with Release Manager and development teams to deploy software releases
- Self manages the effort split between operational work and engineering work
- Operational Performance & Stability: Works with other members of their assigned Value Stream to ensure that the in-scope applications/platforms are meeting performance and stability requirements. This includes managing Major Incidents to Mitigation/Resolution. Problem Management: Performs Post-Incident Reviews of all Major Incidents and determining Action Items required to avoid similar issues/minimize downtime for future Incidents. Monitors and Metrics: Works with Application Development to ensure that assigned applications/platforms have the appropriate monitoring and metrics in place to appropriately measure performance and stability. Identify Functional and Non-Functional Improvements: Acts as the Operations representative in Value Stream planning and prioritizes sessions to ensure that Operational needs of assigned applications/platforms are addressed as needed. Holds quarterly Operational Performance Reviews with Value Stream management.
- Release Planning & Coordination: Works with other members of their assigned Value Stream to ensure that the Production releases for their in scope applications/platforms are properly planned and coordinated. This includes Holds Change/Release implementation reviews to ensure thorough and appropriate implementation plans. Provides review and sign-off/approval of change tickets for the assigned Value Stream. Represents the Value Stream in Change Advisory Board Meetings. Participates in Program Increment Planning Sessions as a liaison for Operations and Infrastructure support. Provides information regarding upcoming critical changes to the Value Stream.
- Operational Readiness: Ensures that applications/platforms in the Value Stream are Operationally ready for Production. This includes Annual Review of all SOPs/Knowledge Articles. Monitors review for any new Feature launch or other significant change that may impact monitoring. SOP/Knowledge Article review for any new Feature launch or other significant change that may impact support documentation. Training of Command Center and Application 1st level Support on new SOPs, Knowledge Articles, and any other support-related needs. Performs Monthly Capacity Analysis of applications/platforms within the Value Stream. Creates and Maintains Operationally focused ELK Dashboards for the Value Stream
- Responsible for the Operational Stability and Performance of one or more Critical Business Services used by Discover Customers and Employees.
Responsible for the Operational Stability and Performance of one or more Critical Business Services used by Discover Customers and Employees.
At a minimum, here’s what we need from you:
- Bachelor’s Degree in Business, Computer Information Systems, Computer Science, MIS, Engineering, Science, or related field
- 2+ years of experience in Information Technology, or related field
- In lieu of a degree, 4+ years of experience in Information Technology, or related field
If we had our say, we’d also look for:
- 4+ years of experience in Technology, or related field
- Proficiency in one or more general purpose programming languages: Python, Go, shell scripting (Unix/Linux), Java
- Automation tools experience such as Chef, Puppet, Ansible. Developing monitoring tools and log analysis tools to manage operation
- Continued curiosity regarding new technologies and evolving best practices
- 2 years of coding experience using strongly typed language Java, Golan
- 2 years of experience in SRE, DevOps, or similar rol
- 2 years of experience with scripting languages like Python / Bas
- Familiar with design principles of monitoring and alerting system
- Deep knowledge of distributed pub-sub message systems
Discover Financial Services is an equal opportunity employer. All qualified applicants will receive consideration for employment without regard to race, color, religion, sex, sexual orientation, gender identity, national origin, age, protected veteran status, among other things, or as a qualified individual with a disability.