Senior Software Developer
Position: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.
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
- 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)
- 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)
- Continuous Integration (Jenkins)
- Issue Tracking (JIRA)
Time Type:Full time
Meet Some of Arrow Electronics's Employees
Will leads the technological enhancements to Arrow’s Sam Car Project. He oversees and contributes to development of its microcontrollers, firmware, and MEMS sensors.
Back to top