Senior Java Software Engineer
We are hiring an experienced Senior Software Engineer to design, build and maintain high-performance, secure Java back-end systems for a large-scale digital services platform. You will work end-to-end – from solution design through implementation, testing and production support – collaborating with product managers and cross-functional teams to deliver reliable, scalable services and well-designed APIs.
Work Location: Sharjah Experience: 8+ Years Notice Period: Immediate to 30 Days UAE based candidates only Key Responsibilities- Design and develop high-performance, scalable back-end systems and effective APIs.
- Build and maintain well-functioning databases and applications.
- Implement security and data-protection controls across services.
- Write clean, maintainable, well-tested code; debug and resolve production issues.
- Produce clear technical documentation and participate in code reviews.
- Communicate with stakeholders and service providers to align technical requirements.
- Stay current with tools and practices to continuously improve the back-end platform.
- Bachelor’s or Master’s degree in Computer Science or a related field.
- 5+ years’ hands-on software engineering experience at a senior level.
- Strong CS fundamentals: algorithms, data structures, OOP, design patterns, software architecture, database design and UML.
- Java (11+) and Spring Boot – current, hands-on, build-level experience (not architecture/oversight only).
- Oracle Database – SQL and PL/SQL, indexing, query tuning and reading execution plans.
- REST and SOAP web services – designing and consuming both.
- API security – JWT (access vs refresh tokens), Spring Security, and OAuth2 / OIDC.
- Oracle WebLogic and Apache Tomcat – deployment, tuning and troubleshooting on application servers.
- Apache Kafka or RabbitMQ and event-driven architecture.
- Transactional outbox pattern for save-and-publish consistency.
- Idempotent consumers and duplicate-message handling (unique key + de-duplication).
- Resilience patterns – circuit breaker, retry with back-off, fallback, bulkhead and rate limiting (e.g. Resilience4j).
- Distributed locking for scheduled jobs across multiple instances/pods (e.g. ShedLock, Redis or leader election).
- SOA and microservices architecture; awareness of CQRS.
- Diagnosing latency when CPU is low (thread- and connection-pool exhaustion, GC, blocking I/O).
- Query optimisation, avoiding full table scans, and resolving the N+1 problem (fetch join, entity graph, batching).
- Optimistic vs pessimistic locking and handling race conditions.
- Memory-leak diagnosis using heap dumps and profilers