We’re looking for a Java/Kotlin Engineer who will develop tools and pipelines related to AI, rendering, data conversion, and similar areas.
Our tech stack:
Languages: Kotlin, Python
Core development: Kotlin/JVM, Java, coroutines, serialization, reflection, dependency injection with Dagger
3D and rendering workflows: Blender Python scripting, glTF processing, 3D model conversion, geometry/math-related tooling, scene and asset preparation pipelines
Data and storage: MongoDB, SQLite, FlatBuffers
Infrastructure and observability: Prometheus metrics, Sentry, CI/CD, Git, Git LFS, internal monitoring and logging
Strong experience with Java and/or Kotlin on JVM;
Practical experience with Python, willingness to work deeply with Python-based Blender rendering pipelines;
Good understanding of JVM ecosystem: Gradle, dependency management, modular code structure, debugging, profiling, logging, and performance optimization;
Solid SQL knowledge (SQLite, MySQL, PostgreSQL);
Good understanding of object-oriented programming, SOLID principles, clean architecture, and maintainable code design;
Ability to work with math-heavy, data-heavy, or algorithmic tasks and turn them into stable production solutions;
Ability to write clean, reliable, high-performance code and cover critical logic with tests;
Knowledge of Linux, common tools, and Linux ecosystem;
Fluent in English.
Experience with Python, C / C++ languages;
Experience with popular libraries like Spring, Dagger, JUnit, Apache Commons;
Understanding of 2D / 3D technologies and software (for example OpenGL, WebGL, Raytracing, Blender);
Understanding of Mathematics, Geometry, Computer Vision;
Understanding of Kubernetes, Docker and nearby technologies.
Process data from APIs, databases, JSON, XML, and other sources;
Transform assets (images, 3D models, videos, etc.) into different formats;
Import and export of 2D/3D data from and to .dxf/.dwg/.blend formats;
Write a Blender plugin to load data and provide additional modeling functionality;
Write high performance code using CPU and GPU to the max (using parallel, concurrent programming like coroutines, threads, Rx, promises, futures, etc.);
Build processing pipelines, where multiple threads are used to max out CPUs and do lots of different processing on multiple threads/coroutines/Rx/java streams/etc.