27 Sep
|
Neurealm
|
Chennai
Senior Software Engineer – Java Application Support
Application Support & Managed Services | Java Technology Stack
Role Title: Senior Software Engineer – Application Support (Java / Spring Boot)
Grade / Band: Senior Software Engineer
Experience: 4–8 years, with at least 2 years supporting production Java applications
Location: [Location] – hybrid; shift coverage, weekend releases and on-call required
Reports To: Lead – Java Application Support
Role Summary
We are seeking a Senior Software Engineer to provide L2/L3 support. You will investigate production incidents down to the code level, write and test defect fixes, tune performance, and take ownership of the root cause analysis for issues in your area. Because the team owns the codebase, this role blends production support discipline with real development capability — expect to spend your time across log analysis, thread and heap dumps, SQL investigation, and the IDE.
Key Responsibilities
L2 / L3 Incident Resolution
Investigate and resolve incidents and service requests for assigned Java applications within agreed SLAs.
Perform detailed log analysis across application, integration, middleware and database layers to isolate root cause.
Analyse thread dumps, heap dumps and GC behaviour to diagnose hangs, memory leaks, slowness and crashes.
Reproduce production defects in lower environments and confirm the failure path in the source code.
Participate in major incident bridges, providing clear technical analysis and timely updates.
Escalate to the Lead or development team with complete diagnostic evidence when the fix is outside support scope.
Code-Level Fixes & Application Maintenance
Develop, unit test and raise pull requests for production defect fixes and hotfixes in Java/Spring Boot.
Implement approved configuration changes, property updates, data corrections and remediation scripts.
Deliver small enhancements and change requests routed to the support team.
Write and validate SQL data fix scripts, with rollback statements prepared before execution.
Follow the change process for every production modification — no undocumented changes.
Problem Management & Performance
Own root cause analysis for recurring and high-impact issues in your area and contribute to formal RCA documents.
Profile and tune application performance — slow endpoints, inefficient queries, connection pool sizing, caching, JVM parameters.
Maintain the known-error database and workaround library.
Identify supportability weaknesses (poor logging, missing error handling, absent retries) and raise them for remediation.
Monitoring, Automation & Release Support
Monitor application health, batch schedules, queues and integration flows; act on alerts before user impact.
Build and maintain health-check scripts, alerts and dashboards; close monitoring gaps proactively.
Automate repetitive operational tasks through scripting to reduce manual effort and human error.
Support deployments and release windows — execute steps, validate post-implementation health, and be ready to roll back.
Support UAT and regression cycles by triaging defects and coordinating fixes.
Documentation & Mentoring
Create and maintain runbooks, SOPs, troubleshooting guides and knowledge base articles.
Enable L1/SE colleagues to handle repeatable issues independently through shift-left documentation and coaching.
Mentor junior engineers on debugging technique, not just on individual fixes.
Complete structured shift handovers so no issue is lost between shifts.
Technical Skills
Java Troubleshooting & Development
Strong hands-on Java (8/11/17) — you must be able to read, debug, modify and unit test production code.
Spring Boot and Spring Framework — configuration, dependency injection, transactions, Actuator, profiles.
Hibernate/JPA and its production failure modes; ability to drop to native SQL when needed.
JVM diagnostics: jstack, jmap, jstat, jcmd, VisualVM, Eclipse MAT; reading GC logs and diagnosing OutOfMemoryError.
Debugging concurrency issues — deadlocks, thread pool exhaustion, race conditions.
JUnit and Mockito for validating fixes before release.
Platform, Data & Tooling
Application servers: Tomcat, JBoss/WildFly, WebLogic or WebSphere — datasources, connection pools, thread pools.
Databases: Oracle, PostgreSQL, MySQL or SQL Server — complex SQL, execution plans, locking and blocking analysis.
Messaging: Kafka (consumer lag, offsets), RabbitMQ, ActiveMQ or IBM MQ; REST/SOAP APIs, XML/JSON, SFTP interfaces.
Linux/Unix command line and scripting (Shell or Python).
Docker and working familiarity with Kubernetes/OpenShift troubleshooting.
Observability: ELK/Splunk, Grafana, Dynatrace or AppDynamics; Logback/SLF4J configuration.
Git, Maven/Gradle and CI/CD pipelines (Jenkins, GitLab CI, Azure DevOps).
Job schedulers: Control-M, Autosys, Quartz or cron.
ITSM tooling: ServiceNow, Jira Service Management or Remedy.
Required Skills & Experience
4–8 years in application support, production support or application maintenance on Java-based systems.
Demonstrated ability to debug a production issue into the source code and deliver a tested fix.
Hands-on JVM troubleshooting experience — thread dumps, heap dumps, GC analysis.
Robust SQL skills including query analysis and performance awareness.
Practical Linux/Unix and scripting ability for log analysis and automation.
Working knowledge of ITIL incident, problem and change management and ITSM tooling.
Experience supporting releases and executing production deployments and rollbacks.
Clear written and verbal communication; able to explain a technical issue to business users.
Willingness to work rotational shifts and participate in on-call and weekend release activity.
Bachelor's degree in Computer Science, Engineering or a related discipline.
Good to Have
ITIL v4 Foundation certification.
Experience supporting microservices — distr
📌 Senior Applications Support (Chennai)
🏢 Neurealm
📍 Chennai