Lead Software Engineer Full Stack

Farnborough, England, gb
Company: Discover
Category: Computer and Mathematical Occupations
Published on 2021-07-29 18:04:34

With us, you’ll do meaningful work from Day 1. Our collaborative culture is built on three core behaviors: We Play to Win, We Get Better Every Day & We Succeed Together. And we mean it — we want you to grow and make a difference at one of the world's leading digital banking and payments companies. We value what makes you unique so that you have an opportunity to shine.

Come build your future, while being the reason millions of people find a brighter financial future with Discover.

Discover is the fastest growing global payments network and we are looking to hire 100 skilled technology professionals to join our growing UK office. We are carrying out cutting-edge work in the areas of cloud, DevOps, agile and automation. Our digital-first mindset and belief in empowering talented people will provide you with a platform to make a difference.

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 are looking for a Lead level Software Developer/ Engineer to join the Data Foundations pillar of our Enterprise Payments Technology Platform. The successful candidate(s) will be primarily focused on supporting and guiding the team during all phases of the development life cycle to develop and maintain 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. Works independently or with own team to innovate on and advocate for best practices within the team. Designs complex solutions and leads them from inception to production within the agile team.

  • Delivers technology solutions that support business goals.

  • Partners with the product owner to understand business requirements, evaluates features, and translates application specifications into workable technical solutions. 

  • Maintains application software and systems.

  • Ensures all projects and releases are appropriately tested and risks are mitigated. 

  • Oversees and reviews development activities of team members and contractors. 

  • Supports technical initiatives and provides input into best practices to team.

  • Develops and maintains complex front-ends with a focus on user experience.

  • Develops and maintains back-end systems.

  • 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.

  • Supports live systems to ensure business continuity.

  • Provide technical clarity on story development (solutions); identify gaps in requirements for consideration by Product Owners; and to ensure that their team deliver Stories and Defects to their Acceptance Criteria as defined, to support the User Story Definition of Ready and Done

  • Awareness and understanding of their team’s role and deliveries and new feature development

  • Writing technical design documentation as required, such as ECD, ICD, HLD, LLD and work flows

  • Coding of Data components following Quality process including Code Reviews, Sonarqube standards, writing Unit Test (Junit, Mocks), SIT tests, End-to-End Test as appropriate

  • Working with the Platform Leads and other Foundations Tech Leads to ensure the technical solutions align with the Platform Architectural vision Supporting the Site Reliability Engineering (SRE) team in their function of running all features through NFR testing to Production, including defect RCA

  • Future level 3 support, as required, including some out of hours support

  • Provide technical guidance, perform proof of concept for automation

  • Provide technical guidance to the scrum team.

  • Analyze delivery practices, identify areas of improvements, recommend and implement tools and practices for improvements

  • Establish a strong partnership with architecture, software engineering/development, quality engineers and DevOps to enabling effective CI/CD delivery model which is scalable and merit quality

  • Provide training to Software Development Engineers, Quality engineers and architect on strategies, standards, tools and processes.

  • Bachelor’s Degree in Information Technology or related field , or equivalent professional experience in a related technical field i.e Computer Science or Information Technology

  • Demonstrable Lead level software engineering or development experience across the full stack, ideally in a frontend and back end application environment

  • Hands on coding experience with Java, Python, or another modern language.

  • 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

  • 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 of the Spring Framework would be advantageous

  • Java

  • Spring Framework (Boot)

  • React, AngularJS, Bootstrap and Tailwind CSS, Redux, React Testing Library, Cypress, Test Café, Cross Browser Testing, Protractor, Storybook, NodeJS, Express, Okta

  • Git/GitHub, Nexus

  • Junit, Mockito, Assertj, Wiremock, Cucumber

  • Jenkins, Gradle, Ansible and Groovy

  • PCF, OCP, Linux, VMware

  • Restful API’s and microservice architecture

  • MariaDB, Postgres

  • Apache Geode (GemFire), Redis

  • Apache Storm, Kafka, HBase (Highly Available variant)

  • Spark-Streaming

  • HDFS native API and shell commands

  • UNIX/Linux (command line and shell scripting)

  • IntelliJ, Eclipse or Spring Tool Suite (STS)

  • JSON processing and validation

  • Jobs you might also be interested in