LEAD SOFTWARE ENGINEER - BACK END

Do you have a passion for technology? Do you want to make a difference, delivering software used by some of the biggest companies in the world? Do you love working with others in a dynamic agile environment? Companies throughout the world are exposed to risk; understanding and managing that risk is key to their continued success. As part of the Connected Risk team, you’ll be delivering solutions that help our customers protect their brand and make smarter decisions. We are looking for an enthusiastic, passionate software engineer to join our team as we strive to deliver excellence to our customers. You’re a self-starter who will be part of an empowered agile team working on Connected Risk. Quality is non-negotiable, so a good focus on code quality, unit testing, and enabling automated testing is important.
Responsibilities
  • You will build and maintain efficient, reusable, reliable and secure code based on User Stories and software designs.
  • Together with the Development Manager, you will provide technical leadership for individual projects.
  • Working within a multi-functional agile team, you’ll develop enterprise software, adhering to company standards and established software methodology.
  • Demonstrating a consistent focus on quality, you’ll ensure that your team delivers reliable, robust software through the creation and execution of automated tests.
  • To help the teams develop and learn, you will review work of peers and more junior developers, providing advice and guidance to amplify the abilities of the team as a whole.
  • Through agile retrospectives and reviews, you will inspect and adapt, finding innovative ways to make your teamwork more effective.
  • Through a lead role in refinement and planning sessions, you will work with other team members to analyze development requirements, provide design options and complexity estimates, and agree on how to deliver the requirements.
Essential Skills and Experience Required
  • Experienced software engineer with excellent knowledge of the Java language and underlying JVM.
  • Understanding of security implications and secure coding.
  • Strong Redis or similar caching experience.
  • Experience in scaling systems in a cloud environment.
  • Solid understanding of object-oriented programming.
  • Familiar with various design patterns.
  • Knowledge of databases and SQL.
  • Understanding of cross-browser compatibility issues and ways to work around such issues.
  • Excellent communication skills – both verbal and written.
  • Skill for writing clean, readable code and reusable components.
  • Experienced in or a strong desire to work in a formal agile software development lifecycle.
  • Experience in unit testing.
  • Understanding of HTML and XML.
  • Proficient in using source code management tools such as Git
Desired Skills
  • Familiarity with other languages, for example, Typescript and Python, and the ability to put that familiarity into practice.
  • Experience with web technologies such as Javascript, JQuery and CSS.
  • Experience with RESTful interfaces
  • Understanding of multi-threading
  • Cloud technologies – particularly Azure.
  • Experience working with Gradle/Maven.
  • Familiar with continuous build and integration.
  • Familiar with general testing principles and concepts – UI testing, API testing, etc.

Education & Certifications
A relevant degree is desirable, but experience and the right approach to work are just as important.

Empowered Systems is an Equal Opportunity employer.