
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.
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
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
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
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
· 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
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
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
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
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
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
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