The purpose of the senior software developer is to design, build, test and document multiple software components integrating within the Fundamo product. The senior software developer will work as an integral part of the cross functional development team, doing everything necessary to deliver value in every project. The senior software developer is responsible for ensuring all work is of a high quality and meets the team’s definition of done. This includes, but is not limited to: unit tests, automated regression tests, code reviews, installation and data migration scripts, component documentation, and defect fixing. The senior software developer is also expected to reflect on current processes, offer suggestions to improve, and commit to taking action on improvements agreed by all.
This is a collaborative, team-based role that requires a close working relationship with a variety of team members based in South Africa and Pakistan such as Project Managers, Solution Architects, Software Architects, Systems Analysts, Development Team Leads, Software Testers, and other Software Developers contributing directly to ensuring that the project requirements developed, validated and executed. The senior software developer works daily as a member of a team and is held accountable for the success of project delivery. The team is responsible for the full lifecycle of the project including assisting with installation, data migrations, new feature development, performance enhancements, and maintenance and support.
This role will be based onsite at a client location in Islamabad.The successful incumbent will be required to travel to Cape Town, South Africa for three (3) months of training before commencing work at the client site in Pakistan.
Outputs to deliver this accountability:
- Work as an integral part of a cross functional development team.
- Perform detailed design of the project solution and architecture components, and validate the design with stakeholders.
- Estimate, build and test software components to meet project requirements.
- Estimate and build integration components and user interfaces.
- Follow good security coding practices to ensure the application is free of most common coding vulnerabilities.
- Build configuration and interface elements for the project.
- Fix any defects and performance problems discovered in testing.
- Document the application code to facilitate maintenance and customer usage.
- Participate in code reviews, and other techniques to improve code quality.
- Build automated tests and develop common test data.
- Assist with ensuring automated builds and continuous integration are working at all time.
- Build migration approaches, scripts and functions.
- Contribute to technical and user documentation.
- Raise any issues that may affect other areas of the solution with the team.
- Actively participate in all meetings within the team, e.g. planning, design, estimations, stand-ups, reviews.
- Participate in research and contribute to innovation as required.
- Investigate and resolve support issues.
- Contribute to the continual improvement of the team and development processes.
- Mentor team members to grow both Fundamo development competency and domain knowledge.
- Assist with recruiting new developers where and when there is a need.
- Participate in holding learning sessions to share knowledge with team mates.
- Contribute to the Fundamo knowledge management repositories in the areas of:
- Development standards and practices
- Development techniques and tools
- Fundamo domain knowledge
COMPETENCIES REQUIRED TO PERFORM OPTIMALLY IN THE ROLE:
- Willingness to work outside primary capacity.
- Team player who is willing to do whatever is necessary to help the team achieve its goal.
- Respect and appreciation for all disciplines required to build maintainable software.
- High level of commitment to delivering software projects.
- Strong problem-solving ability.
- Excellent communication skills, able to discuss technical matters with less technical people.
- Strong collaboration mind-set, willing to pair program, mentor others, and communicate with other teams/departments
KEY ISSUES FOR THE ROLE OVER THE NEXT 12 – 24 MONTHS:
- Ensuring high quality work delivered to ensure less issues are encountered by customers.
- Focus on continuous improvement, and learning from mistakes.
- Implement disciplined development processes which are adhered to by the entire team.
- Close collaboration with team members and customer to deliver what the customer actually need.
- Improve the supportability of the code through logging, and exception handling.
- Create a professional look and feel, by ensuring all documentation, screens and error messages seen by customer are reviewed and free of errors.