|Location: Surrey||Salary: £55000 - £75000 per annum|
|Type: Permanent||Contact: Rebekah Thomas|
This is an opportunity to work for a progressive forward thinking company where the products that the Development team build are essential to the success of the company. You will be working on new and interesting projects and gain exposure to the latest technologies, whilst at the same time having some fun and working with a great bunch of people. If you are passionate about creating great software and want to work somewhere where there is a pragmatic focus on being effective and doing things well, this could be the job for you.
You will be working as a developer in one of our small, self-organising, cross functional teams in a place that knows the application of agile means far more than just putting the word Scrum in the title of meetings. We are serious about the application of Scrum and if you come and work for us you will gain exposure to working in a mature agile environment.
Maintaining a team centric philosophy is fundamental to our success with scrum so everyone is encouraged to take responsibility; we share in success when things are going well and everyone owns the problems when they are not. Each team handles all aspects of delivery for the project they are working on; going from initial requirements all the way through to working, shippable software, as such you will be expected to contribute to all facets of the development process. Along with the rest of the team you will be responsible for design, architecture and writing code for all areas of the product whether it be front end, server side, database or even deployment and build infrastructure. We like specialists and you will get to focus on your area of specialism, however we prefer people that are interested in learning new things and enjoy contributing in other areas too.
We know that everyone has different strengths and ambitions and that individuals bring different contributions to the team. We want you to be able to play to your strengths, and be interested in what you do. If you are a genius coder and want to stay focused on technology we aren't going to insist that you climb the management ladder to advance your career, we want you to be happy and we will reward you for doing what you do best. On the other hand if your future ambitions lie in management or elsewhere we will see how we can help with those too.
You won’t find a stuffy inflexible corporate environment or approach, we like to be more relaxed and have fun while we work, however we are very serious about delivering quality products and doing things well. We encourage continuous improvement and our teams are empowered to change the way we do things to ensure we always employ the most effective approach possible.
Skills & Requirements
- Excellent knowledge of Android Material design guidelines and best practices
- Experience of using the latest Android framework like Android Architecture Components (Room, Volley , ViewModel, LiveData)
- Excellent knowledge of building scalable code using dependency injection (Dagger, Kodein), RXJava, Retrofit/Volley
- Experience of building complex Android applications using the latest design patterns (MVP, MVVM etc)
- Experience working with a variety of web services data formats (e.g. JSON, XML, ProtoBuf), architectural styles (e.g. REST, GraphQL) and authentication schemes (e.g. OAuth2.0)
- Excellent understanding of Junit, Mockito and Expresso.
- Good understanding of Gradle and the Android Studio build process
- Experience in developing applications in Kotlin
- Excellent written and verbal communication, problem solving and analytical skills
- Positive proactive attitude, willing to turn their hand to any problem, and willing to work things out when they fall outside their area of direct expertise.
- Eager to work as a member of a team and pitch in to ensure the team succeeds with its commitments.
- An interest in expanding your horizons and learning new skills as well as caring about doing things well.
- More senior candidates should demonstrate leadership potential and be able to tick a lot more of the nice to have boxes below.
- We will be particularly interested in your application if you can tick some or all of these boxes too.
- Mobile development experience for iOS using native methods (Swift, Objective C). Our current focus is Android however iOS is on the horizon so being able to make a contribution to iOS as well as Android would be extremely desirable. If you haven’t done iOS development then we’ll be hoping that you are enthusiastic about learning.
- Full stack development - All of the server side aspects of our application are Microsoft Azure based. Candidates that already have some .Net skills or are interested in picking up Azure skills and C# .Net will be of particular interest.
- Understanding of Domain Driven Design and exposure to working with microservice architectures.
- Experience of test driven development, writing unit tests and solid understanding of how to write testable code
- Experience of working as a member of an agile team and familiar with agile planning and estimation techniques. A good understanding of the fundamental rationale for employing an agile approach
- Experience with using engineering practices that compliment an agile approach. Test driven development, source branching strategies (GIT Flow), continuous integration etc.
- Experience working with Jira, GIT and Azure DevOps / Azure App Center for source control, builds / deployment backlog and task management.