A software engineer with over 4 years of experience in software development. My experience mostly consists of web development, but I'm open to other platforms as long as it helps people solve their problems. I work mostly with Typescript, React, Svelte, and Node.js. Currently an undergraduate studying Informatics Engineering at State Polytechnic of Malang. Speaks Indonesian and English fluently, currently learning Japanese.
PT Healstation Indonesiaremote
- Building Content Management System for a South Korean mobile app that accommodates car, camp car, and camping site rent in one app
- Designed the database schema along with other developer
- Uses Next.js with Typescript, tRPC, Prisma, and Tailwind to maximise the development speed and user experience of the CMS
- Utilises MySQL as the database and MinIO/S3 as the object storage
- Using Docker for both local development setup and easy deployment solution
Cubix Branding Agencyremote
- Developed three responsive websites for Artajasa, ATMBersama, and Bersama respectively based on the provided design on Figma
- Worked in team with 3 other developers using Github
- Uses NextJS with Typescript to provide type-safety when developing the website. Also uses SCSS, Stitches, and SCSS Module to style each of the websites.
- Applied ISR pattern to improve performance and uses SWR for easier data fetching on the client
- Integrate the data that comes from Laravel with Voyager CMS to the website to provide dynamic content
- Helped refactoring and fixing any bugs that occured on both the frontend and backend
- Built a platform to do programming test similar to Codewars and HackerRank with multilingual support that also tracks the user activity such as mouse clicks, mouse movements, keystroke events, etc. since its main purpose is to collect data to be then used for research. Now published as teknologi-umum/spectator
- Collaborate with various developers using Git and Github
- Uses React with Typescript, Redux Toolkit, ChakraUI to build the frontend and utilised SignalR to send activity data to the ASP.NET Core backend. Used Vitest and React Testing Library to do unit test
- Helped developing the data calculation worker along with its unit test. The worker is written in Go and uses gRPC to communicate with the ASP.NET Core backend. It queries the data from InfluxDB and write the result to MinIO bucket as CSV and JSON.
- Made a video stream feature which streams video output from the webcam to ASP.NET Core backend through HTTP
- Assisted with developing the Remote Code Execution engine written in Typescript that uses gRPC to communicate with other services which then got open sourced as teknologi-umum/pesto
- Helped developing a dummy data generator using Python to generate thousand of fake user interaction activity data along with the unit test
- Used Docker to make it easier to develop and deploy each services
Enam Dua Teknologiremote
- Developed a Task Management System for J99 Corp. Holding similar to Jira using React, React Hook Form, React Query, Typescript, and ChakraUI
- Applied Render-as-you-fetch pattern using Suspense to improve the User Experience of the app
- Applied Atomic Design in React to make sharing components easier
- Collaborate with other frontend and backend developers to build a task management system
- Implemented Figma UI design into an interactive React UI
- Uses SSE to implement notification feature
These are some of my personal projects that I made in the past. Some of them are still in use, some are not. Mostly made them just for fun and to learn new things.
Open Source Projects
These are some open source projects that I actively help maintain. Most of them are from Teknologi Umum, a community that I'm part of.
Even though I don't write often, I try to share my thoughts and experiences from time to time. Hope you find them useful!
Japanese Full-Text Search in SQLite
A simple example of how you can make Japanese full-text-search in SQLite.
Have you ever got tired of writing relative paths that look like ../../../ ? No worries, path alias to the rescue!
A year of Japanese... well, kinda
A post where I write my journey on learning Japanese. Man, I forgot how did I learn a foreign language.
Combining Adonis and Svelte using InertiaJS
A short guide to build modern monolithic app using InertiaJS with Adonis and Svelte
Migrating from Sapper to SvelteKit
A post about my experience migrating my blog to SvelteKit.