Skip to main content

Java Developer

Technology
InfoStride
YesterdayUntil 20/11/2026
Full timeOn-site

Job description

Location: Mohali

Work Mode: 5 Days Work From Office

Shift Timing: 11 AM IST onwards

Experience: 4+ Years

Employment Type: Full-Time

About the Role

We're looking for a Java Developer with strong backend skills and experience building calculation-heavy, finance-related applications.

Key responsibilities

  • Design, build and maintain backend applications using Java and Spring Boot. Break requirements into modules, write the code end to end, and keep it maintainable as features grow.
  • Build secure, well-structured REST APIs with proper request validation, error handling, status codes and versioning. Document APIs using Swagger/OpenAPI so other teams can use them easily.
  • Write clean, readable and testable code that follows SOLID principles and team coding standards. Refactor older code when needed and keep technical debt under control.
  • Implement business logic for multi-step calculations such as rates, slabs, percentages, fees, rebates and penalties. Make sure every result is accurate, repeatable and easy to trace.
  • Implement double-entry postings, map each transaction to the correct finance/account codes, and handle reversals, refunds and adjustments without breaking ledger balances.
  • Write and optimise complex SQL queries, stored procedures, views and reports. Design tables and indexes that keep data consistent and queries fast as volume grows.
  • Write unit and integration tests for all business logic, with extra focus on calculation edge cases and boundary values. Keep test coverage high so changes can be released with confidence.
  • Investigate and fix production issues, including calculation or data mismatches. Do root-cause analysis and put permanent fixes in place, not just workarounds.
  • Take part in code reviews, sprint planning and technical discussions. Work closely with QA, business analysts and finance teams to clarify rules and confirm expected results.
Required skills and experience
  • 4–8 years of hands-on Java development (Java 11 or later; Java 17 preferred), with at least 2 years on enterprise or transaction-heavy applications.
  • Strong command of OOP concepts, Collections, Generics, Multithreading and concurrency utilities, Exception Handling, Streams and Lambdas. Able to explain why one approach is better than another, not just use it.
  • Solid experience with Spring Boot, Spring MVC, Spring Data JPA, Hibernate and Spring Security. Understands dependency injection, bean lifecycle, profiles and configuration management.
  • Has built and consumed RESTful services, including authentication (JWT/OAuth2), validation, pagination and global exception handling. Has integrated with third-party APIs such as payment gateways or banks.
  • Strong SQL on PostgreSQL, Oracle or MySQL — complex joins, subqueries, window functions, indexing, stored procedures and query tuning using execution plans.
  • Clear understanding of ACID, isolation levels, optimistic and pessimistic locking, and idempotency. Knows how to prevent duplicate entries and race conditions in multi-user systems.
  • Uses BigDecimal correctly for money, with defined scale and rounding modes. Knows why double/float must not be used for financial values.
  • Understands ledgers, journal entries, debits and credits, chart of accounts and finance code structures. Can translate a finance rule into correct and testable code.
  • Writes unit tests with JUnit 5 and Mockito, and integration tests for APIs and database layers. Comfortable with test-driven thinking for logic-heavy code.
  • Comfortable with Git branching, Maven or Gradle, Jenkins or other CI/CD tools, and basic Linux commands for deployment and log checks.
  • B.Tech / BE / MCA in Computer Science, IT or a related field.
Keywords
JavaSpring BootSpring MVCSpring Data JPAHibernateSpring SecurityREST APIsSQLPostgreSQLOracleMySQLFinancial CalculationsDouble-Entry AccountingJUnit 5MockitoConcurrencyJava 11Java 17SwaggerOpenAPI

Interested in this role?