Description

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

Education

Bachelor's or Master's degrees