Aug 2025 - Sep 2025
System Developer Intern
Department of Science and Technology
Location
Taguig
Duration
2 mos
Tech Stack
PHP, Laravel, Vue 3, Blade templates, SQL, Cron Jobs
Tools
Docker, Postman, Git (DOST DevHub), Trello
Worked as a developer on two internal government platforms: the Balik Scientist Program Management System (BSPMS) and the Risk Management Information System (RMIS).
RMIS was being rebuilt from an older CodeIgniter application onto a Laravel and Vue 3 stack. Because government offices already depended on the existing system, the work went beyond rebuilding the interface. Legacy records had to move cleanly into the new database structure, existing workflows had to keep behaving the way expected, and integrations that weren’t finished yet had to be tested against a stand-in before the real services were available.
Source
Scheduled migration
Target platform
Highlights
- Developed reports and library modules in BSPMS across query logic, controllers, and views, then cross-checked generated PDF reports against source tables in SQL to confirm the figures matched before release.
- Automated the legacy data sync with scheduled Laravel Artisan commands that pulled tables from the old CodeIgniter database into the new RMIS schema, handling soft-deleted rows, repairing broken relationships, and other bugs.
- Reconciled old and new databases record by record, tracing mismatches back to their source and adjusting models, migrations, and seeders so the new schema held what the original data actually meant.
- Stood up mock API endpoints in Laravel and ran the legacy system in Docker, exercising each endpoint through Postman so integration behavior could be verified before the real connection was available.
- Rebuilt the RMIS monitoring page against the new database and wired it into the risks workflow, adding role-based data access, filters, and pagination so each office loaded only the records relevant to it.
- Standardized RMIS office modules in Vue 3 using shared components and unified alerts for a consistent interface across the system.
“Writing the sync job itself was the easy part. Understanding the legacy data was harder. Real systems are more complicated than they look on paper, and plenty of decisions don’t turn out the way I expected. That experience taught me that production work depends as much on verification as building: understanding the data, testing assumptions, and checking changes before release.”