Senior Software Developer

Position:
Senior Software Developer

Job Description:
Job Description
ESSENTIAL DUTIES & RESPONSIBILITIES
Implement, debug, configure, build, deploy and test applications.

  • Implement: implement new requirements, handle change requests and fix bugs for different releases. Should deliver a high quality and functioning code.
  • Debug: ability to track and debug the code to easily figure out issues' root causes.
  • Configure: put configuration layering, change application configuration on different environments, maintain and manage different configuration files.
  • Build: knowledge of how to write build scripts (e.g. using ant or maven) and how to configure nightly building tools (e.g. Jenkins)
  • Deploy: deployment automation, how to easily deploy applications on different environments and operating systems.
  • Test: writing unit tests, knowledge of unit tests frameworks (Junit, TestNG) and working with test driven methodology
Technical design, decision making, analysis and research.
  • Design: participate, propose and find the most suitable solutions using design, enterprise or architectural patterns. Software engineer should have knowledge of different development methodologies and practices (e.g. TDD, extreme programming, pair programming, n-tier architecture).
  • Decision making: help the team lead and managers in technical decision making (e.g. most preferred UI technologies that best match a specific problem statement)
  • Analysis and research: stay updated with new technologies and solutions for different problems, quick research is required.
  • Ability to quickly analyze and provide solutions to business and technical problems.
Task breaking down, setting tasks priorities, using JIRA, task estimation and follow releases policies and rules
  • Setting priorities: discuss and understand priorities with leader.
  • JIRA: regular access and updates on JIRA, guiding other team members about how to use JIRA.
  • Task break down: distinguish and understand the difference between epics, stories, tasks. Breaking tasks to smaller tasks as possible as could be.
  • Estimation: provide roughly and almost accurate estimates for the assigned tasks, stick to due dates and meeting the deadlines, estimating according to the smallest tasks in a given sprint.
Other teams support and collaboration, training,
  • Collaborate not only within the team but with other teams.
  • Support and help could be required including shifting between teams in different releases.
  • Training and guidance: knowledge transfer, training sessions and guiding other colleagues.

Experience / Education
  • 3+ years of experience in Java software development.
  • Bachelor's degree in Computer Science or equivalent education in the form of work experience at similar technology positions
  • Technical skills required:
    • OOP concepts and design patterns
    • JSE/J2SE
    • JEE/J2EE and Frameworks (basics of JSP and Servlet, any of EJB, Spring, JSF)
    • Application Servers (Apache Tomcat, and one of the enterprise application servers e.g. weblogic, JBoss, websphere, Glassfish, OC4J)
    • JavaScript (Basics, AJAX)
    • Database (Native SQL, DB design and ERD, Oracle, MySQL)
    • ORM (JPA, Hibernate)
    • Web Services (REST and SOAP webservices basics)
    • Clean Code (Code quality standards)
    • Unit Test and frameworks (Junit)
    • XML (XSD, DTD, XML)
    • Build Tools (Maven)
    • Source/Revision Control (GIT or SVN)
  • Preferred to have:
    • GWT
    • Big Data (Hadoop, Hive, Sqoop, any NoSQL database like Hbase or MongoDB)
    • Search Frameworks (Apache Solr, ElasticSearch)
    • General (Security, Aspect Oriented)
    • Continuous Integration (Jenkins)
    • JavaScript (JQuery, AngularJS and NodeJS)
    • Issue Tracking (JIRA)


Location:
Banha

Time Type:
Full time


Back to top