- Conduct, lead and coordinate software development activities throughout the project, including key design decisions for the technology.
- Participate in technical design and functional specification reviews.
- Collaborate with other software developers, business analysts and software architects to plan, design, develop, test, and maintain business applications.
- Analyze system specifications and translate system requirements to task specifications for team members.
- Design, develop, troubleshoot, debug, implement, and unit test software products and solutions in accordance with established standards.
- Provide guidance to support staff on software development and maintenance.
- Manage the day-to-day planning, problem-solving and operation, so that the team meets its required level of service and production.
- Review the software code and ensure that it's applying the company's code-style and standards.
- Apply basic professional knowledge related to software engineering processes and tools used within the team.
- Monitor team performance and activities, also motivating the team.
- Ensure that all the technical documentation have been written correctly and comply with the company standards.
- Accountable for completion of individual technical objectives on schedule within cost and quality objectives.
- Provide ongoing technical guidance and leadership for the team members.
- Bachelor’s degree or higher in Computer Science, Computer Engineering, Information Systems, or equivalent experience.
- 3-5 years' experience as Senior Software Developer or prior experience in same position.
- Advanced and in-depth professional knowledge of software development, system/product design, and integration.
- Extensive technical background in software development tools and techniques.
- Excellent experience of Java (J2EE) for web applications.
- Knowledge of Spring is plus.
- Excellent knowledge of Web Services.
- Excellent knowledge of HTML, CSS, JSON/XML and other basic syntax
- Excellent knowledge of SQL compliant database platforms, web servers, and environments.
- Experience with application servers: Weblogic, JBoss.
- Excellent knowledge of multitier architecture.
- Excellent knowledge of Design Patterns.
- Excellent understanding of Enterprise Application Development.
- Excellent experience in configuration management systems e.g. Git...etc.
- Excellent knowledge of Object Oriented Concepts.
- Excellent understanding of Unit testing concepts.
- Excellent knowledge of reporting tools e.g. JasperReports, Pentaho ...etc.
- Excellent knowledge of Pipeline software concepts.
- Expertise in SDLC models, including RUP and Agile (SCRUM).
- Proactive and able to work with minimal dependence.
- Excellent communication skills.
- Attention to details and strong problem-solving skills.
- Excellent to command of English and Arabic language.
- High leadership skills (customer insight, breakthrough thinking, drive to achieve, team leadership, straight talk, decisiveness, teamwork, knowledge transfer, personal dedication, passion for the business).
- Effectively uses teamwork skills to interact and collaborate on technical issues within team and department.
- Demonstrates company core values: Accountability, Make Things Happen, Excellence, Customer Focused, Teamwork and Innovation.
- Time management skills.
- Presentation skill (ability to present to 1st and 2nd line managers, internal meetings).