About the Role
- The Principal Software Engineer will be working on a set of micro-services which would have high transaction per second and will be responsible for building and own large components of the system and will be responsible for designing and owning large system components, making architectural decisions, and driving technical excellence across the team.
- We are looking for highly self-motivated individuals who thrive in fast-paced, agile environments and can take full ownership of complex technical challenges while technically leading the team.
What You'll Do
- Working directly with Product Managers to understand requirements and design solutions based on them.
- End-to-end ownership of designing solutions for feature requirements, planning, and monitoring their execution and release.
- Participate in software design meetings and write technical design documents.
- Development of the product/modules independently.
- Responsible for writing unit tests, integration tests, refactoring & documentation.
- Understand & maintain existing codebase by regular re-factoring and applying requested fixes and features.
- Experience of working within a fast-paced Agile development process.
- Maintain application stability by monitoring key metrics and improving the code base accordingly.
- Troubleshoot complex issues discovered in-house as well as in customer environments.
- Should be flexible to learn new technology / require frameworks.
- Conduct feasibility analysis, produce functional and design specifications of proposed new features.
We'd Love for You to Have
- Six plus years of hands-on experience in software development.
- Should have excellent knowledge of OOPS concepts and experience in Core Java and J2EE (Java, Spring, Spring Boot, Hibernate/ My Batis).
- Mandatory experience in Java - Spring or Spring Boot and REST Web Service development with multi-threaded architecture within the application.
- Mandatory experience in MySQL, and nice to have knowledge of NoSQL databases like MongoDB, etc.
- Nice to have experience working on high-performance and scale distributed systems.
- Nice to have knowledge and hands-on experience of any scripting languages like Shell Script/PHP/Python.
- Should have good knowledge of data structures.
- Should have experience in JUNIT.
- Good knowledge of the Unix OS is preferred.
- Working experience with tools/technologies like Kubernetes, Jenkins, Maven, GIT, Docker.
- Familiarity with Test Driven Development, refactoring, code reviews, continuous integration/deliver, and Agile development practices.
- Should have strong written and verbal communication skills.
Qualification:
- B.E./ B.Tech. in Computers/Information Technology or equivalent.