06/04/2021
· 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 breakdown: 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.