Position: Senior Java Developer (DevOps team)
Company: O2IT
Category: Java
Experience required: 5y
English level: intermediate

ABOUT THE JOB

The Cloud Engineering team is responsible for storing and processing, among other things, our massive amounts of location and driving updates. Our distributed, microservices-based environment handles billions of API calls daily, often with downstream effects which are surfaced to our users in real time, providing peace of mind and real-time emergency response to tens of millions of families. We at the company 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 support enrich product with new features and identify potential bottlenecks which 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 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 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 select communications protocols
● Work with engineering and project managers to define project timelines
● Use JIRA to define and track 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 development of highly distributed systems using interservice messaging, especially around the problems which can occur
● Experience with AWS services and resource allocation, especially using Terraform
● Deployed systems using Kubernetes.
● Comfortable using Linux, shell scripting, etc.