Overview: The Senior Software Engineer will be accountable for designing, developing, and maintaining high-quality Java-based applications while providing technical leadership to a team of developers. The Senior Software Engineer should have a deep understanding of Java programming, software development best practices, and the ability to guide and mentor other team members.
Responsibilities:
- Design, develop, and maintain complex, high-performance Java applications using industry best practices and standards.
- Collaborate with product managers, business analysts, and other stakeholders to understand requirements and translate them into technical solutions.
- Provide technical leadership and mentorship to a team of software developers, ensuring efficient and high-quality code delivery.
- Review and optimize code to improve application performance, maintainability, and scalability.
- Troubleshoot and resolve software defects and issues, providing root cause analysis and implementing long-term solutions.
- Actively participate in code reviews, providing constructive feedback and ensuring adherence to coding standards and best practices.
- Stay current with the latest Java technologies, frameworks, and industry trends to ensure the team's continuous growth and improvement.
- Collaborate with project managers to develop and track project timelines, deliverables, and resource allocation.
- Assist in the recruitment and onboarding process for new team members.
- Foster a culture of innovation, collaboration, and continuous improvement within the development team.
Qualifications:
- Bachelor's degree in Computer Science, Computer Engineering, or a related field.
- Extensive professional Java development experience with a proven track record of delivering high-quality software.
- Proficient in Java frameworks such as Spring, Spring Boot, and Hibernate.
- Proficient in Golang programming language is a plus.
- Strong understanding of object-oriented programming, design patterns, and software development best practices.
- Familiarity with relational and non-relational databases such as MySQL, PostgreSQL, MongoDB, or similar.
- Experience with code versioning tools like Git and related workflows.
- Excellent written and verbal English communication skills, with the ability to effectively communicate complex technical concepts to non-technical stakeholders.
- Demonstrated ability to lead and mentor a team of software developers.
- Strong problem-solving skills, attention to detail, and the ability to work independently or as part of a team.
- Experience in developing and deploying applications on Azure Cloud Services (a plus).
Good to have: Knowledge of frontend technologies such as HTML, CSS, and JavaScript, and experience with popular frontend frameworks like Angular, React, or Vue.js is a plus.