This is a remote position.
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.
Requirements
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:
o Sprint framework (boot, data and security)
o OOP concepts and design patterns
o Continuous Integration /Continuous delivery
o JSE/J2SE
o Application Servers (Apache Tomcat, and one of the enterprise application servers
e.g. weblogic, JBoss, websphere, Glassfish, OC4J)
o JavaScript (Basics, AJAX)
o Database (Oracle, MySQL, Native SQL, DB design and ERD)
o ORM (JPA, Hibernate)
o Web Services (REST and SOAP webservices basics)
o Clean Code (Code quality standards)
o Unit Test and frameworks (Junit)
o XML (XSD, DTD, XML)
o Build Tools (Maven)
o Source/Revision Control (GIT or SVN)
o Search Frameworks (Apache Solr, ElasticSearch)
Preferred to have:
o Big Data (Hadoop, Hive, Sqoop, any NoSQL database like Hbase or MongoDB)
o General (Security, Aspect Oriented)
o Linux
o AWS
o Issue Tracking (JIRA)