Participates in software development lifecycle by analyzing and implementing business (functional & non-functional) as well as internal requirements. Participates in, performs, or follows requirement decomposition, individual task effort estimation, solution design and coding/debugging related to the corresponding part of software development lifecycle. Follows project and task schedule and project quality assurance practices related to his area of work. Independently solves problems and researches new solutions (involving the architects when needed). Works and collaborates effectively within a team and with other teams. Uses and improves on daily basis software development practices and methodologies.
- Implement the requirements according to software development process
- Understand business area and customer’s needs
- Interact with business analysts, system architects, and quality assurance to ensure the finalized requirements are clear, concise, comprehensive, unambiguous, and well-documented.
- Design and develop particular features or non-functional requirements (coding, configuring existing functionality, refactoring, etc.) based on business requirements and architecture adhering to the software quality requirements (robustness, performance, scalability, testability, etc.)
- Develop unit and integration tests
- Manually test developed solutions when it is necessary
- Document produced code
- Develop fixes for defects found by internal or customer QA
- Conduct refactoring and continuous code improvement
- Responsible for the delivery of high-quality solutions on time
- Escalate the risks & issues that a Senior Developer cannot resolve to Team Lead or Development Manager
Contribute to teamwork
- Participate in team framework activities (Scrum activities: sprint planning, daily scrums, retrospectives, etc.)
- Follow established development processes in the team
- Provide suggestions on how to improve the processes to the Team Lead and/or Development Manager
- Provide updates for his/her current progress, plans of his own
- Log the time spent on individual tasks
- Execute code review for teammates
- Share knowledge with the peers, may be assigned to prepare training materials and provide coaching for new team members
Contribute to project and company-wide activities
- May be assigned to project-wide work in group(s) targeted to improve team performance, software quality, and overall project productivity.
Provide overall leadership for the developers’ team
- Responsible for the developers’ team deliverables to be provided on time and with proper quality
- Establish and continuously improve software development lifecycle process on the team level (individual and team velocity, quality KPIs, etc.)
- Identify goals and create development plans for the team
- Provide reporting for teamwork
- Assign tasks to developers and check the results
- Execute/assign code reviews
- Motivate team members
- Resolve issues, dependencies, and conflicts, escalate the risks and issues that the Team Lead cannot resolve to Development Manager and/or Delivery Manager
Manage daily activities of the developers’ team
- Use Agile/Scrum framework to coordinate team work on daily basis, resolve daily issues
- Ensure that team has sufficient backlog of requirements ready for implementation according to the plan; escalate the lack of requirements (or requirement insufficient quality) to Development Manager, BA Lead and/or Delivery Manager
- Ensure the team has sufficient capacity according to the plan, escalate resource risks/issues to Development Manager
- Establish communications with other teams and groups
Contribute to project-level and delivery department-level activities
- Participate in continuous improvement of the project and Delivery department level SDLC and foster a culture of continuous improvement inside the assigned developers’ team.
- 5-6 years’ experience of commercial software development
- Bachelor Degree or equivalent experience
- Theoretical and practical knowledge in programming technologies and software development life cycle (SDLC).
- Strong understanding of object-oriented software development methodology.
- Understanding and experience in distributed applications development.
- Knowledge of development, debugging, logging tools.
- Understanding application security.
- Strong understanding of quality requirements and methods to meet them.
- Knowing methods of performance analysis and optimization.
- Understanding legacy data conversion principles
- High knowledge and experience with the following:
- Java Enterprise Edition
- Experience with relational databases (Oracle or SQL Server) and SQL
- Spring framework (IoC, Transactions, Webservices)
- JSF, JSP basics
- Hibernate (JPA version)
- SQL+HQL (Hibernate query language)
- Liquibase scripts
- XML, SOAP
- Code management tool: Mercurial (or SVN)
- IDEA / Eclipse
- Tomcat / JBoss / Websphere
- Strong written and verbal communications skills
- Travel approximately 0% -25%
- Analytical thinking, proactive/initiative attitude, self-motivation demonstrated through past experience
- Problem-solving skills and customer focus
- Teamwork skills
Use the “Apply Now” button below, or email your resume and/or CV to email@example.com.