
Software Engineer II
Full Job Description
Software Engineer II - Java Position Overview
We are seeking a skilled Software Engineer II with Java expertise to join our dynamic team. This role involves end-to-end development lifecycle contributions, including planning, implementation, testing, documentation, release, and ongoing product support. You will be instrumental in debugging existing systems and implementing new functionalities based on prioritized requirements. Excellent interpersonal, oral, and written communication skills, coupled with strong problem-solving abilities and a proactive learning aptitude, are essential for success in this position.
Key Responsibilities:
- Develop and implement new features and modifications to our core technology.
- Write high-quality code for system enhancements and new modules, adhering to specifications and architectural standards.
- Actively participate in and contribute to formal and informal code reviews.
- Document code changes and unit test outcomes in line with best practices.
- Provide production support, troubleshoot issues, and perform maintenance tasks, including defect resolution.
Required Technical Skills:
- Expert understanding of the Software Development Life Cycle (SDLC), with a preference for Agile methodologies.
- Proficient coding experience in Java, J2EE, and SQL, along with JavaScript.
- Strong command of frameworks and technologies such as Spring, Hibernate, SpringBoot, and Docker.
- Familiarity with testing frameworks like Junit and Mockito.
- Solid understanding of REST API design and implementation.
- Experience with relational databases like PostgreSQL or Oracle.
- Proficiency in using version control systems (e.g., GitLab) and build tools (e.g., Maven).
Preferred Qualifications:
- Familiarity with multi-tier architecture, web-based development, and Service-Oriented Architecture (SOA).
- In-depth experience in writing comprehensive unit tests.
- Knowledge of XML and generating Java data binding code from XSDs.
- Previous experience working within Agile development environments.
- Experience developing complex financial applications is a significant advantage.
Education & Experience:
- A Bachelor's degree in Computer Science or a related field, or equivalent practical experience.
- Minimum of 2 years of full-stack development experience.
Company
Bottom Line
About BottomlineBottomline is a global leader in business payments and cash management, dedicated to transforming how businesses pay and get paid. Our secure, comprehensive solutions modernize payment...