syamsu.dev

Latest Posts

All Posts >

Automatically Increment Android App Version Code with Fastlane

2025-01-05

fastlane When publishing Android apps to the Google Play Store, each release must have a higher version code than the previous one. Fastlane, the popular automation tool for app deployment, can help

See more >

Blabbering on Blog to Keep on Writing

2025-01-05

For years, I have been thinking that a tech blog should host many well-written, comprehensive, elaborate articles. I always wanted to have a blog which leaves visitors engaged to read more of my artic

See more >

This SSG Blog is Available on GitHub

2025-01-04

This is a static site based on React.JS, react-router, and remark. You can check it out here on GitHub.

See more >

Cloudflare Anti Scraping may Break Your React SSR

2025-01-03

If you're using React server-side rendering (SSR) with Cloudflare, you might encounter an unexpected issue where your server-rendered content doesn't match the client-side render. Here's how I discove

See more >

Android NestedScroll Layout can Mess with your CoordinatorLayout and RecyclerView

2025-01-01

While working on two separate tasks recently, I ran into frustrating layout issues that were both caused by NestedScrollView. Here's what happened and how I fixed them. The Collapsing Toolbar That Wo

See more >

Watch Out for Duplicate View ID to Attach Android Fragment

2024-12-31

When developing new screens on an android app, I almost always isolate them by creating a full screen fragment. And then attach that fragment on a internal android app activity; which is an activity v

See more >

Works

99.co (Android & iOS)

2024 - now

Native Android and iOS applications for property marketplace in Singapore.

- Cobroke agent : feature to help agents to cobroke other agents' listed properties

- Featured agent : feature to help agents to showcase their profile in certain area

- Unlink Auto-Import : feature to help agents to unlink their auto-imported properties from automated sync

Technologies : Android, GitHub, iOS, Java, Kotlin, Swift

Mangkunegaran (React-Native, iOS, Android)

2024

A mobile application for Mangkunegaran Palace to showcase their collection and history.

- Launched MVP in 3 months time

- Detox end-to-end tests

Technologies : Android, Azure DevOps, Detox, Expo, iOS, React-Native, TypeScript

Merdeka Mengajar (NextJS, Playwright)

2023 - 2024

A Progressive-Web-App to help teachers all accross Indonesia, providing upskilling courses, teaching materials, community, etc. Based on NextJS.

I was promoted in the early 2023 to a Full-stack Engineer position and tasked to help on the web platform. I am currently working on user event tracking, bugfixing, and end-to-end tests.

Technologies : Gitlab, JIRA, NextJS, Playwright, ReactJS, Tailwind CSS, TypeScript

Merdeka Mengajar (Android)

2022 - 2024

A native Android application on Android to help teachers all accross Indonesia, providing upskilling courses, teaching materials, communities, etc. Based on Kotlin, Jetpack Compose, and Jetpack Compose Navigation.

Currently working on its core products :

- Home : homepage dedicated to many of Merdeka Mengajar products

- Ide Praktik : examples of teaching approaches and tools

- Untuk Anda : curated articles, videos, documents

- Pencarian : global search for teaching materials with over 7000 available content

- Profil : profile page for teachers to showcase their achieved certificates, self-pace learning, and portofolios

- In-app browser : a wrapper inside our app specifically engineered to support our PWA platforms with JavaScript bridge interface

Technologies : Android, Android LiveData, Dagger 2, Firebase A/B Testing, Firebase Authentication, Firebase Crashlytics, Firebase Remote Config, Gitlab, Jetpack Compose, Jetpack Compose Navigation, JIRA, JUnit 4, JUnit 5, Kotlin, Kotlin Coroutine, Ktor, Robolectric, ViewModel, WebView

Monika

2022 - Now

An open-source software initiative by Hyperjump Technology. Monika is a command-line interface application based on NodeJS to monitor internet service health.

Currently contributing as one of its maintainers.

Technologies : GitHub, NodeJS, Oclif, Tailwind CSS, TypeScript

Lyfe Pintar

2023

A web app to create online resume, job listing, and job application.

- Launched MVP in 3 months time

- Backoffice report with Looker Studio

- Search job listing with Algolia Search

Technologies : AirTable, Algolia Search, Azure DevOps Boards, Azure DevOps Repository, Azure DevOps Repository, Firebase Authentication, Firebase Cloud Firestore, Firebase Cloud Storage, Firebase Emulator, Firebase Hosting, Firebase Remote Config, Google Analytics, Google BigQuery, Google Looker Studio, ReactJS, Tailwind CSS, TypeScript, TypeScript

Credikini

2021

A Buy-Now-Pay-Later MVP native android application.

Created MVP from scratch in 3 months with features below :

- Registration, login, logout

- KYC form

- Transactions

Technologies : Android, Android ViewModel, AndroidX CameraX, AndroidX Navigation, Kotlin, LiveData

Aruna Heroes

2020 - 2021

A native android application working as a client for Odoo ERP.

- Launched MVP from scratch in 3 months (offline-first application, unit tests, continous integration, app authentication, purchase order, manage contacts)

- Offline-first app engineered using Android Work Manager and Android Room Database

- Led and grew team from 2 android engineers to 4 android engineers

- Enforced team culture to maintain continous integration, unit tests, and code review

Technologies : Android, Android LiveData, Android Room Database, Android ViewModel, Android Work Manager, AndroidX Navigation, Gitlab, Gitlab Pipeline, JIRA, Kotlin, Moshi JSON parser, Retrofit

Cakap Android

2018 - 2020

A native android application for Edtech company to schedule and learn new language in video call and chat.

- Migrated Java codebase to full Kotlin

- Worked closely with Vietnamese team in English

- Created full-featured chat with Qiscus SDK

- Created full-featured payment with Midtrans SDK

- Led and grew team from 2 android engineers to 4 android engineers

- Managed android engineers' workload

Technologies : Agora Video Call SDK, Android, Android LiveData, Android ViewModel, Gitlab, Gson JSON parser, JIRA, Kotlin, Qiscus Chat SDK, Retrofit, RxJava 2

About Me

Hi there! I'm Sam, and I love building things. With 8 years in the field, I've grown into a Full Stack Engineer who specializes in Android and web development. My toolkit includes Kotlin, TypeScript, NextJS, and Firebase - tools I use to craft fast, efficient solutions that actually work.

On the Android side, Kotlin is my go-to language. I dig how expressive it is and how it helps me write cleaner code. When I'm working on web projects, I rely on TypeScript to keep things organized and scalable.

For web development, ReactJS is my framework of choice - it just makes sense when you are working with React on the frontend and need solid server-side capabilities. When I need to get an MVP out quickly, Firebase is my secret weapon.

Speaking of Firebase, I have put pretty much every Firebase tool through its paces - from A/B Testing and Remote Config to Authentication and Cloud Firestore. These tools are fantastic for getting features up and running quickly, especially when you are building that crucial first version of a product.

I'm also well-versed in Firebase's other offerings - Crashlytics for keeping tabs on app stability, Cloud Storage for handling files, Cloud Messaging for notifications, and Cloud Functions for those special backend needs.

One thing I take pride in is writing code that others can understand and maintain. I believe in solid documentation - not just because it's good practice, but because I have been on the other side, trying to figure out undocumented code. Trust me, future developers will thank you for good docs!