Job duties: Main tasks and responsibilities: - Lead the development team, assign them tasks and make sure they deliver on time and be in direct cooperation with the Project Manager - Understand client requirements and divide them into tasks to his team - Develop, test and debug software applications using JAVA - Document all changes and modifications in a clear manner - Search and find solutions to problems faced - Manage the whole development cycle from Analysis, to Design, Implementation, and Integration Testing to Quality Assurance. - Provide a flexible software design that allows applying change requests in short time. - Able to build solution architecture/design. Technical skills: - Computer science or Computer engineer or software engineer degree from a reputable university with proven records - Minimum 5 years’ experience in a similar position - Delivery oriented person - Multi-tasking person - Good team leading skills - Strong code and design reviewing skills - Strong understanding of OOP and design patterns - Strong development skills in JAVA, J2EE, Web Services (SOAP, REST…), jUnit, Tomcat, Ant or Maven, Source control (CVS, SVN or Git…) - Strong verbal and written English communication skills - Strong testing skills - Good SQL skills - Familiar with multithreaded environments and Web servers