About the project:
In a small team of about 10, there are many opportunities for you to develop a range of new skills and to bring your own ideas into the project. The project owner has a technical background and is very open to new and better ways to solve problems.
The project is a software product for the education sector, delivered as both SaaS and downloadable products. Although it is a mature, stable product driving ecommerce, CRM, CMS, search and finance features, it is also being constantly expanded in new directions. Large scale refactoring into React and other modern tools is currently underway.
As a mature project that is 12 years old, the software is built on a number of open source libraries. Multiple backends in a micro-service style architecture are written with:
- Java 8 and Groovy
- Cayenne ORM (like Hibernate but nicer)
- Apache Tapestry
- CXF (for SOAP and json/REST interfaces)
- Front-end applications were Swing/JavaFX and are being rewritten in React/Redux.
Tooling is Swagger, Gradle and Webpack. Testing is JUnit and Cucumber.
Additional supporting architecture is built with Zookeeper, Solr, AWS S3 and a managed deployment environment built on FreeBSD and SaltStack. We use Phabrictor, Jira, Jenkins and many other modern tools to ensure we spend as much time as possible writing interesting code rather than solving boring problems.
We used to work in Scrum milestones, but have moved to Kanban as a more comfortable and less stressful way of working towards our goals. Our team is comprised of people who are trusted to set their own targets and not be micro-managed.
We are looking for a senior developer who understands how to take customer requirements and create an architecture which is maintainable and understandable. We need a developer who can help mentor the junior members of our team and collaborate side-by-side with the senior developers, workshopping ideas and solutions.
The code in our application has to be clear rather than clever and tricky, but there is also plenty of opportunity to devise new and interesting ways to solve problems.
We'll be selecting a developer for their ability to work in a team and lead it when necessary, but also to be able to understand commercial requirements and convert them into solutions. Excellent written English is important to communicate with the project owners in Sydney, Australia.