Primary responsibility is to understand the requirement, design, develop, test and documentation.
Evaluates user requirement prepared by the system analyst for new or modified program to determine feasibility, compatibility with current system architecture and computer capabilities.
Consults with system analyst to identify current operating procedures and clarify program objectives in carrying his/her task to deliver a software artifact.
Skills Needed
- Analytical skills, to critically evaluate the information received from the system analyst to distinguish solution ideas from requirements and to find the root cause of reported problems.
- Communication skills, to solicit input from support engineer and system analyst in the process of investigating and solving system bugs or change requests.
- Observational and troubleshooting skills, to validate and investigate log data or other captured data obtained directly or through a support engineer.
- Problem‑solving skills, to continuously generate structured ideas while solving problems.
- Modeling and abstraction skills, to recognize and abstract design patterns (OOP or other methodology) in the process of solving a problem.
Knowledge Needed
- Understanding of contemporary software engineering methodologies, problem‑solving techniques, and the ability to apply them in practice; familiarity with software engineering and development books and resources.
- Understanding of how to model an object‑oriented program and apply it in code.
- Knowledge of programming and computer‑algorithm concepts and how enterprise software products are developed.
- Understanding of high‑volume or critical production service environments.
- Proficient in Java programming language (syntax, core APIs, JVM operation).
- Desirable knowledge of the Spring framework.
- Experience with code‑management tools (Git, SVN, Maven, Gradle).
- Knowledge of J2EE (Servlet, JSP, EJB, JMS, WebService, JNDI, JMX).
- Object‑Oriented Programming.
- Unit testing and continuous integration tools.
- Familiar with and practical knowledge of Linux/Unix, Tomcat Web Server, Spring Framework, Spring Boot, and related applications.
Responsibilities
- Read manuals, periodicals, and technical reports to learn ways to develop programs that meet user requirements from functional, usability, and supportability perspectives.
- Formulate a plan outlining steps required to develop the program, using structured analysis and design.
- Convert requirement and design specifications, using flowcharts and diagrams, into a sequence of detailed instructions and logical steps for coding in a computer‑processable language, applying knowledge of programming techniques and languages.
- Replace, delete, or modify code to correct errors.
- Analyze, review, and alter programs to increase operating efficiency or adapt to new requirements.
- Write documentation describing program development, logic, coding, and corrections.
- Write a manual for users describing installation and operating procedures.
- Assist users in solving operating problems.
- Recreate steps taken by a user to locate the source of a problem and rewrite the program to correct errors.
- Provide technical assistance to support personnel.
- Monitor program performance after implementation.
Measures of Performance
- Evaluation from stakeholders on overall product quality and effectiveness after deployment.
- Feedback from peers, supervisor, system analyst, and support team on responsiveness and effectiveness in handling tasks.
- Satisfying or exceeding software development schedules, resource constraints, and quality goals.
- Pro‑activeness in anticipating future problems or change requests by building resilient features to minimize bugs and structural changes.
Requirements
- Minimum qualification: Diploma/Advanced/Higher/Graduate Diploma in Computer Science/Information Technology or equivalent.
- Required language(s): English.
- Fresh graduates are encouraged to apply.
- Preferably entry‑level specialized in IT/Computer – Software or equivalent.