The Senior Java Developer will be part of the analysis, design, development, testing and implementation of different solutions that the company is developing. He/she should have excellent listening skills, interpersonal skills, ability to solve complex problems, be able to visualize the solution, has knowledge of the high level design and at the same time effective in creating detailed design that are maintainable, extensible and flexible.
Key Tasks and Responsibilities
- Participate in the project requirement process to understand business, technical objectives, and product requirements
- Create detailed design based on the approved high-level architecture of the application.
- Must understand the communication and interaction between software components and create detailed designs that are loosely coupled, easy to maintain and extend, and easy to change.
- Coordinate with Product Owner to make sure that functional and technical requirements are met.
- Conduct proof of concept for system designs and transfer necessary technical skills to development members.
- Think past the products and create solutions to meet the business/IT needs
- Communicate solutions architecture and designs to the members of the team effectively
- Ensure that proposals are technically sound, deliverable, competitive and representative of market leadership in the application of technology to addressing business issues
Qualifications and Experience
- 5+ years’ experience in software development
- Preferably with experience in ElasticSearch
- 1+ year of experience as a team leader creating designs and managing implementation
- Good in algorithms and data structures.
- Expert in at least one software stack (UI, middleware, or backend) is preferable.
- Knowledgeable in different software design patterns like Gang of Four and SOLID principles.
- Has experience in different software methodologies like Agile / Scrum.
- Familiarity with test driven development, continuous integration, performance testing and optimization, build and release, version control/source repository.
- Has experience in different application servers like Tomcat which includes deployment, configuration, and administration
- Has experience in document-based database systems like MongoDB.
- Good organizational and communicational skills
- Strong practical Unix or Linux systems administration skills is a plus
- Strong application software development for Linux and Windows operating systems