As a senior or mid-level Java backend developer you will be designing and implementing backend systems from idea to production. Such systems may manage various geo data sources, collect and process data, provide REST API for the UI layer. A typical technology stack is Java 8, Bootique, Apache Cayenne, PostgreSQL db, LinkRest (as well as any other technology that makes sense on a particular project, such as Spark, Flink, Cassandra, Kafka, etc.). A promising new direction is using GPU databases like MapD for real-time aggregation of massive amounts of data.
Our expectations from the candidates:
A backend Java programmer with a broad experience in modern application development.
- Understanding of relational databases and SQL.
- Deep understanding of the main building blocks of a typical Java web app (ORM, dependency injection, REST). We do not insist on specific frameworks knowledge, but the candidate should have experience with at least one technology stack.
- Understanding of REST and microservices architectures (especially for senior candidates).
- Geospatial systems experience is a plus, but is not required.
- Understanding of unit and integration testing, CI/CD.
- Big data / NoSQL databases is a plus, though is not strictly required.
Candidates should be comfortable with written communication in English, especially those at the senior level. Spoken English and good verbal communication skills are always a plus.