Summary
Overview
Work History
Education
Skills
Certification
Languages
Timeline
Generic

Zwivhuya Nthakheni

Olifantsfontein

Summary

With 6 years of experience as a full-stack web and software developer, I possess a comprehensive skillset encompassing front-end, back-end, and database development. My experience includes SDLC methodologies, unit testing, adherence to SOLID design principles, and project management. I am highly proficient in PHP, with prior experience in Java and C#. I leverage frameworks like Laravel and Moodle to deliver robust solutions. Additionally, I possess expertise in Java-based Android development. Version control using GIT and server management (Linux and Windows) are integral aspects of my workflow. My database prowess spans SQL Server and MySQL, with working knowledge of Oracle databases. I further enhance application functionality through the implementation of RESTful APIs and proficiency in JavaScript, HTML, and CSS. Finally, I possess a foundational understanding of cloud platforms like Azure and AWS.aintenance.

Overview

6
6
years of professional experience
1
1
Certification

Work History

Moodle Systems Administrator

Vertice Data And Software Solutions
Menlyn
11.2022 - Current
  • Fixed a Moodle theme bug related to variable types that prevented course category sorting.

Responsibilities :

· Attempted to reproduce the bug on all local and QA environments

· Isolated individual stack components to identify the root cause

· Tested them on an alternate QA site to check for differences

· Experimented with variable types and lengths to resolve bug

· Implemented the fix directly on the theme

· Forked the theme to a GIT repo for controlled fixes

· Created test branches for new theme versions and tested them

Technologies Used :

· Azure MYSQL flex server

· Linux

· GIT

· Chrome Devtools

· PHP

  • Identified a key flaw in the Moodle LMS whose fix was integrated into the LMS.

Responsibilities

· Identified an error while configuring CRON jobs in an upgraded version of Moodle

· Determined that the error was caused by a variable casting issue due to upgrading the server to PHP 8

· Liaised with Moodle team to ensure the issue was addressed

Technologies Used :

· Moodle

· PHP 8

· QA server built to emulate production

· PHP XDebug

  • Fixed a CRON task failure issue, related to the Reporting plugin not tallying course data correctly.

Responsibilities

· Identified that the CRON task was iterating through courses via a reverse search using site logs

· Implemented an IF statement to verify the existence of course IDs in the system before processing

Technologies Used :

· CRON Jobs/Tools

· Moodle

· GIT

  • Helped author the company’s Moodle development process documentation.

Responsibilities

· Developed and mapped out the deployment pipeline

· Mapped out the code review pipeline

· Established version control protocols

· Consulted with development team leads from various products

· Consolidated inputs from team leads into a cohesive guideline

Technologies Used:

· Kanban

· Lucidchart

  • Successfully manage and maintain 20+ Moodle LMS sites.

· Multiple Moodle instances run in the same code base

· Site and server are configured to dynamically route the site, database, and data folder

· Plugin and site updates are applied to one base, cascading to each site

Technologies Used :

· Moodle

· Sentry

· MS Azure

Software Developer

Commerce Edge
Midrand
11.2018 - 10.2022
  • Developed an email based reminder plugin that sends notifications of missed classes and assignment submissions to learner parents for the Moodle LMS.

Responsibilities

· Automated Reminder System:

o Send overdue assignment, quiz, and missed attendance reminders to students and parents.

o Reminders at specific intervals: 6 months, 3 months, 1 month, 2 weeks, 1 week, 3 days, and overdue.

· Technical Implementation:

o Create 3 custom CRON jobs for different activity types.

o Implement a custom MySQL table to log reminder emails (user & course specific).

o Develop functions for each activity type to identify overdue activities.

o Utilize Carbon library to calculate due date vs. current date difference.

o Integrate with Cerberus email templates for responsive design.

· Quality Assurance:

o Configure correct email headers and design for different clients.

o Verify emails are sent to correct users with proper formatting.

Technologies Used:

· Moodle LMS

· CRON tasks

· MySQL

· Moodle Task API

· Moodle XMLDB API

· PHP

· Carbon Library

· Cerberus Email Templates

· GIT

  • Developed a Laravel based API that interfaces with a third party site to create and manage users for a Moodle LMS instance.

Responsibilities

· Designed and developed a Laravel API to act as a middleware for user creation and management between a client's external system and a Moodle system.

· Ensured synchronization of user data between the two systems.

· Handled high volume of requests (7,000 users every 30 minutes).

· Implemented efficient data update process by:

o Linking directly to the Moodle database for faster processing.

o Developing an algorithm for dynamic field assignment based on received data.

o Creating a separate route for secure password updates.

· Utilized Laravel's job queuing system to manage request volume and improve performance.

· Implemented Laravel Sanctum for secure token-based user authentication.

· Deployed the API to companion sites.

· Monitored task logging and user integration for functionality.

· Optimized and streamlined the code for efficiency.

Technologies Used:

· Moodle Webservice API

· JavaScript

· PHP

· Restful API

· MySQL

· Laravel

· Laravel Sanctum

· Laravel Job queuing

· Laravel HTTPS packages

· GIT

  • Developed an Orientation Course plugin that locks users out of their courses until they have completed a designated orientation course for the Moodle LMS.

