Lead Java - Software Developer at Discover
Discover. A brighter future.
With Discover, you’ll have the chance to make a difference at one of the world’s leading digital banking and payments companies. From Day 1, you’ll do meaningful work you’re passionate about, with the support and resources you need for success. We value what makes each employee unique and provide a collaborative, team-based culture that gives everyone an opportunity to shine. Be the reason millions of people find a brighter financial future, while building the future you want, here at Discover.Job Description
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.
We embrace change and evolution, both in our staff and systems. We are building new payment systems that allows us to utilize modern technologies (Cloud, Big Data, Open Source, Event driven real time processing) and approaches to delivery (Scaled Agile, CI/CD, TDD + BDD) that will enable us to produce software and systems to support our business and adapt to change within the fast paced FinTech world.
We want you to love where you work and thrive in your career. Our culture inspires innovation, teamwork, and growth, so we can make a positive impact on millions of people's lives.
We are looking for an experienced Lead Software Developer. The successful candidate will be primarily focused on supporting and guiding the team during all phases of the development life cycle to design, develop and maintain scalable performant enterprise payments solutions to fit business needs. Our enterprise payments solutions consist of one or more of the following: batch processing, real time data/event streaming, APIs, micro services, NoSQL or relational databases and underpinned by DevOps automation. You will be working directly with business partners to understand business requirements then collaboratively design solutions and lead them from inception to production within the agile team.What You’ll Do
As part of our Digital Payments technology domain, you’ll:
Lead Agile-focused software development teams to help our organization drive towards emerging technologies. While primarily providing hands-on development work, you’ll also mentor junior-level software developers.
Leverage your leadership skills to help shape our business and technology outcomes to meet customer and partner needs.
Create and break-down product/platform efforts into successful execution-ready plans.
Contribute to the developer experience by leveraging the latest industry technologies to enhance current solution patterns and define new ones.
Provides specialized expertise and applied knowledge on all aspects of Data Services to support a new and consolidated set of cross network applications.
How You’ll Do It
Develops solutions to a variety of problems of moderate scope and complexity as highly skilled with extensive proficiency
Java JEE coding, unit testing, system testing and development work for data services applications
In depth Spark development experience with the ability to provide technical direction to more junior developers as well as assist with planning and design of components.
Knows and uses fundamental concepts, practices, and procedures to solve problems within primary field of expertise
Capable of independent working with minimal supervision
Writing Technical design documentation (high and low level) as required
Refers to policies and practices for guidance.
Wide latitude for independent judgment and decision making.
Ensure quality code is delivered through continuous integration, development, and testing.
Perform technical design, coding with test automation, support, and documentation of software application modifications.
Deliver technology solutions that support business goals.
Partner with product owners to understand business requirements, evaluate features, and translate application specifications into workable technical solutions.
Support technical initiatives and provide team with input into best practices.
Oversee and review development activities of highly-complex global teams, consisting of both full-time staff and contractors.
Maintain application software and systems.
Test and mitigate risks for all projects and releases
Provide leadership and guidance to junior-level software developers to enhance their growth and help them achieve objectives.
Our Tech Stack
Spring (core, integration, boot and other libraries)
Hadoop stack (Hbase, Storm)
AWS Cloud - EC2, S3, EMR, ELB, ECS, MariaDB
UNIX/Linux (command line and shell scripting)
Continuous Integration with Jenkins or similar
Qualifications You’ll Need
Bachelor's degree in computer science, business computer systems, or related technical field
6+ years of experience in software engineering or related field
In lieu of degree, 8+ years of experience in software engineering or related field
Bonus Points If You Have:
- Experience as part of an Agile engineering or development team
- Strong understanding of object-oriented principles with an ability to write clean code
- Strong experience working with a relational database and NoSQL database
- Strong experience with CI/CD pipelines with Jenkins or similar; Git/GitHub; Artifactory
- Proven skills in high availability and scalability design, as well as performance monitoring
- Experience developing and implementing API service architecture
- Experience in working in a cloud environment such as AWS, GCP or Azure.
- Understanding of messaging systems like MQ, Rabbit MQ, Kafka, or Kinesis.
- Strong experience of developing multi-threaded and synchronization application
- Build secure web applications with user authentication
- Understanding of software testing principles and methodologies
Experience working in a highly complex and scaled global technology organization
Time spent working for an organization in either the financial services or technology space
Test Driven Development
Performance benchmarking and analysis
Experience supporting a product or service provided to a development community.
Experience in a support based capacity, such as a development or engineering team
Demonstrates reliability and dependability for the team, displays self-awareness, collaboration and ability to improve based on feedback from others
Agile Experience, Jenkins and Chef Experience beneficial.
Experience with data pipelineing coding techniques that are commonly used in streaming development.
What are you waiting for? Apply today!
The same way we treat our employees is how we treat all applicants – with respect. Discover Financial Services is an equal opportunity employer (EEO is the law). We thrive on diversity & inclusion. You will be treated fairly throughout our recruiting process and without regard to race, color, religion, sex, sexual orientation, gender identity, national origin, disability, or veteran status in consideration for a career at Discover.