Position: Java Developer
Company: Integrallity
Experience required: 3y
English level: intermediate

Technology Stack:
● Front end: Javascript, React, and Ember
● Back end: Java 16 (SpringBoot, Gradle, JUnit, JOOQ), Ruby (Ruby on Rails, ActiveRecord, RSpec), PostgreSQL (AWS RDS), AWS services (e.g. EC2, Redis), Docker
● Tools: Gerrit, Jenkins, Datadog, Splunk, Sentry
● IDE: VS Code and IntelliJ
Project Duration:
At least for 12 months. The platform has been live for over 5 years already, deployed around the world in 7 regions, having many large school districts as clients. The existing and upcoming projects are about enhancing the product with new features and the Customer just started his biggest project which is the migration of the application from Ruby on Rails to Java 16 iteratively, feature by feature, going live with them one-by-one as they are releasable.
Typical Tasks for Near Months:
There are both front end, backend, and infrastructure-related tasks. You will also work on fixing bugs and supporting issue resolution for the customer’s clients. We are going to add a lot of new features to the platform in the upcoming 12-18 months.
Team Composition:
1 Engineering Manager, 1 Product Manager (shared with another team), 9 Developers (both Ruby and Java devs) – currently 5 Senior Developers and 1 Junior Developer, 1 Intern, 1 SET (software engineer in test – he is helping to build and maintain testing frameworks and ensure the testing mindset inside the team), and 1 Designer (shared with other teams).
Project Advantages:
● Great client community and a lot of feedback from the customer’s clients
● Working with the newest technologies (Java 16, Kubernetes, AWS services)
● Kanban – no artificial deadlines, continuous delivery (deploy every week)
● Open for innovative solutions, new ways of doing things (incl. hackweeks, hackdays)
● Working with Kanban with great success (switched from Scrum more than a year ago)
Processes on the Project:
The team is working in an Agile environment based on Kanban. The usual Agile ceremonies are held (daily standups, grooming sessions, retrospectives) with appropriate action plans/follow ups. As the team does most of the DevOps related work, the customer has processes in place to help, like on-call support (with primary and secondary people), service review meetings every three weeks, incident resolution, and reports with action plans and infrastructure monitoring.
The development lifecycle is supported by engineering grooming sessions, architecture/planning meetings, mandatory code reviews for each patchset, product reviews, test automation on every level (unit, integration, ui, e2e, incl. CI), quality reviews done by the developers themselves with the guidance of a SET (software engineer in test), advanced documentation artifacts (ADRs, detailed patchset descriptions and Jira acceptance criteria, meeting minutes, feature documents), and Jira for ticket management and work distribution.
What do Engineers Like about the Project?
Engineers are involved in the discovery and design phases of each project. Client feedback is also shared with them and they have the chance to talk to customers directly. It’s not an expectation, just an opportunity.
Engineers have the chance to work with a huge tech stack (JavaScript, React, Java, Ruby, Node.js, AWS), allowing them to be creative and bring new ideas to any layer of the application.
The core team has been together for almost two years. The customer built up processes and daily routines to have a great developer experience and work in a friendly and helpful work environment. There’s no blaming culture; the team has an outward mindset and a good relationship with other teams. The team members are proactive, client-focused, and supportive.

Responsibilities:

● Migrate existing functionality to new Java (1.16) back end from Ruby
● Add new features to the Java portion, sometimes with front end (React) impact
● Contribute in all phases of the development lifecycle
● Ensure designs are in compliance with specifications
● Attend meetings

Requirements:

● Extensive Java experience (3+ years)
● Spring Boot, AWS knowledge is a must
● JavaScript, frontend experience is an advantage
● Open minded, friendly, ready for new challenges with a strong focus on collaboration
● Always ready to help, educate and mentor other team members
● Committed to the successful delivery of business objectives
● Proactive, suggesting and driving your solutions forward
● Passionate about learning new tools and techniques