Vrica Gede Penggalih
Flexible engineer that comfortable and capable using various technologies.
About Me
Background, education, and approach to software development.
I'm Vrica Gede Penggalih, a software engineer who enjoys building backend systems and full-stack web applications from the ground up. I recently graduated in Information Technology and have experience developing RESTful APIs, real-time applications with WebSockets, authentication and authorization systems, and scalable database architectures using Go, JavaScript, Laravel, and SQL.
I enjoy understanding how software works beneath the surface, which is why many of my projects go beyond typical CRUD applications. I've built an interpreted programming language in Go, developed a self-hosted real-time chat application using goroutines and WebSockets, created an enterprise Document Management System with RBAC and digital signing workflows, and conducted computer vision research comparing YOLO models for freshwater fish detection.
I primarily work on Linux and enjoy designing systems with clean architecture, maintainability, and performance in mind. I'm always interested in learning new technologies and solving practical engineering problems through thoughtful software design.
Information Technology. IPK 3.66
Technical Skills
Core programming languages, web stacks, databases, architecture, and developer tools.
-
Languages
-
Web Technologies
-
Database
-
Concepts & Architecture
-
Tools & Platform
Selected Projects
A selection of key projects I've designed and built. Visit my GitHub for more.
A interpreted programming language written in Go with syntax focused on the Indonesian Language. Features its own lexer, parser, evaluator, and detailed line-number error reporting.
- Data types: string, integer, boolean, and arrays
- High-order and first-class functions support
- Conditional statements and rich expression evaluation
- Designed language grammar and execution model from scratch
- Includes online web playground & CLI execution engine
- ~3000 lines of handwritten code (didn't use AI)
An enterprise Document Management System created for client PT Aino Indonesia as part of my University Capstone Project. I serve as the only developer on the team.
- Supports sequential, parallel, group-based digital signing workflows
- Supports Upload, View, Send, Sign, Audit, Download, Filtering and Delete document.
- Drag & drop signature placement with visual signature overlay
- Authorization with RBAC and authentication with JWT.
- Inlcudes Admin role.
A lightweight, self-hosted, deployless, anonymous public real-time chat app that becomes publicly accessible without deploying to a cloud server. Instead of deploying to a VPS or cloud platform, the application runs entirely on the host's local machine and uses Ngrok tunnel to expose it to the internet through a secure public URL.
Users can join existing chat rooms or create their own rooms with optional password protection. No registration, email, or user accounts are required, only a temporary username is needed to participate in conversations.
- Real-time messaging using WebSockets and utilizing Go goroutines concurrency and channels
- Create and join multiple chat rooms
- Anonymous usernames (no accounts, resgistration or authentication system)
- Self-hosted and publicly accessible through Ngrok tunneling
- SQLite for storing chat history
- Ngrok integration to expose the local server as a public URL without deploying to a VPS or cloud service
A lightweight HTTP server library for Go, built from scratch using TCP connections without relying on Go's http package, giving deep insight into http ptocol and network-level backend development.
- Implemented an HTTP server directly on top of Go's net TCP package.
- Built HTTP request parsing and response handling from the ground up.
- Designed a simple routing system supporting HTTP methods and custom handlers.
- Added static file serving for documents and media.
- Implemented configurable HTTP response headers and status codes.
- Added JSON and byte-based response support.
- Designed the library with a simple API for defining routes and starting the server.
h := http.Init()
h.LoadStatic("/static", "./resource")
h.Routes = []*http.Routes{
{
Path: "/api/foo",
Method: "GET",
Handler: func(h *http.Http) {
h.Response.Headers.SetStatusCode(200)
h.Response.Headers.ContType = "application/json"
h.Response.Body.Byte([]byte(`{"status":"ok"}`))
},
},
}
h.StartServer("127.0.0.1", ":8000")
A fast CLI tool see running processes and overview of a computer written in Go for Linux systems. Provides a clean overview of running processes and summary information of computer hardware and software.
- Monitors system processes and resource consumption based on RAM usage
- See information about computer hardware and software
- Display information about Operating System, RAM, CPU, DISK, Network, GPU and user
- Built specifically for Linux environments
A web-based OCR application for recognizing Javanese language from images and converting it into digital text. Built with Golang for the backend and Tesseract OCR as the recognition engine, featuring a clean and minimal interface with image preview, drag-and-drop upload, OCR processing, and downloadable text results.
- Built a web-based Javanese OCR application using Golang and Tesseract OCR.
- Implemented image upload, drag-and-drop, real-time image preview, OCR text extraction, and downloadable output
- Used tessdata_best model provided by the tesseract engine community.
- Containerized the app with Docker. Available at Docker Hub
A lightweight command-line utility for compressing and extracting files and folders using ZIP archives. Built with Go, Zipper provides a simple CLI interface for quickly zipping individual files, multiple files, or entire directories, as well as extracting ZIP archives to a specified destination.
- Zip individual files or multiple files or even entire directories
- Extract ZIP archives with custom destination paths
- Simple command-line interface
- Lightweight and fast
// ZIP MULTIPLE FILES
$ zipper -z -fl [task1.pdf task2.pdf] homework
// ZIP A FOLDER
$ zipper -z -fd my-project backup
// UNZIP AN ARCHIVE
$ zipper -u homework.zip homework-done
Built an end-to-end web application that detects multiple Indonesian freshwater fish species from a single image using my own YOLOv12 object detection model. Independently created the dataset, performed manual annotation and augmentation in Roboflow, trained the model in Google Colab, deployed it to a web application. The application identifies multiple fish and multiple species simultaneously, displays nutritional information for each detected species, and generates personalized cooking recipes using a Large Language Model (LLM).
- Multi-object and multi-species fish detection in a single image.
- Perform dataset collection, annotation and augmentation in Roboflow and trained the model in Google colab. Link to Roboflow ->
- Supports detection of Milkfish (Bandeng), Catfish (Lele), Tilapia (Nila), Pangasius (Patin), and Gourami (Gurame).
- Displays nutritional information for each detected fish species.
- AI-generated cooking recipes based on detected fish using an LLM.
- User-friendly web interface for image upload and real-time inference.
Work Experience
Professional internships, freelancing and community teaching experience.
Engineered an internal Enterprise Resource Planning (ERP) Project Dashboard to streamline tracking across company-wide projects. The system replaces spreadsheet-based project management with a centralized dashboard that provides project tracking, financial monitoring, Excel data import, and secure access management using Role-Based Access Control (RBAC).
Built with Laravel, PostgreSQL, and the Spatie Laravel Permission package, the application enables different user roles such as Admin, Project Manager, and Finance to access only the resources and actions relevant to their responsibilities.
- Designed the database schema (ERD) for project, transaction, finance, and user management.
- Implemented RBAC with roles, permissions, and route-level authorization using Spatie.
- Developed Excel import functionality with data validation and automatic database mapping.
Built & deployed a production-ready website for PT Desty Jaya Mandiri, a Yogyakarta-based property company, featuring a public property catalog and a secure admin dashboard for managing listings.
- Developed a production-ready company website for a Yogyakarta-based property company using Laravel, Vite.js, SQLite, and JavaScript.
- Built a complete Admin Dashboard to manage property listings with create, update, delete, image upload, and publishing features.
- Designed and implemented the backend architecture, database schema, RESTful routes, and authentication system for administrative users.
- Developed responsive frontend pages for customers to browse available properties and company information.
- Deployed and configured the application on a shared hosting environment using cPanel, including database migration and production setup.
Taught basic programming to vocational high school students during KKN at Gunung Kidul. Utilized BAIK—a programming language featuring Indonesian syntax—allowing students to quickly grasp core programming logic, algorithms, and flow control. See the Blog & Documentation here -> https://kkn17-siyono-wetan.netlify.app
Certificates & Published Papers
Professional certifications, academic publications, and research achievements.
Published Papers
Comparative Analysis Of YOLO Model Performance For Freshwater Fish Detection
This research compares the performance of YOLOv11n and YOLOv12n for detecting five Indonesian freshwater fish species through a lightweight computer vision pipeline. The study includes dataset collection and annotation, image preprocessing and augmentation, hyperparameter optimization using a partial factorial experimental design, and comprehensive evaluation with precision, recall, mAP@50, mAP@50–95, F1-score, and inference speed. The results show that YOLOv12n delivers higher detection accuracy and more stable predictions, while YOLOv11n offers faster inference for real-time, resource-constrained applications.
Implementasi Dashboard Proyek Dengan Sistem RBAC Pada PT.XYZ
This research presents the design and implementation of Project Dashboard with RBAC for PT. XYZ — A Laravel-based web application that centralizes project management and financial tracking while replacing spreadsheet workflows. Implemented secure role-based authorization using Spatie RBAC, Excel import automation, PostgreSQL database design, and user/role management. Developed using the Extreme Programming (XP) methodology and validated through black-box testing.
Certificates
Product / Software Intern
Backend Developer
Machine Learning Pemula
Multi-Platform Flutter
AWS Cloud Practitioner
Dasar Programming JavaScript
Python Programming
Dasar Artificial Intelligence
Programming Dart
Visualisasi Data
Feel Free To Reach Out
Need anything? Just address me.







