Senior Software Developer
Senior Software Developer
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.
- 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:
- Strong knowledge in AngularJS V2 or plus and NodeJS
- OOP concepts and design patterns
- Continuous Integration
- Application Servers (Apache Tomcat, and one of the enterprise application servers e.g. weblogic, JBoss, websphere, Glassfish, OC4J)
- 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:
- Big Data (Hadoop, Hive, Sqoop, any NoSQL database like Hbase or MongoDB)
- Search Frameworks (Apache Solr, ElasticSearch)
- General (Security, Aspect Oriented)
- Issue Tracking (JIRA)
Cairo, Egypt (Al Emdad & Al Tamween)
See Inside the Office of Arrow Electronics
Arrow is the ultimate technological enabler, working directly with partners, suppliers, and manufacturers to understand what’s possible and help them create it. They seek to bridge the gap between the possible and the practical. Arrow encourages its employees to live in the world that doesn’t quite exist yet—the world of Five Years Out.
Back to top