Primary responsibility is to understand the requirement, design, develop, test and document computer program. 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 receive from system analyst to distinguish solution ideas from requirements. To critically evaluate the information receives from support engineer to in order to find out the root cause of a reported problem.
- Communication skills, to solicit input from support engineer and system analyst in the process of investigating and solving system bugs, or change request.
- Observational and troubleshooting skills, to validate and investigate log data or other captured date obtained directly or obtained through support engineer.
- Problem solving skills, to be able to continuously come out with different structured ideas in the process solving problem.
- Modeling and abstraction skills, to recognize and abstract design pattern (OOP or other methodology) in the process of solving a problem.
Knowledge Needed
- An understanding of contemporary software engineering methodologies, problem solving techniques, and the ability to apply them in practice; familiarity with software engineering and software development books and resources.
- An understanding of how to model object oriented program and constantly applies it into the code.
- Knowledge of programming and computer algorithm concepts and how enterprise software products developed.
- An understanding of high-volume or critical production service environment.
- An understanding of IP networking, including the ability to analyze network behavior, performance and application issues using standard tools like tcpdump/ethereal/wireshark.
- Have a good understanding and practical knowledge in the following technologies:
- Java programming language (language syntax, commons core API & how jvm works)
- SQL (oracle, postgresql etc.)
- NoSQL DB (mongodb)
- Web & Web2 Technologies (HTML5, AngularJS, Javascript, REST)
- Highly desirable to have knowledge in Spring framework.
- Use of code management tools (Git, SVN, Maven, Gradle)
- Have knowledge on J2EE (Servlet, JSP, EJB, JMS, WebService, JNDI, JMX)
- Aspect Oriented Programming
- Unit Testing & Continues Integration Tools
- Agile methodologies: Scrums, Continuous Integration & Test Driven Development
- Familiar with and have working knowledge with Linux/Unix, Tomcat Web Server and JBoss operating system and applications.
Responsibilities
- Reads manuals, periodicals, and technical reports to learn ways to develop programs that meet user requirements from the functional, usability and supportability aspect.
- Formulates plan outlining steps required to develop program, using structured analysis and design.
- Converts requirement and design specifications, using flowcharts and diagrams, into sequence of detailed instructions and logical steps for coding into language process able by computer, applying knowledge of computer programming techniques and computer languages.
- Replaces, deletes, or modifies codes to correct errors.
- Analyzes, reviews, and alters program to increase operating efficiency or adapt to new requirements.
- Writes documentation to describe program development, logic, coding, and corrections.
- Writes manual for users to describe installation and operating procedures.
- Assists users to solve operating problems.
- Recreates steps taken by user to locate source of problem and rewrites program to correct errors.
- Provide technical assistance to support personnel.
- Monitor performance of program after implementation.
Measures of Performance
- Evaluation from stakeholder on overall product quality and effectiveness after the product has been developed or deployed.
- Feedback from peers, supervisor, system analyst and support team on the responsiveness and effectiveness of software engineer in handling a given task.
- Satisfying or exceeding software development schedules, resource constraints, and quality goals.
- Pro-activeness in anticipating future problem or change request from end user by building the resilient feature into the software in order to minimize bugs from unforeseen causes and also reduce structural changes to the program whenever minor change request is raised.
Requirements
- Candidate must possess at least Diploma/Advanced/Higher/Graduate Diploma in Computer Science/Information Technology or equivalent.
- Required language(s): English
- At least 5-years working experience in the related industry/field.
- Required Skill(s): SQL, NOSQL, JAVA, JavaScript, HTML5, Spring Frameworks etc.
Interested and eligible candidates are requested to send their CV together with personal details by e-mail address [email protected]