Senior Software Developer
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.
Responsible for developing large scale, customer-facing applications. Designs, develops, and integrates systems for Discover’s award-winning digital presence by using Agile development methodologies to support existing and new product features.
- Works closely with the business, utilizing agile methodology. Breaks down complex requirements into workable technical solutions. Assists in the evaluation of client-area application software/systems requirements and processes (e.g., new features, enhancements or maintenance). Performs application software development, testing, and implementation of efficient, cost effective application solutions. Completes technical design(s) as needed. Ensures that design(s) meets architecture standards and that the resulting system will be flexible, easily maintainable, high performing, and integrates well with other related systems/components. Researches and evaluates alternative solutions and recommends the most efficient and cost-effective solution for the systems’ design. Collaborates with other developers on code reviews and process enhancements. Completes unit and system testing prior to the start of any testing in PA region. Works with other internal IT teams to complete project activities, such as Infrastructure, Architecture, and Database teams. Ensures that code reviews are performed and documented, using the approved template. May provide direction and guidance to other systems analysts/developers. Analyzes and identifies technical areas of improvement within existing web applications.
- Ensures all projects and releases are appropriately tested and that risks are mitigated. Ensures all projects have a detailed implementation and back-out plans, and are reviewed with all impacted parties in advance of scheduled releases. Continually looks for, and implements ways to, stabilize and improve the performance of the production environment.
- Adheres to regulatory, PDP, Change Management, and Internet Department processes and standards, ensuring all projects are compliant. Ensures any volume and capacity considerations are communicated during the design phase (or prior to committing to a Sprint). Documents software and performs related duties as assigned or requested. Actively contributes to best practices to support a strong software architecture. Reduces occurrence of vulnerabilities through proper secure coding practices and having a “Security First” mindset. Follows proper handling of sensitive data per security guidelines. Ensures any volume and capacity considerations are communicated during the design phase (or prior to committing to a Sprint). Identifies efficient and viable alternatives to resource-intensive requirements.
- Identifies and executes opportunities to leverage Agile/Iterative/Lean processes to deliver projects faster. Proposes ideas to better position our applications to support future business and technology initiatives. Finds ways to incorporate these ideas within planned project/release timelines. Incorporates and supports new technology/frameworks to support our continual integration efforts.
- This role will be responsible for analysis of business requirements and subsequent creation of high level technical design documents and technical specifications for Card Portfolio applications, in accordance with company architecture standards.
- Understand the project requirements, give input to what can or cannot be accommodated from the project requirements giving suggestions on the best way to achieve the project objectives, Write a Detailed Technical Design (DTD) according to High Level Design (HLD) specifications.
- Design and develop high quality software for large scale distributed systems
- Make code modifications for the assigned projects according to business specifications and application standards, Provide alternative solutions when requirements cannot be met. Perform unit and system testing for all coding changes. Support both Integration and UAT testing in the Production Assurance (PA) regions, including researching and fixing defects. Adhere to established project timeframes.
- Collaborate with other developers on code reviews and process enhancements. Actively contribute to instill best practices to support a strong software architecture. Actively participate in Agile ceremonies including PI Planning, Sprint Planning, User Story grooming, Retrospectives, Demos, Huddles etc.
At a minimum, here’s what we need from you:
- Bachelor’s Degree in Computer Science, or related field
- 4+ years of experience in Development
If we had our say, we’d also look for:
- Strong understanding of relational databases and object oriented principles
- Familiar with Agile software development methodologies
- Experience in developing applications in Pivotal Cloud Foundry (PCF) or other cloud based technologies utilizing CI/CD model.
- Experience in RestTemplate, Swagger, Mockito, powemock (Junits and TDD approach), JSON, Jenkins Integration (groovy script for build and deploy pipeline), Rabbit MQ and Externalized configuration Integration, deploying application in PCF, JWT integration
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.