- Location
- Skopje
- Type
- Full-time
- Department
- Engineering
- Seniority
- Senior
- Closing date
- Today
- Source
- ApplyToJob
Description
Armedia is looking for a Senior Java Engineer to join our team and help modernize and scale our enterprise-grade case management platform. You’ll work on challenging engineering problems and modern architecture patterns, contributing to a platform that handles mission-critical workflows for legal, government, and enterprise clients.
We’re not looking for someone who’s done everything already. We’re looking for someone who's tackled similarly complex problems and is eager to dig in, solve issues, and deliver robust solutions. You should be self-directed, capable of proposing architecture improvements, and comfortable working without daily handholding. Regular peer reviews and collaborative planning sessions will be your check-ins.
Responsibilities
Responsibilities will be shared with team members, however the selected Candidate will be expected to review the assigned responsibilities.
Transition containerized applications from in-pod logging to centralized log aggregation (e.g., syslog)
Significantly reduce Java/Spring application startup time
Refactor synchronous operations (e.g., page counting, file type detection, language detection) to asynchronous flows
Analyze and resolve memory and performance bottlenecks; this may involve replacing inefficient libraries (e.g., PDFBox)
Identify and modularize monolithic components into microservices (e.g., PDF rendering, audit history, uploads)
Convert our Spring modulith into a distributed service architecture (message or gRPC-based)
Enforce strict plugin architecture with runtime plugin loading
Implement constant-time request handling with async side-effect processing
Enable OAuth and JWT-based authentication to replace Spring Security-based mechanisms.
Replace Solr-based metadata querying with SQL-based search; use Solr strictly for full-text search
Introduce multi-tenant persistence capabilities
Enhance build pipeline: enforce formatting, code quality, security scoring; run automated acceptance tests
Lead and support engineering efforts to improve system resiliency
Drive framework and library upgrades (e.g., Java, Spring, Angular)
Improve testing strategy and coverage before undertaking refactors
Contribute to FOIA/legal case file capabilities and ensure future-proof architecture for integrations
Required Qualifications:
Java (core language)
Spring Framework
Our Technical Stack:
MariaDB or PostgreSQL
Kubernetes, managed via Rancher
ActiveMQ / Artemis (event-based architecture)
Solr (search)
S3 / MinIO (document storage)
Pentaho (reporting)
PDFTron (document viewing & redaction)
Samba (centralized user management)
Node.js / Angular / AngularJS (web UIs)
Keycloak, Splunk, Grafana, Prometheus
Must have:
Proven experience with complex Java applications and enterprise architecture
Strong knowledge of Spring (modulith/microservices)
Hands-on experience with Kubernetes, containers, and CI/CD pipelines
Comfort with asynchronous processing and event-driven design
Understanding of secure API design and modern authentication (OAuth2, JWT)
Familiarity with performance optimization and memory profiling
Willingness to work with and improve legacy codebases
Strong testing discipline (unit, integration)
Bonus if you have:
Experience with FOIA or legal case management platforms
PDFTron or other native code integrations
Contributions to microservices design, gRPC, and plugin systems