Skills And Tools:
- 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, and 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. engineers should have knowledge of different development methodologies and practices (e.g. TDD, extreme programming, pair programming, n-tier architecture).
- Decision making: help the team leaders 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 the 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 meet the deadlines, estimating according to the smallest tasks in a given sprint.
- Other teams support and collaborate 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.
- 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:
- Sprint framework (boot, data, and security)
- OOP concepts and design patterns
- Continuous Integration /Continuous delivery
- Application Servers (Apache Tomcat, and one of the enterprise application servers e.g. WebLogic, JBoss, WebSphere, Glassfish, OC4J)
- Database (Oracle, MySQL, Native SQL, DB design and ERD)
- ORM (JPA, Hibernate)
- Web Services (REST and SOAP web services basics)
- Clean Code (Code quality standards)
- Unit Test and frameworks (Junit)
- XML (XSD, DTD, XML)
- Build Tools (Maven)
- Source/Revision Control (GIT or SVN)
- Search Frameworks (Apache Solr, ElasticSearch)
Preferred to have:
- Big Data (Hadoop, Hive, Sqoop, any NoSQL database like Hbase or MongoDB)
- General (Security, Aspect-Oriented)
- Issue Tracking (JIRA)
- Software Java Developer (JPA)Fawry Banking & Payment Technology Services - Smart Village, Giza9 days ago