Responsibilities

· Manage Orientation Courses:

o Define which courses are considered "Orientation."

· Enforce Course Completion Order:

o Redirect users to orientation courses based on course ID order.

· User Enrollment Check:

o Verify if a user is enrolled in an orientation course before redirection.

· Redirect Logic:

o Redirect users who are not enrolled or haven't completed all orientations to the first unfinished course.

o Exclude orientation course pages and their activities from redirection.

· Completion Tracking:

o Stop redirecting users once all orientation courses are completed.

· Deployment and Maintenance:

o Ensure successful plugin and redirect feature deployment on each client's Moodle system.

o Address any exploits discovered by students to bypass the orientation.

Technologies Used:

· Moodle Enrolment API

· Custom Moodle Local Plugin

· JavaScript

· PHP

· PHP XDebug

· MySQL

· GIT

  • Developed a Moodle LMS plugin that enables course administrators to assign notional hours for a course and an activity, and allow a learner to complete the course based on the notional hours required.

Responsibilities

· Calculate notional hours:

o Per course

o Per quarter

o Based on completed activities

· Manage course enrolments:

o Enroll/unenroll users from courses

o Enroll user groups in course groups

o Assign course notional hours to users during enrollment

· Track course completion:

o CRON task to iterate through enrolled users and completed activities

o Calculate total completed hours based on modules

o Award course completion when sufficient hours are met

· External reporting:

o Write user's notional hours, course, and user ID to an external database

· Maintain functionality:

o Ensure time logging and completions run without errors

o Preserve plugin functionality through Moodle updates

Technologies Used:

· Custom Moodle Local plugin

· Moodle Bulk User Enrolment plugin: This plugin provided the starting point for the User Notional hours plugin

· Moodle Enrolment API

· Bootstrap 4

· Moodle External Database plugin

· CRON tasks

· PHP

· MySQL

· Windows Server

· PHP XDebug

· GIT

  • Developed a Moodle plugin that allows parents to view and manage their children’s activities and grades, as well as read notes and feedback given to their children.

Responsibilities

· Analyze Existing Plugin:

o Identify Moodle Fn Mentor as a base and assess its suitability.

· Refactor User Interface (UI):

o Remove unnecessary features from the base plugin.

o Rebuild UI from scratch using Bootstrap 4.

· Implement Student Progress Tracking:

o Develop functionality for parents and teachers to view enrolled courses.

o Design real-time grade display for each activity and course.

· Enhance Grade Calculation:

o Modify grade summary to consider all activities (not just quizzes and assignments).

o Reformat display of activities and their progress.

· Enable Parental Notes:

o Modify course Notes page to allow creation and viewing of notes based on user IDs.

· Develop Parent Feedback Feature:

o Create a custom page to display children's assignment feedback.

o Implement logic to ensure feedback is displayed only for valid parent-child relationships.

· Automate Parent-Child Linking:

o Create a CRON task for automatic assignment of parent users to children.

o Utilize a user profile field in the child's profile for parent ID.

· Ensure Functionality:

o Fix any bugs related to the plugin's core functionality.

o Guarantee intended behavior upon deployment to a new client.

Technologies Used:

· Moodle Fn Mentor plugin (Base): This plugin provided the starting point for the real-time student report and progress tracker.

· Bootstrap 4

· Moodle Enrolment and DB API

· Custom User Notes Modification: Implemented to allow parents to view their children's course notes.

· CRON Tasks

· MySQL

· PHP

· Linux

· PHP XDebug

· GIT

  • Developed a custom Moodle quiz question type that allows file uploads as answers to a question and simultaneously submits that file to a linked assignment for grading.

Responsibilities

· Created a plugin to enable simultaneous file submission for quizzes and assignments

· Used Moodle Essay Question type as a base and modified it to accept file uploads

· Added functionality to link assignments within the quiz creation and editing pages

· Stored assignment linkage information in a database table

· Utilized Moodle file API to store and retrieve uploaded files

· Reverse-engineered Moodle files table to insert submitted files into the correct assignment area

· Tested and maintained the plugin's functionality with each deployment to ensure it did not disrupt the core system functionality

Technologies Used:

· Moodle Essay Question type: This plugin provided the starting point for the custom Moodle quiz question type.

· Moodle file API

· MySQL

· PHP

· Linux

· PHP XDebug

· GIT

Education

Bachelors of Technology - Information Technology

Central University of Technology
Bloemfontein, FS
06.2017

National Diploma - Information Technology

Central University of Technology
Bloemfontein, FS
12.2015

Skills

  • Application Configuration
  • Problem Solving and Critical Thinking
  • Moodle
  • PHP
  • SQL
  • HTML, CSS, Javascript and JQuery
  • Git proficiency
  • API Integration

Certification

  • AWS Certified Cloud Practitioner

Languages

English
Bilingual or Proficient (C2)
TshiVenda
Bilingual or Proficient (C2)

Timeline

Moodle Systems Administrator

Vertice Data And Software Solutions
11.2022 - Current

Software Developer

Commerce Edge
11.2018 - 10.2022

Bachelors of Technology - Information Technology

Central University of Technology

National Diploma - Information Technology

Central University of Technology
Zwivhuya Nthakheni