Senior Java Engineer
Skopje, Macedonia, Republic of
Full Time
Experienced
ArkCase 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
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
- 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 detection) to asynchronous flows.
- Analyze memory and performance bottlenecks; replace 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 Context - 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, and security scoring.
- 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
- Kubernetes, managed via Rancher
- ActiveMQ (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)
- Experience with FOIA or legal case management platforms
- PDFTron or other native code integrations
- Contributions to microservices design, gRPC, and plugin systems
Apply for this position
Required*