Job Title: Software Developer
Reports To: Systems and Cyber Security Team Lead
Department: ICT Division: Finance, Legal And ICT
Location: Absa Towers

JOB PURPOSE STATEMENT

The job holder is responsible for designing, developing and maintaining robust software systems, including:

  • Software system development
  • Improving system reliability and supporting the ICT department in achieving its objectives.
  • Code reviews.
  • Resolving technical issues to support the team’s overall productivity and success.

KEY RESPONSIBILITIES

  • Software Systems Development: Develop scalable and efficient software systems that meet business needs and handle growth.
  • Software Systems Maintenance: Maintain existing systems and implement security measures to protect systems from vulnerabilities and threats.
  • User Support: Facilitate user satisfaction through collaboration with relevant stakeholders and adhering to best practices and
  • Innovation and Continuous improvement: Innovate new ideas to improve developed processes.
  • Reporting and Documentation: Create systems and projects documentation processes.
  • Any other responsibilities assigned.

KEY ACCOUNTABILITIES

  • Effective use of project management tools
  • Scalable software systems.
  • Efficient and high-quality codes

MAIN ACTIVITIES

Software Systems Development (25%)

  • Design and build software solutions that can handle growing volume of data and user interactions without compromising performance.
  • Gather requirements for designing system architecture, and coding with scalability in mind.
  • Carry out effective Business reviews with users
  • Document comprehensive Business Review Documentation
  • mplement security measures by incorporating best practices such as encryption, access controls, and secure coding practices.
  • Carry out unit testing for solutions developed.
  • Carry out user testing.
  • Ensure effective system integration.

Software Systems Maintenance (25%)

  • Continuously monitor and review existing software systems to identify and address bugs or performance issues.
  • Implement fixes and improvements to resolve problems and prevent recurring issues.
  • Perform routine maintenance, update software components, and testing for potential issues.
  • Implement security measures through the software development process to protect systems from potential threats and vulnerabilities.
  • Regularly review and update security protocols to address new and emerging threats.
  • Analyze and improve database performance by optimizing queries, indexing strategies, and schema designs.
  • Ensure that database interactions are efficient and do not create performance bottlenecks for applications.
  • Monitor database performance and make adjustments as needed to enhance overall application efficiency and responsiveness.
  • Regularly evaluate and adjust the system to accommodate increasing demands and enhance overall efficiency.
  • Fixing bugs and optimizing performance
  • Enhance database performance and queries

Code Reviews (10%)

  • Review code to ensure it meets quality standards and follows coding conventions.
  • Evaluate code for efficiency, readability, and maintainability.
  • Provide feedback and suggest improvements to ensure consistency and adherence to best practices.
  • Identify potential errors, bugs, or vulnerabilities before they become issues in production.
  • Share feedback, best practices, and involve mentees in various stages of the development lifecycle.
  • Recommend secure coding practices to safeguard the application.
  • Address any issues or potential risks before code is merged into the main codebase.

User Support (10%)

  • Participate in meetings and discussions to align development efforts with broader business goals, gather feedback, and make necessary adjustments to software projects.
  •  Collaborate with users to align software solutions with business goals.

Innovation and Continuous improvement (10%)

  • Stay updated with the latest technologies, frameworks, and tools that could enhance the development process or improve product offerings.
  • Conduct feasibility studies and present findings to stakeholders.
  • Streamline development processes, through automation, adopting new tools, or refining existing workflows.
  • Develop prototypes for new features or products.
  • Provide constructive feedback during retrospectives or team meetings to help refine development practices, tool usage, and team workflows.
  • Actively participate in initiatives that aim to improve efficiency, reduce waste, and enhance the overall development process.
  • Participate in regular code reviews with peers to identify and rectify issues early in the development process, fostering a culture of continuous improvement.

Reporting and Documentation (10%)

  • Create documentation for system architecture, design decisions, and development for future developers
  • Write user manuals and guides that help end-users navigate and make the most of the software features.
  • Maintain and update documentation as systems evolve,
  • Facilitate knowledge sharing within the team and supporting long-term system maintenance.

Learning & Development (5%)

  • Participate in training sessions and workshops to enhance skills.
  • Stay updated with industry trends and technologies relevant to the company’s needs.

Other duties assigned from time to time (5%)


KEY FOCUS AREAS

Supervisory Responsibility/ Work Relationships

  • Work with all departments in regards to ICT software.

Processes

  • Software Development & Management
  • Systems Onboarding
  • Change Management
  • IT Security Management
  • Decision Making & Communication
  • Resolving complex bugs in the system
  • Determining the best architecture for a new feature
  • Ensuring code quality during reviews
  • Deciding when to refactor existing code
  • Revenue generation and cost management

COMPETENCY REQUIREMENTS

  • Expertise in full-stack development
  • Strong knowledge in version control
  • Dev Ops knowledge
  • Good interpersonal skills
  • Mentorship skills
  • Communication skills
  • Problem-solving skills
  • Analytical skills

QUALIFICATION AND EXPERIENCE REQUIREMENTS

  • Bachelor’s Degree in Computer Science, Software Engineering, Or A Related Field
  • Advanced training in JavaScript, node.js, react, Django, Python and database management.
  • Minimum 2 years of experience in software development with a focus on full-stack development.

TOOLS & TECHNOLOGY

  • Development Tools: Visual Studio Code, Git, GitHub
  • Frontend Technologies: React, JavaScript, HTML/CSS
  • Backend Technologies: Node.js, Express.js, Go, Django, Python
  • Database: MySQL, MongoDB
  • Version Control: Git
  • Operating Systems: Linux, Windows

APPLICATION GUIDELINES

  • How to Apply: Submit your application to recruitment@optiven.co.ke
  • Deadline: Applications close on 31st January 2025.
  • Shortlisting Process: Applications will be reviewed on a rolling basis.
  • Recruitment Fee: Optiven Group does not charge any fee for job applications, interviews, or placements.
  • Communication: Only shortlisted candidates will be contacted due to high application volumes.
  • Disqualification: Any form of canvassing leads to automatic disqualification.
  • Consent: By applying, candidates agree to allow background checks as necessary.
  • Equal Opportunity: Optiven Group is an equal opportunity employer.•