Principal Software Engineer - Full Stack 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.
Do you enjoy developing highly available, low latent micro-services that interact with large data sets? Are you interested in helping advanced analytics propel the business forward?
You’ll be working in the Cyber Security organization. You’ll be working on a dynamic team who is constantly flexing to meet the needs of the business and next generation cloud technologies. ( Kafka, Elasticsearch, AWS, Logstash )
- Designing, coding, and debugging software.
- Improving the performance of existing software.
- Recommending new technologies that can help increase productivity.
- Investigating software-related complaints and making necessary adjustments to ensure optimal environment performance.
- Develop, coach and mentor other software engineers on the best practices providing domain and technical best practice guidance.
- Write services and unit tests to provide code coverage looking for the code coverage to go up over time.
- Own the run time performance of your service and code ensuring it’s behaving as expected.
- In a team setting with other DevOps engineers, design and build tools and automation scripts that enable data scientists and business analysts to easily consume cloud-native services.
- Technical point of contact for product teams as it relates to automation, CI/CD, and DevOps.
- Developing secure design patterns for analytics architectures deployed in the public cloud and/or orchestrated container environments using a ‘security first’ mindset.
- Build automation to actively audit the infrastructure for misconfigurations.
- Develop container image life cycle management systems.
- Ability to adapt communication for effectiveness with business partners and other technical teams.
- Works with key stakeholders to design complex solutions and lead from inception to production
- Creates and maintains devops processes, application infrastructure, and utilizes cloud services (including database systems and models)
- Innovates on and advocates for best practices and improved team processes; mentors junior team members
- Develops and maintains complex backend with a focus on environment stability.
- Regularly attending team meetings to discuss projects, brainstorm ideas, and put forward solutions to any issues.
- Develops and maintains full stack solutions to fit business needs
- Full stack solutions require one or more of the following: front-end (user interfaces), back-end (APIs), database and devops development.
- Works directly with business partners to understand business requirements.
- Independently innovates on and advocates for best practices within the team, and collaborates on them across the enterprise.
- Carries a holistic view of all products and their interactions to design complex solutions and plan for how new projects will fit into the larger ecosystem.
- Solves complex technical problems. Guides team in implementation of solutions from inception to production.
At a minimum, here’s what we need from you:
- Bachelor or Master degree in information technology or related field
- 8+ years of experience in computer science, information technology or related field
- In lieu of degree, 10+ years of experience in computer science, information technology or related field
- Experience developing Java, Python and Scala services in a highly available environment using proper design patterns.
- Proven experience in software development methodologies.
- Strong analytical skills.
- The ability to multi-task
- Knowledge of working with CI/CD pipelines to ensure automated build, testing, and deployment using Gradle, Jenkins.
- Good communication skills.
- Experience writing unit and service level tests to ensure adequate code coverage, preferably using Junit and Mockito.
- Experience with NoSQL databases.
- Working familiarity of Docker and other containerization technologies providing horizontal scaling such as Kubernetes or Openshift.
- Understanding of messaging systems like MQ, Rabbit MQ, Kafka, or Kinesis.
- 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
- Proven skills in high availability and scalability design, as well as performance monitoring
- Experience in working in a cloud environment such as AWS, GCP or Azure.
- Build secure web applications with user authentication
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.