Hello, we are Optimal Movement!
And we are a product company, not a "galley" (outsourcing company).
Therefore, we have:
- Normal development within the framework of a modern technological stack — Java, Spring, Gradle, and so on.
- You will not be sent on unpaid leave because you were removed from a project or the client didn't like you. We develop our own product and are responsible for its development ourselves.
- Development is carried out according to a true Scrum process. We have two-week sprints, sprint planning, stand-ups, and even a real retrospective at the end of each sprint. At retrospectives, we don't just go through the motions; we truly communicate, discuss problems, and think about how to improve.
What you will be working on:
We have two products: QMS and LIMS. These are systems that help pharmaceutical companies create and produce medicines safely and in a way that they are truly effective.
Someone might say that pharma is boring, but on one hand, it's important, and on the other hand, it's an industry that continues to develop even when all others are dying.
Our stack: Java and Kotlin, Jmix and CUBA Platform, Spring Boot, PostgreSQL, and Gradle.
The task pool will include two types of work. Currently, we have almost no legacy code left; we are finishing the migration, so the work will be divided approximately 50/50: creating new modules and adjusting existing ones.
Your tasks:
- Development of new modules and enhancement of existing ones in Java/Kotlin.
- Work with tasks at the technical description level. Your tasks will not be described in such a way that you only need to paste them into Claude and get the result. Sometimes you will need to analyze, understand, and ask questions yourself.
- We work in the SP format, where 1 SP is approximately 1 working day. Therefore, if you receive a task for 5 SP, you will need to decompose it.
- By the way, about estimation. We estimate tasks during morning syncs, and yes, this can also be your job. This is not an estimate for the client, but an estimate for sprint planning.
- Conduct code reviews for colleagues.
- Analyze and fix bugs, understand other people's code and legacy code.
We are looking for you if:
- You have 2+ years of Java development experience and understand how Spring works at least at a basic level.
- You have a specialized education. Or a technical one. Or you are ready to prove at a live interview that education is nonsense, for example, by explaining why 0.3 - 0.2 in Java might not be equal to 0.1.
- You are energetic, have the drive to defend your position and propose solutions. We need people who are interested in more than just getting a task and writing code. If you plan to live only in code, then we probably won't work well together.
- You are ready to understand requirements and the subject area yourself, not just the code. We are, after all, a product company.
- You have practical experience with PostgreSQL or have worked with JPA.
It will be a plus if:
You know how to use Docker, microservices architectures, Superset, Python, CUBA Platform, Jmix.
What we offer:
- A product team with attention to quality.
- Reasonable work processes, adequate workload.
- The opportunity to influence the product.
- Office work / hybrid / remote.
- Official employment under the Labor Code.
- Starting salary is determined based on the interview results, depending on the candidate's experience.