Responsibilities

  • Work in a team of software developers to carry out ongoing customization of the company’s integrated application system as well development of other web-based applications to support business processes and functions
  • Deliver excellent code quality in a collaborative team environment, typically working in small development project groups
  • Communicate as required with internal and external stakeholders within the company, to capture requirements and troubleshoot issues relating to development and support
  • Liaise with other members of the software development team to collaborate on, and continuously improve the technical capabilities, processes and knowledge of the development team  

Minimum qualifications

  • B.Sc. Degree in Computer Science, Computer Engineering or equivalent
  • Experience building and integrating mobile applications with enterprise application systems
  • Experience with test-driven development

Technical Competencies

  • Proficient in Java, with a good knowledge of its ecosystems
  • Solid understanding of object-oriented programming
  • Familiar with various design and architectural patterns
  • Expert level knowledge of Java, HTML, CSS and JavaScript.
  • Ability to learn new tools and technologies
  • Experience in MySQL or PostgreSQL and excellent knowledge of SQL, and optimization
  • Skill for writing reusable Java libraries
  • Knowledge of concurrency patterns in Java
  • Possess a firm grasp of algorithms and data structures
  • Familiarity with concepts of MVC, JDBC, and RESTful  API development and web security
  • Experience with popular web application frameworks, such as Play, Spring and spark
  • Knack for writing clean, readable Java code
  • Experience with both external and embedded databases
  • Understanding fundamental design principles behind a scalable application
  • Basic understanding of the class loading mechanism in Java
  • Creating database schemas that represent and support business processes
  • Basic understanding of JVM, its limitations, weaknesses, and workarounds
  • Implementing automated testing platforms and unit tests
  • Proficient understanding of code versioning tools, such as Git
  • Familiarity with build tools such as Ant, Maven, and Gradle
  • Familiarity with continuous integration

Behavioral Competencies

  • Flexible, motivated, able to adapt in a dynamic environment, able to communicate effectively with certain other development team members; pro-active in finding new ways for improvement