Mid-Level Back-end Developer

Team Overview / Purpose

We are a boutique technology company that has close relationships with several partners, working hand in hand with them to deliver high quality software from a roadmap of innovative and complex features in a high transaction environment.

Opportunity

As a Back-End Developer, you will design and develop high quality software using Java/Groovy and associated backend frameworks to run on a scalable clustered environment. You will also leverage lean and agile techniques to ensure that new ideas are rapidly iterated and are pushing forward the state of the art in quality, automation and simplicity of all code and processes. We are particularly focused on leveraging rapid feedback loops to guide ongoing development. You will expect to work collaboratively with the Product Owner, Business and development team to ensure product cycles are kept as efficient as possible.

Key Responsibilities

• Writing backend code and tests (with an eye for full stack) as well as leveraging open source technologies to get reliable results.
• Improving code quality through testing, refactoring, peer-reviews and pair programming while emphasizing simplicity
• Championing software quality, innovation and appropriate technology choices.
• Working effectively in an agile team using Scrum, XP and Lean practices, e.g. participating in daily stand-ups, planning sessions, showcases and retrospectives.
• Collaborating with business stakeholders and internal users to design and deliver products that attract new customers and keep them coming back
• Writing end-to-end user stories that steer a technical design that can be iteratively developed by the entire team
• Performing root cause analysis to ensure that mistakes are properly understood and not repeated
• Contributing to coding standards and guidelines as well as setting a good example by adhering to them
• Standing by your solutions to ensure that both you and the team have the tools and ability to support its operation after hours


Behavioural Competencies Required

• Delivering Tasks Effectively
• Applying Critical Thinking
• Engendering Team Spirit
• Providing Commitment

Essential Skills and Experience

• Extensive knowledge of Java, Spring and associated technologies: Junit, Web Application Servers (e.g. Jetty/Tomcat), Gradle/Maven/Ant
• Strong knowledge of MySQL and writing optimised database queries
• Thorough understanding of architectural software concepts, and
•••• Object Oriented and Functional programming
•••• MVC/MV* architectures
•••• asynchronous server communication
• Experience in the design and development of RESTful web services and JSON handling.
• Able to use Git and understand distributed version control strategies
• Software craftsman, with a rigorous and disciplined approach to writing simple and effective software but not afraid to learn from failure and tell others about mistakes
• Knowledgeable in web software architectures and design patterns
• You champion agile principles and are a strong advocate for Continuous Delivery, TDD, Refactoring and Pair Programming
• Are familiar with using a tracking system such as JIRA.
• Have an aptitude and willingness to learn the business domain and new technologies
• Are a genuinely nice person, opinionated but humble enough to work with anyone

Beneficial Skills and Experience

• Familiar with Groovy, Spock, Hibernate, Spring Boot
• Have used cloud services like AWS or Google App Engine
• Experience of integrating backend services with NodeJS, Angular, Ionic or a similar framework for mobile site development
• Experience of using Google Analytics and logging services like Datadog and Splunk to track product usage and drive features
• Knowledge of multi-threaded programming and concurrency
• Experience using virtual services like Docker to automatically build new environments for development and testing
• Track record of delivering scalable applications that are performant under high traffic volumes and leverage a CDN like Fastly
• Comfortable working in a Linux environment with scripting languages
• Interested in full stack development and a dev-ops approach to delivery