Senior Java Software Engineer
Dautom · Sharjah, Sharjah Emirate, United Arab Emirates
Apply & track with Apply EdgeRole OverviewWe 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 – fromsolution design through implementation, testing and production support – collaborating with product managersand cross-functional teams to deliver reliable, scalable services and well-designed APIs.Work Location: SharjahExperience: 8+ YearsNotice Period: Immediate to 30 Days UAE based candidates onlyKey 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.Essential Requirements (Must-Have)Education & experience
- 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, databasedesign and UML.Core backend
- 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.Distributed systems, messaging & resilience (primary assessment area)
- 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 leaderelection).
- SOA and microservices architecture; awareness of CQRS.Performance & concurrency
- 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