Java Software Engineer
Must-have:JavaGitDockerLead
GENERAL FUNCTION:
Under supervision of the Team Leader or Development Department Manager, researches, designs and implements Java code following Software Development Life Cycle (SDLC) development model.
RESPONSIBILITIES:
- Implement computer software systems using Java code following software requirements specification as set up by the Development Department Manager or direct supervisor, this includes:
- a) Research the technology used for the implementation
- b) Analyze the specifications for the implementation
- c) Estimate production time for the implementation
- d) Design of the code implementation
- e) Write unit tests for the implementation
- f) Write the (Java) code, following 1rstWAP's Java coding guidelines
- g) Maintaining proper documentation of the code
- Set up and maintain system (code) performance tests and execute code refactoring for existing code
- Perform thorough code reviews of other programmers
- Testing the implementation in a local environment, also checking logs and the user interface for flaws
- Providing training for department personnel and others on IT development issues related to his development scope and/or technical skills.
- If needed, provide technical support for installations done at the client
- Use our project management tool to report progress
- Find, analyze, and fix reported bugs in our systems
- If needed, participate in internal meetings, workshops and presentations
- Demonstrate a proactive mindset by identifying technical debt and taking ownership of initiatives to modernize and improve the codebase beyond the initial requirements
- Conduct ongoing research on emerging technologies to ensure the company utilizes the most efficient and modern tools available
JOB REQUIREMENTS:
- You hold a bachelor degree in Computer Science or IT discipline
- You have at least 2 years of working experience in this sector (fresh graduates are occasionally welcome too!)
- Strong application development programming knowledge using Java (at least Java 21 with readiness for Java 25)
- Experienced with frameworks such as Spring Boot.
- Experienced working in Linux environment
- Experienced working with Git
- Strong knowledge of MariaDB
- Experience with RESTful programming and API documentation using OpenAPI (Swagger)
- Experienced in writing unit tests using JUnit or other unit tests tools.
- Strong skills in performance troubleshooting including identifying bottlenecks in Java applications using tools such as JConsole, VisualVM, etc
- Solid understanding of asynchronous communication patterns and event-driven architecture
- Familiar working with Intelij IDEA
- Preferred: experienced with Redmine
- Preferred: experienced with Docker/Podman
- Preferred: expreienced with RabbitMQ, Redis
- Preferred: proficiency in shell/bash scripting for task automation
- Ability to communicate with English effectively, both orally and in writing
Skills: Java, Linux, Spring Framework, English Language