Software Developer
job description
Job duties:
- Research, design, and develop computer and network software or specialised utility programs.
- Analyse user needs and develop software solutions, applying principles and techniques of computer science, engineering, and mathematical analysis.
- Update software, enhances existing software capabilities, and develops and direct software testing and validation procedures.
- Work with computer hardware engineers to integrate hardware and software systems and develop specifications and performance requirements.
Job Requirements:
- Must have software development experience.
- Strong knowledge on Java 8, Core Java, Spring, Hibernate and restful web services including its data interchange format/definition such as XML,
- Strong experience in distributed caching technologies like Apache Ignite or similar.
- Familiar with different persistent storage technologies such as RDMS (Sybase, SQL Server or Oracle) and NoSQL.
- Solid experience working with source code management tools – Git or Bitbucket.
- Good understanding of clean coding principles.
- Good understanding of code quality measurements using tools like Sonar and able to implement design and implement unit, integration, and functional tests.
- Must demonstrate strong familiarity of design patterns.
- Good written and verbal communication skills.
- A team-player who is comfortable working in a team that deals with ambiguity and problem solving
Required skills:
- Experience with the following technologies:
- Java (Core, JDBC, Collections, I/O), Spring Boot;
- Exposure to SQL/PL-SQL on Oracle DB
- Tomcat or Weblogic application server
- REST web services
- Unix commands and Korn shell scripting;
- Familiarity with standard data structures and algorithms;
- Logical thinking, strong analytical and problem solving skills;
innovative and solutions oriented
- Effective time management skills to manage multiple priorities
- Excellent verbal and written communication skills