The role
Job description
Role Overview
We are looking for a technically strong, hands-on Java Principal Software Engineer with extensive experience in modern
Java, Spring Boot, microservices, cloud architecture, and database design.
The candidate will actively contribute to technical design, coding, code reviews, troubleshooting, and feature implementation while providing technical guidance and mentorship to developers.
The Principal Software Engineer will work closely with the Solution/Technical Architect to translate architectural designs into practical implementations, align development decisions with architectural standards, and ensure solutions are scalable, secure, maintainable, and performant.
The ideal candidate should have strong engineering fundamentals, practical experience with AI-assisted development tools, and a humble, collaborative attitude with a genuine willingness to learn.
Key Responsibilities
- Lead the design, development, and implementation of backend features using modern Java, Spring Boot, and microservices.
- Collaborate with the Solution/Technical Architect to understand architectural decisions, translate designs into implementation plans, and provide technical feedback on feasibility, complexity, and trade-offs.
- Ensure implementation aligns with agreed architecture, design principles, security standards, and engineering best practices.
- Identify technical risks, dependencies, and design gaps, and work with the Architect to resolve them.
- Design maintainable, scalable solutions using appropriate design patterns, SOLID principles, and clean coding practices.
- Develop and review REST APIs following established standards for resource naming, HTTP methods, status codes, request validation, error handling, versioning, and pagination.
- Design, implement, and troubleshoot scheduled and background jobs, including job execution, scheduling, failure handling, and recovery.
- Collaborate with developers on technical implementation, code reviews, problem-solving, and features Delivery.
- Design and review database schemas, relationships, indexes, SQL queries, transactions, and database migration strategies.
- Understand cloud architecture, including API gateways, load balancers, networking, compute services, managed databases, security, and monitoring.
- Implement application security measures, including authentication, authorization, JWT validation, and secure service-to-service communication.
- Apply performance optimization techniques, including caching, rate limiting, database query optimization, and efficient resource utilization.
- Leverage AI-assisted development tools to accelerate coding, debugging, refactoring, test creation, and documentation while maintaining code quality and security.
- Troubleshoot complex applications, database, networking, performance, and production issues.
- Guide and mentor developers, establish coding standards, and ensure maintainable, reliable, secure, and scalable solutions.
- Coordinate technical dependencies, manage delivery risks, and collaborate with QA, DevOps, and other Teams.
Required Skills
- Modern Java: Strong knowledge of Java 17+, collections, HashMap internals, generics, concurrency, multithreading, synchronization, JVM fundamentals, object-oriented programming, and SOLID principles.
- Data Structures and Algorithms: Understanding of fundamental data structures and algorithms, including arrays, linked lists, stacks, queues, hash maps, trees, sorting, and searching. Familiarity with time and space complexity (Big O notation), algorithmic efficiency, and selecting appropriate approaches to solve practical engineering problems.
- Spring Boot: Strong understanding of dependency injection, bean lifecycle, transaction management, REST APIs, exception handling, and Spring Security.
- REST API Standards: Understanding of REST principles, resource-oriented design, HTTP methods and status codes, request validation, consistent error responses, API versioning, pagination, filtering, and backward compatibility.
- Design Patterns and Clean Code: Practical knowledge of commonly used design patterns such as Factory, Strategy, Builder, Observer, and Singleton, with the ability to select appropriate patterns without unnecessary complexity. Strong understanding of SOLID principles, separation of concerns, and maintainable code design.
- Microservices: Experience designing and troubleshooting distributed applications, service communication, resilience, and data consistency.
- Cloud Architecture: Good understanding of cloud components, networking, API gateways, load balancing, security, deployment, and monitoring. Experience with Azure, AWS, or GCP.
- Database Design: Ability to design relational database schemas, write and optimize SQL queries, understand indexing and transactions and manage schema changes.
- Networking and Security: Working knowledge of HTTP/HTTPS, DNS, TCP/IP, TLS, JWT, and secure API communication.
- Performance and Scalability: Understanding of caching strategies, cache invalidation, rate limiting, throttling, database optimization, and application performance tuning.
- Messaging Systems: Working knowledge of messaging systems such as Apache Kafka, Azure Service Bus, or similar technologies, including asynchronous communication and message processing.
- Job Scheduling: Working knowledge of Quartz Scheduler or similar scheduling frameworks, including cron expressions, job and trigger configuration, execution lifecycle, misfire handling, failure recovery, and preventing duplicate or overlapping job execution where required.
- AI-Assisted Development: Practical experience with AI coding tools such as Claude, Cursor, GitHub Copilot, or similar platforms. Ability to write effective prompts, provide relevant codebase context, use AI for code generation, debugging, refactoring, and test creation, and critically review AI-generated code for correctness, security, performance, and maintainability.
Good to Have
- Experience with database synchronization, data reconciliation, and maintaining data consistency across systems.
- Familiarity with database migration tools such as Flyway or Liquibase.
- Practical experience with caching technologies such as Redis or equivalent solutions