Responsibilities
- Analyze users' needs and then design, test, and develop software to meet those needs
- Recommend software upgrades for customers' existing programs and systems
- Design each piece of an application or system and plan how the pieces will work together
- Create a variety of models and diagrams (such as flowcharts) that show programmers the software code needed for an application
- Ensure that a program continues to function normally through software maintenance and testing
- Document every aspect of an application or system as a reference for future maintenance and upgrades
- Collaborate with other computer specialists to create optimum software
- Involved in a team who manages core system development
- Write and perform unit testing
- Perform code review prior to every pull request and/or merge request
- Define and communicate technical and design requirements
- Define estimates (in Story Points) based on specified requirements
- Troubleshoot and debug applications
Qualifications
- Bachelor's Degree in Computer Science or Computer Programming.
- Experience as Programmer minimum 5 years in the development of application with JAVA technologies
- In-depth knowledge of Spring Boot, including microservice architecture and REST API development
- Having knowledge of messaging system (JMS/Kafka/Rabbit/Redis)
- Knows various design pattern groups (GoF, EIP, Java EE, Microservices)
- Familiar with web services/Rest API and CI/CD or Gitlab
- Familiarity with Spring Cloud for distributed systems is plus
- Knowledge of tools and practices for monitoring and logging in distributed systems (ex: Prometheus, Grafana) to ensure system health and performance
- Details oriented
- Good Analytical skills when creating computer code
- Have experience in an Agile environment
- Fluent in English (both oral and written)