As a Senior Software Engineer, you will be responsible for designing, developing, and maintaining Java-based applications. You will work on a variety of exciting projects, collaborating with cross-functional teams to deliver high-quality software solutions. The ideal candidate has strong programming skills, a deep understanding of Java, and experience with object-oriented design principles.
Key Responsibilities
- Develop & Maintain Applications: Design, develop, test, and maintain Java-based applications using frameworks such as Spring, Hibernate, or similar technologies.
- System Design: Contribute to the design of system architecture, including defining the system components, their interactions, and interfaces.
- Code Quality: Write clean, maintainable, and efficient code. Follow best practices for coding standards, code reviews, and unit testing.
- Collaborate with Teams: Work closely with cross-functional teams including front-end developers, product managers, and QA engineers to deliver high-quality products.
- Debugging & Troubleshooting: Troubleshoot, debug, and resolve issues related to application performance and functionality.
- Continuous Improvement: Continuously learn and improve your skills to stay up-to-date with industry trends, new technologies, and frameworks.
- Documentation: Create and maintain clear and concise technical documentation for development processes, coding standards, and software architecture.
- Optimization: Analyze application performance and optimize systems for maximum speed and scalability.
- Agile Methodology: Participate in Agile ceremonies like sprint planning, stand-ups, retrospectives, and deliver features according to sprint goals.
- Responsibility to adhere to set internal controls.
Skills & Qualifications
- Experience: 4-6 years of hands-on experience in Java development.
- Core Java: Strong expertise in Java SE (version 8 or higher), including streams, collections, concurrency and JVM internals.
- Frameworks: Solid experience with Spring (Spring Boot, Spring Web, Security, Cloud, Data etc.).
- Databases: Proficiency in relational databases like PostgreSQL (or MySql, MsSql, Oracle). Experience with NoSQL databases (MongoDB, Cassandra) is a plus.
- REST APIs: Experience building and consuming RESTful APIs. Familiarity with API design and versioning, GQL is a plus.
- Version Control: Knowledge of Git for version control and collaboration with other developers.
- Testing: Experience with unit testing frameworks like JUnit, TestNG, or similar, and test-driven development (TDD) practices.
- Build Tools: Familiarity with build tools like Maven or Gradle.
- Cloud: Experience with cloud platforms like AWS, or Azure is required.
- DevOps: Familiarity with CI/CD pipelines, Docker, Kubernetes, and containerization tools.
- Problem Solving: Strong analytical and troubleshooting skills to solve complex problems.
- Soft Skills: Strong communication skills and the ability to work in a team environment. Ability to mentor junior developers and collaborate effectively.
Desired Qualifications
- Bachelor's or Master’s degree in Computer Science, Information Technology, or a related field.
- Experience with front-end technologies (Angular or React) is a plus.
- Familiarity with Agile development methodologies (Scrum, Kanban).
- Experience in working with microservices architecture and containerized applications.
- Knowledge of security best practices and data privacy standards