# Ilham Riski Wibowo · Backend Developer > I build web applications, chatbots, and APIs. Full content of https://ilhamriski.com, in one file. Source: https://ilhamriski.com/ · Generated from the site's own content on 2026-08-04. A shorter index is available at https://ilhamriski.com/llms.txt. ## Profile Backend Developer with 4+ years of experience building web applications, chatbots, and APIs. My main stack is Laravel and PHP, backed by Python and JavaScript/TypeScript, and I'm currently exploring Rust. I care about efficient, scalable solutions and shipping open-source tools that people actually use. - Name: Ilham Riski Wibowo - Also known as: IlhamriSKY (GitHub handle, used across his open-source work) - Role: Backend Developer - Also works as: Fullstack Developer, Web Developer, Chatbot Developer - Location: Semarang, Indonesia - Availability: open to work and freelance projects ## Contact - GitHub: @IlhamriSKY · https://github.com/IlhamriSKY - WhatsApp: +62 813-9119-2037 · https://wa.me/6281391192037 - Email: ilhamriskiwibowo@gmail.com - LinkedIn: ilhamriski · https://www.linkedin.com/in/ilhamriski - Instagram: @buildbyilham · https://www.instagram.com/buildbyilham - Website: https://ilhamriski.com ## What he builds ### 01 · Backend development Robust web apps and services with Laravel & PHP, clean architecture, auth, queues, and databases that scale. Focus: Backend ### 02 · API design & wrappers REST APIs and integration wrappers, including community wrappers for the PDDIKTI Kemdikbud data used across Indonesia. Focus: APIs ### 03 · Chatbots & automation WhatsApp/Telegram chatbots, schedulers, and automation that remove the repetitive parts of a workflow. Focus: Chatbots ### 04 · Packages & extensions Published packages and VS Code extensions on Packagist, PyPI, and the Marketplace, reused by other developers. Focus: Open Source ### 05 · Full-stack platforms End-to-end platforms: admin dashboards, alumni networks, and data tools from database to interface. Focus: Web Apps ### 06 · Data & web scraping Reliable scrapers and data pipelines that collect, clean, and serve structured data from messy sources. Focus: Data ## Experience ### Full-stack Developer · Karangturi School Nov 2024 – Present · Semarang, Central Java · On-site - Building and maintaining web applications and internal systems for the school. - Full-stack work with Laravel, PHP, and JavaScript. ### Back End Developer · Decodes Media Sep 2023 – Mar 2024 · Indonesia · Remote · Part-time - Backend and API development for client web products. - Worked primarily with PHP and REST API integrations. ### Full-stack Developer · Unika Soegijapranata Semarang Jan 2023 – Oct 2023 · Indonesia · Full-time - Built and maintained campus web apps and internal tools with PHP/Laravel and Python. - Delivered the Halo Alumni (HANI) network, tracer-study data systems, and link/QR tools. ## Selected work ### TEDI My flagship: a lightweight desktop app that folds eight everyday dev tools (terminal, SSH/SFTP, a database browser, a code editor, an AI agent, an in-app browser, workspaces, and Git) into one ~7 to 10 MB window built on Tauri 2. No telemetry, and this very site borrows its design system. - Category: Open Source · Desktop App - Tech: Tauri 2, Rust, TypeScript, React 19 - Live: https://tedi.ilhamriski.com - Source: https://github.com/IlhamriSKY/TEDI - GitHub stars: 86 - Video: https://youtu.be/x_qWOaYqnxU - Screenshot: https://ilhamriski.com/tedi/tedi1.png ### FitZone Gym · Management System A full gym management system: members and plans, billing and a point of sale, door check-in, class schedules, trainers, loyalty, and multi-branch control, all run from one dashboard. - Category: Web App · Laravel - Tech: Laravel, Vue.js, SaaS - Type: For sale - Screenshot: https://ilhamriski.com/reels/gym-cover-w.png ### Bian Real Estate A property portal built on Laravel: searchable listings, detailed property pages with galleries and agents, property articles, and an enquiry flow, listing to enquiry in one place. - Category: Web App · Laravel - Tech: Laravel, Real Estate, Web App - Type: Client project - Screenshot: https://ilhamriski.com/reels/bian-cover-w.png ### I-ANDI · Neuropsych Norms A neuropsychological assessment platform: ten adapted tests, a normative database, and score analysis across education, age and region, with dashboards and the research behind it. - Category: Web App · Laravel - Tech: Laravel, HealthTech, Data - Type: Client project - Live: https://norm.indonesian-andi.id - Screenshot: https://ilhamriski.com/reels/norm-cover-w.png ### Hospital Management System A hospital site that books its own appointments: a landing page funnelling to one action, a department directory, and a booking flow that respects real opening hours. - Category: Web App · Laravel - Tech: Laravel, Healthcare, Booking - Type: Client project - Screenshot: https://ilhamriski.com/reels/hospital-cover-w.png ### Integrated Obesity Clinic A bilingual clinic site for the Integrated Obesity Clinic at RSCM: a service catalogue, doctor profiles, and a health blog, built end to end. - Category: Web App · WordPress - Tech: WordPress, Healthcare, Bilingual - Type: Client project - Live: https://endokrinjakarta.com - Screenshot: https://ilhamriski.com/reels/endokrin-cover-w.png ### Suzuki Karunia Jaya Marine An online catalogue for a Suzuki marine dealer: outboard motors with stock, pricing and full specifications, each engine on its own page. - Category: Web App · WordPress - Tech: WordPress, Catalogue, Marine - Type: Client project - Live: https://suzukikaruniajayamarine.com - Screenshot: https://ilhamriski.com/reels/karunia-cover-w.png ### Gereja Santo Yusuf Gedangan A parish site for the first Catholic church in Semarang: a welcoming home page, parish news and mass schedules, a short history, and a gallery of parish life. - Category: Web App · WordPress - Tech: WordPress, Web Design, Community - Type: Client project - Live: https://gerejagedangan.id - Screenshot: https://ilhamriski.com/reels/gereja-cover-w.png ### PDDIKTI Kemdikbud API Unofficial Python 3 API wrapper to retrieve university, lecturer, and student data from PDDIKTI Kemdikbudristek. The community package, installable from PyPI. - Category: Open Source · Python - Tech: Python, API Wrapper, PyPI - Source: https://github.com/IlhamriSKY/PDDIKTI-kemdikbud-API - GitHub stars: 114 - Screenshot: https://ilhamriski.com/works/pddikti-python.jpg ### HANI · Halo Alumni A social platform built for Soegijapranata Catholic University alumni: stay connected, share job vacancies, and access campus updates, networking tailored to alumni. - Category: Web App · Laravel - Tech: Laravel, MySQL, Social Platform - Type: Client project - Live: https://hani.unika.ac.id - Screenshot: https://ilhamriski.com/reels/hani-cover-w.png ### Simple DepthMap 3D Animation Turns 2D images into 3D animations using depth maps, layered parallax with zoom and perspective shifts, rendering high-quality 3D videos from a single photo. - Category: Open Source · Python - Tech: Python, Computer Vision, FFmpeg - Source: https://github.com/IlhamriSKY/Simple-DepthMap-3D-Animation - GitHub stars: 22 - Screenshot: https://ilhamriski.com/works/depthmap.jpg ### PDDIKTI API Laravel Package A Laravel package that wraps the PDDIKTI API, giving developers easy programmatic access to Indonesian higher-education data. Available on Packagist. - Category: Open Source · PHP - Tech: PHP, Laravel, Packagist - Source: https://github.com/IlhamriSKY/PddiktiApi - GitHub stars: 18 - Screenshot: https://ilhamriski.com/works/pddikti-laravel.jpg ### Laravel Timezone by City A small Laravel package to retrieve timezone information for cities worldwide, backed by Carbon for date/time manipulation. Simple install, simple API. - Category: Open Source · PHP - Tech: PHP, Laravel, Package - Source: https://github.com/IlhamriSKY/laravel-timezone-by-city - GitHub stars: 15 - Screenshot: https://ilhamriski.com/works/laravel-timezone.jpg ### Tracer Study Support Data A web application to track and collect alumni data for the Kemdikbud tracer study, supporting reporting and data completeness at the university. - Category: Web App · Laravel - Tech: Laravel, Data, Dashboard - Type: Client project - Live: https://tracer.unika.ac.id - Screenshot: https://ilhamriski.com/reels/tracer-cover-w.png ### Bio Link, Short Link & QR Shorten URLs, build bio-link pages, and generate custom QR codes, vCard links, and file links, a link toolkit made for the SCU community. - Category: Web App · Laravel - Tech: Laravel, Web App, QR Code - Type: Client project - Live: https://biourl.me - Screenshot: https://ilhamriski.com/reels/biourl-cover-w.png ### VS Code: S.ID Shortlink A Visual Studio Code extension to create and manage S.ID short links without leaving the editor. Published on the VS Code Marketplace. - Category: Extension · JavaScript - Tech: VS Code, JavaScript, Extension - Source: https://github.com/IlhamriSKY/Sid-URL-Shortener - GitHub stars: 14 - Screenshot: https://ilhamriski.com/works/sid-shortlink.png ### VS Code: Doa Harian Katolik A VS Code extension providing a daily Catholic liturgical calendar, prayer collections, saint information, Bible access, and daily prayer reminders. - Category: Extension · JavaScript - Tech: VS Code, JavaScript, Extension - Source: https://github.com/IlhamriSKY/Doa-Harian-Katolik - GitHub stars: 10 - Screenshot: https://ilhamriski.com/works/doa-harian.png ### Workout App · UI Concept A clean UI/UX concept design for a workout & exercise mobile app: layouts, activity tracking screens, and a calm, focused visual system. - Category: Design · UI/UX - Tech: UI/UX, Figma, Mobile - Type: Design - Screenshot: https://ilhamriski.com/works/workout-ui.jpg ## Skills - Languages: PHP, Python, JavaScript, TypeScript, Rust - Frameworks: Laravel, Vue.js, React, Node.js, Astro - Data: MySQL, MariaDB, Redis, REST APIs, PostgreSQL - Tooling: Nginx, GitHub, Linux, TEDI, VS Code ### Language distribution across public repositories - JavaScript: 40% - PHP: 23% - Python: 20% - TypeScript: 11% - CSS: 6% ## Clients and organisations he has built for - Soegijapranata Catholic University - Suzuki Marine - Graha Transport - Meditest - Triple Seven Vision - Triple Seven Interiors - Decodes Media - Tarink Visual - Maria Ciherang Sukatani ## Blog ### Restoring a Lost Database from .frm Files with Python 3 & mysqlfrm Published 2024-10-14 · 5 min read · Tags: Python, MySQL, Recovery Read at https://ilhamriski.com/blog/restoring-a-lost-database-from-frm-files/ Source code: https://github.com/IlhamriSKY/Database-Restore-Frm-Python-3-using-mysqlfrm Also on Medium: https://medium.com/@ilhamrisky21/restore-database-from-frm-and-ibd-files-easy-way-using-laragon-mysql-8b8d8cb73ffe > My database was lost to a bad server setting. Here is the simplest method I found to restore many InnoDB tables at once, using a short Python script and the mysqlfrm tool. My database was wiped out by a bad server setting. Digging through forums, I kept running into the same two files, `.frm` and `.ibd`, so here is the simplest way I found to bring many tables back at once. A `.frm` file stores an InnoDB table’s structure, while the matching `.ibd` file holds the raw table data. The `.ibd` can’t be read as a database on its own, so the structure has to be rebuilt first, then the data imported into it. The method below leans on a short Python script and [mysqlfrm](https://downloads.mysql.com/archives/utilities/), a tool from the MySQL Utilities archive. Because it loops over the folder, it rebuilds every table in one pass. #### What you’ll need 1. The `.frm` and `.ibd` files. On my CentOS 7 server they lived under `/var/lib/mysql/`. 2. A working folder to copy them into, e.g. `C:\Users\ilham\Documents\`. 3. The [mysqlfrm](https://downloads.mysql.com/archives/utilities/) tool from the MySQL Utilities archive. 4. A local MySQL server, installed and running (I used [Laragon](https://laragon.org/)). #### Step 1 · Export each table structure Loop over every `.frm` in the folder and run `mysqlfrm` against your local server, writing the output to one `.sql` file per table. ![Python cmd_restore() function looping over .frm files and running mysqlfrm](https://ilhamriski.com/assets/blog/restoring-a-lost-database-from-frm-files/01-run-mysqlfrm.png) *cmd_restore() runs mysqlfrm on every .frm file and saves one .sql per table.* #### Step 2 · Clean up the output mysqlfrm wraps the `CREATE TABLE` statement in extra log text, so the raw `.sql` won’t run as-is. Strip those lines so each file holds a single, valid query. ![Python delete_list() and delete_text() functions stripping mysqlfrm log lines](https://ilhamriski.com/assets/blog/restoring-a-lost-database-from-frm-files/02-clean-sql-output.png) *delete_text() removes the mysqlfrm log lines, leaving a runnable statement.* Then run the cleaner across the whole output folder. ![Python prosess() function cleaning every .sql file in the output folder](https://ilhamriski.com/assets/blog/restoring-a-lost-database-from-frm-files/03-run-script.png) *prosess() cleans each .sql in the output folder and re-saves it as .txt.* #### Step 3 · Recreate the tables With the structures cleaned up, connect to a fresh database and execute each query. I used [pymysql](https://github.com/PyMySQL/PyMySQL), swapping the old database name for the new one as each file is read. ![Python pymysql connection reading each query and executing it against the new database](https://ilhamriski.com/assets/blog/restoring-a-lost-database-from-frm-files/04-pymysql-import.png) *pymysql reads each cleaned query and runs it against the new database.* #### Step 4 · Import the data The tables exist now, but they’re empty. Copy the original `.ibd` files into the new database folder (with Laragon mine sit at `C:\laragon\data\mysql\`), then import each tablespace: ```sql ALTER TABLE `table_name` IMPORT TABLESPACE; ``` Run it the same way you ran the structure queries. Once every tablespace is imported, the database is back, with structure and data intact. The full script lives on [GitHub](https://github.com/IlhamriSKY/Database-Restore-Frm-Python-3-using-mysqlfrm) and I keep it updated. This walkthrough was [originally published on Medium](https://medium.com/@ilhamrisky21/restore-database-from-frm-and-ibd-files-easy-way-using-laragon-mysql-8b8d8cb73ffe). Grab the code with the buttons below. --- ### A Complex Datatable in Vue: search, sort, filter & export, server-side Published 2024-10-14 · 3 min read · Tags: Vue, Laravel, DataTable Read at https://ilhamriski.com/blog/complex-datatable-in-vue-server-side/ > Building a datatable with advanced search, ordering, dynamic filtering, and multiple export options, rendered server-side from a Laravel API for efficient, scalable performance. I’ve been building a complex datatable with advanced search, ordering, sorting, and dynamic filtering in Vue, plus multiple export options, to make large datasets easier to work with. Everything, including the dropdown filters, is rendered server-side from a Laravel backend API, which keeps it efficient and scalable even as the dataset grows. It was a genuinely fun build: watching the moving parts (query building, pagination, exports) come together into one smooth component. ## About this site https://ilhamriski.com is a static site: Astro 5, React 19, TypeScript, and Tailwind CSS, prerendered and served by nginx. The design system is shared with TEDI, his desktop app. The GitHub section is fetched live through a small PHP proxy, and the terminal on the home page answers questions about Ilham through an AI endpoint. Machine-readable entry points: /llms.txt, /llms-full.txt, /sitemap.xml, /robots.txt, and JSON-LD (Person, WebSite, ProfilePage, Article) embedded in every page.