Job Description
Software Engineer
Location
Pune, India (Hybrid)
Experience
3-6 years of relevant hands-on software engineering experience
Role Overview
We are looking for a Software Engineer with a strong foundation in Java-based backend development, cloud-ready applications, and modern engineering practices. In this role, you will contribute to the design, development, testing, and maintenance of high-quality software systems while working closely with senior engineers and cross-functional teams.
This position is ideal for engineers who enjoy building reliable systems, writing clean and testable code, and continuously improving their technical skills.
Key Responsibilities
Software Development
- Develop and maintain backend services using Java 17 and the Spring Framework.
- Build and manage projects using Maven, following established coding and architectural standards.
- Implement features and bug fixes based on well-defined requirements and specifications.
- Work with structured and semantic data formats using XML, XSD, RDF, SHACL, and OWL.
- Use Apache Jena to process and validate RDF data as part of application workflows.
- Integrate with internal and external systems, including middleware such as Apollo CSB.
- Implement data parsing and transformation logic using Jackson and JSoup.
Cloud and Containerization
- Contribute to cloud-based solutions using AWS, primarily Amazon S3.
- Containerize applications using Docker for local development and testing.
- Use Localstack to simulate AWS services during development.
- Participate in integration testing using Testcontainers.
Testing and Quality Engineering
- Write unit and integration tests using JUnit 5, AssertJ, and Mockito.
- Develop and maintain BDD tests using Cucumber and Gherkin.
- Follow coding standards enforced through Checkstyle.
- Support architectural consistency checks using ArchUnit.
- Ensure code quality, readability, and maintainability.
Logging and Troubleshooting
- Implement application logging using Logback and/or Log4J.
- Assist in diagnosing and resolving development, test, and production issues.
Collaboration and Learning
- Collaborate with senior engineers, architects, and product teams to deliver features.
- Participate in code reviews and design discussions.
- Actively learn and apply best practices in software engineering.
- Contribute to team knowledge sharing and continuous improvement initiatives.
Required Technical Skills
Core Technologies
- Java 17
- Spring Framework
- Maven
- Git
Semantic and Data Technologies
- XML, XSD
- RDF, SHACL, OWL
- Apache Jena
- JSoup
Cloud and DevOps
- AWS (Amazon S3)
- Docker
- Localstack
- Testcontainers
Libraries and Utilities
- Jackson
- Lombok
- Immutables
- Guava
Testing and Quality
- JUnit 5
- AssertJ
- Mockito
- Cucumber / Gherkin
- Checkstyle
- ArchUnit
Logging
Nice to Have
- Experience working on enterprise or platform-based applications
- Basic understanding of microservices or distributed systems
- Familiarity with automated testing and CI/CD pipelines
- Interest in AI-assisted or spec-driven development approaches
What We Offer
- Opportunity to work on meaningful, real-world systems
- Supportive environment focused on learning and growth
- Exposure to modern Java, cloud, and semantic technologies
- Competitive compensation and benefits
Our Interview Practices