Position: Senior Java Software Engineer
Company: N-iX
Category: Java
Experience required: 5y
English level: intermediate

Tech stack:

Most of our software runs Java 11, in GCP, inside Docker (now), and soon Kubernetes (in progress). Monitoring is in NewRelic, logs are aggregated in Google’s StackDriver, and we have some extra monitoring using Grafana/Prometheus.
We follow the “you build it, you run it” model, and believe the only way to do this is automation — through testing, infrastructure, deployments, and alerting.
Programming languages: Java, some Kotlin, very little Scala.
Our applications start via public static void main and are based on SparkJava and Javalin.
The default datastore is Postgres, which we interact with through jOOQ.
Among the publicly known frameworks, we have two internal: EventStore and Alpha.
EventStore is an event distribution and delivery mechanism. Why not Kafka? When we were choosing a solution, it couldn’t do all we needed. And it works!

Requirements:
• 5+ years of software design and development experience
• Strong fundamentals in computer science with experience in data structures, algorithms, and software design
• BS or MS in Computer Science or a related degree
• Strong knowledge and hands-on experience with Java
• Experience with Docker and Kubernetes is a strong plus
• Have the ability to work independently and as a team member in a project, with strong analytical and problem-solving skills
• Experience or familiarity with developing RESTful web APIs
• Strong written and verbal communication skills
• Experience with relational databases, especially PostgreSQL
• Desire to make the difference in the fintech domain

Would be a plus:
• Familiarity with Kotlin and/or Scala
• Familiarity with Grafana/Prometheus
• Familiarity with configuring and using CI/CD pipelines

Work organization:
Teams are cross-functional and autonomous. Processes are up to the team — we only require tests, automated and thorough, being written, and code reviews taking place. Some teams do iterations, some are closer to Kanban, and some have adopted pair programming.
Imagine “How could you have done this differently”, engineer to engineer. This is what our mentoring program does — retrospect on work done, learnings and observations, and discussing this with an experienced engineer. Learning “by doing” is important, but retrospection and 2nd pair of eyes are essential, too.

We offer:
• Flexible working hours
• A competitive salary and good compensation package
• Possibility of partial remote work
• The Best hardware
• A masseur and a corporate doctor
• Healthcare & sport benefits
• An inspiring and comfy office

Professional growth:
• Challenging tasks and innovative projects
• Meetups and events for professional development
• An individual development plan
• Mentorship program

Fun:
• Corporate events and outstanding parties
• Exciting team buildings
• Memorable anniversary presents