Responsibilities:
Role Overview
We are seeking a hands-on Lead Software Engineer (Java) to design and deliver scalable, secure, and high‑performance backend systems. This role emphasizes technical excellence, mentorship, driving projects to completion, and clear stakeholder communication.
Key Responsibilities
-
Design & Build: Architect and implement Java/Spring Boot microservices and RESTful APIs aligned to business and non-functional requirements.
-
Quality Engineering: Establish and maintain a test strategy (unit, integration, performance), enforce code quality.
-
Performance & Resilience: Profile JVM and databases, apply caching, implement resilience patterns (circuit breakers, retries, backoff).
-
Security & Compliance: Implement secure coding, OAuth2/JWT, input validation, encryption.
-
Observability: Implement structured logs, metrics, and distributed tracing, define SLIs/SLOs, alerts, and meaningful dashboards.
-
Technical Enablers: Contribute to shared libraries, templates, and reusable patterns, improve developer experience (DX).
-
Mentorship & Collaboration: Mentor engineers via pairing and reviews, communicate trade-offs and risks early to Product/Architecture/QA.
-
Facilitate agile ceremonies : (stand‑ups, backlog refinement, sprint planning, demos, retros) with a focus on technical outcomes, risk surfacing, and sprint goal clarity.
-
Refine stories into actionable technical tasks: ensure Definition of Ready/Done, unambiguous acceptance criteria, testability, and accurate story point estimation.
Qualifications:
Must‑Have Skills (Java)
-
Java / Java 8+
-
Deep OOP & SOLID principles.
-
Streams API, Optional, functional interfaces, lambda expressions.
-
Multithreading & Concurrency: thread pools, Future/CompletableFuture, synchronization, locks, concurrent collections.
-
Java Memory Model: heap/stack fundamentals, Garbage Collection behavior and tuning.
-
Web Technologies
-
Design & implement RESTful APIs (idempotency, pagination, robust error models).
-
Rate limiting & API Gateway concepts, Swagger/OpenAPI documentation.
-
Exposure to WebLogic/WebSphere (or embedded servers: Tomcat/Jetty).
-
Spring Framework
-
Spring Core (IoC/DI), Spring MVC, Spring Boot (auto-configuration, starter dependencies).
-
Spring Security (JWT, OAuth2), Spring Batch, Spring AOP.
-
Architecture & Design Patterns
-
Event-Driven Design (MQ messaging/queuing).
-
Design patterns: Factory, Builder, Strategy, Template.
-
Data & Tooling
-
Strong SQL (DB2/MySQL): schema design, indexing, query tuning.
-
Build & CI/CD: Maven/Gradle, Git, Jenkins/GitHub Actions.
-
Testing: JUnit 5, Mockito, Testcontainers
-
performance testing (JMeter/Gatling).
-
Observability: logs/metrics/traces (Dynatrace, ELK).
Good to Have
-
Messaging/eventing (Kafka/JMS)
-
Containers (Docker) and orchestration basics (Kubernetes/ECS).
-
DDD architecture
Soft Skills
-
Strong problem-solving, analytical thinking, and bias for action.
-
Plans, prioritizes, and communicates effectively across teams and time zones.
-
Mentors teammates, provides clear, constructive feedback.
-
Demonstrates ownership, raises the bar, and consistently exceeds day-to-day expectations.
-
Identifies ambiguity/risks and proactively drives clarity and resolution with stakeholders.