Position: Senior Java Developer
Company: LINNU
Category: Java
Experience required: 5y
English level: upper

**Important**
👨‍💻 5+ yrs experience in Java Development
🛠️ Stack: Java, Kotlin, SQL, Design Patterns, Python
📍 Location: Fully-remote (EU preferred)


**Requirements**
- 5+ years of job experience in Java development
- Knowledge how to write clean and maintainable code (best practices, TDD, design patterns)
- General understanding and knowledge of the Java ecosystem (frameworks, libraries, services)
- Experience with Kotlin
- SQL (SQLite, MySQL, PostgreSQL)
- Multithreaded development - threads, coroutines, Rx, Java streams
- Supporting technologies - REST, JSON, XML, HTML, Git.

Nice to have:
- Experience with Python, C / C++ languages
- Understanding of 2D / 3D technologies and software (for example OpenGL, WebGL, Raytracing, Blender)
- Understanding of Mathematics, Geometry, Computer Vision


**Tasks**
- Develop new features and maintain console applications and utilities
- Research into current and upcoming technologies like AI, big-data, 3D, media formats, ...
- Write maintainable, high performance and quality code - this means using best practices like SOLID, STUPID, writing tests, doing code reviews, ...
- Communicate in our team to clarify complex technical questions
- Working with processes and tools needed for development - like SCRUM, Jira, Git, IDEs, ...
- Writing Java, Python and Kotlin code
- Learn and improve your knowledge (with help of other team members as needed)

- Several example of tasks you will be doing:
- Process data from APIs, databases, JSON, XML, ...
- Transform assets (like images, 3D models, videos, ...) to different formats
- Import and export of 2D/3D data from and to .dxf/.dwg/.blend/... formats
- Writing Blender plugin to load data, provide some extra modelling functionality in Blender
- Write high performance code using CPU and GPU to the max (using parallel, concurrent programming like coroutines, threads, rx, promises, futures, ...)
- Write processing pipelines, where multiple threads are used to max out CPUs and do lots of different processing on multiple threads/coruotines/rx/java streams/... .


Benefits
1. Investment in education and training
2. Company-provided computer equipment according to your wishes
3. 40 days paid Time Off
4. Additional perks such as discounts on car rentals, co-working spaces, work management tools, and immigration support
5. 100% remote work (within EU preferred)