Position: Senior Java Developer
Company: O2IT
Category: Java
Experience required: 5y
English level: fluent
Published: 2021-01-01T00:00:00+02:00

Our distributed, microservices-based environment handles billions of API calls daily, often with downstream effects that are surfaced to our users in real-time, providing peace of mind and real-time emergency response to tens of millions of families.
We have nearly doubled our user base each year for the last few years and we are focused on continuing to feed this growth for the foreseeable future. As we grow, we continue to meet the difficult challenges of increased data management and API traffic. Among the projects we are taking on in the near-to-mid future are building an event stream to upgrade our first-in-class location storage engine, splitting apart our PHP monolith into JVM-based microservices, and updating our persistence layer to meet the growing demands of storage.

**RESPONSIBILITIES**

The goal of the Cloud Services team is to identify potential bottlenecks that will prevent us from scaling 10x and develop solutions to these bottlenecks. A successful candidate will be able to drive this effort, working with Cloud Staff engineers along with DevOps and Mobile Client engineers to design effective solutions. They will also work with their implementation team, mentoring more junior developers, and defining a higher level of excellence through modeling, demonstrating, and helping shape effective practices.
We are looking for someone who has a history of leading teams of two or more engineers through all stages of feature development; from requirements gathering and design, through the development and debugging, and continuing with test development, release, and ongoing maintenance and support.
These are some typical responsibilities:
✔ Work with stakeholders to add definition to project requirements
✔ Assess the scope and build recommendations for Minimum Viable Product
✔ Work closely with DevOps, staff, and mobile engineers to design the APIs, data stores, code/services structures, and communications protocols
✔ Work with engineering and project managers to define project timelines
✔ Use JIRA to define and track the status of epics and stories
✔ Development of projects, collaborating with other cloud team members, and mentoring/modeling for more junior team members
✔ Development of a test plan and execution of appropriate tests, including unit and automation tests
✔ Ensure appropriate metrics, monitoring, and logging are in place
✔ Work with DevOps engineers to ship features to development and production using Kubernetes
✔ Build dashboards and alerts for ongoing monitoring of features and services
✔ Participate in on-call rotations, bug fixing, and on-going tuning and improvements

**MINIMUM QUALIFICATIONS**

We are looking for candidates with a diverse background that will complement the skills and backgrounds of the current team. If you don't fit all the criteria below please apply anyway as this list is more of a preference rather than a rule. Our priority is for a well-rounded team that delivers results.
✔ Six years of professional experience
✔ Strong knowledge of microservice development in Java, especially with the Spring Boot framework
✔ Rich experience in another programming language a plus (our systems mainly use Python, Java, and PHP)
✔ Data modeling and working with persistence (we use primarily MySQL, Cassandra, and DynamoDB)
✔ Comfortable using Git
✔ Skilled in the development of highly distributed systems using interservice messaging, especially around the problems which can occur
✔ Deployed systems using Kubernetes
✔ Experience with AWS services and resource allocation, especially using Terraform
✔ Comfortable using Linux, shell scripting, etc.