🔊
📶
🔋 100%
⚙️
Projects GNOME Document Viewer
Software GNOME Software Center
Terminal GNOME Console
Practice Iotas
Email GNOME Geary
About GNOME Tour
Stats System Monitor
Music GNOME Audio Player
Photos GNOME Image Viewer
Links GNOME Web
Dark Mode
Show Apps
GNOME Tour
About
GNOME Geary
Email
GNOME Web
Links
GNOME Audio Player
Music
GNOME Image Viewer
Photos
Iotas
Practice
GNOME Document Viewer
Projects
GNOME Software Center
Software
System Monitor
Stats
GNOME Console
Terminal
Notion
Notion
PSU Tier List
PSU Tier List
PVE Planner
PVE Planner
About
👋
Hello, I'm Hendra
I'm a generalist software engineer proficient in mobile and full-stack development.
🚀
Explore My Work
I'm a somewhat active open-source contributor, check out my projects on GitHub to see what I've been working on.
🖥️
Me ❤️ GNOME
This website is a love letter to GNOME, the best desktop environment.
Email
Links
Music
🎵
Simple Hip Hop Beat
GenXBeats
0:00 0:00
Photos
Practice
LeetCode
Let's Grind LeetCode!
Algorithms and data structure
HackerRank
Let's Grind HackerRank!
Domain-specific expertise
Projects
Android libraries
Java libraries
Gradle plugins
Applications
Website themes
Others
OSS contributions

Android Libraries

SubtitleCollapsingToolbarLayout

GitHub • Website

A carbon copy of CollapsingToolbarLayout with subtitle support. During collapsed state, the subtitle would still appear as Toolbar's. There should be no learning curve because it works just like CollapsingToolbarLayout. Supports Material Design 3 styling.

But because this library uses restricted APIs and private resources from Material Components , there are a few caveats:

  • Only safe to use with the same version of material components.
  • Deceptive package name.

CountryPicker

GitHub • Website

Material design components to pick country.

  • Emoji country flags to achieve lowest library size, with options to customize.
  • Search box, locate button, and fast scroller.

PinView

GitHub • Website

Customizable pin input field with a jumping cursor.

  • Inflate custom EditText from XML.
  • Tracks user input and state changes.

SocialView

GitHub • Website

TextView and EditText with hashtag, mention, and hyperlink support.

  • Pre-loaded with default views, but also installable to any custom view.
  • Display hashtag and mention suggestions as you type.

Java Libraries

JavaPoet DSL

GitHub • Website

Lightweight Kotlin extension of JavaPoet, providing Kotlin DSL functionality and other convenient solutions.

  • Full of convenient methods to achieve minimum code writing possible.
  • Options to invoke DSL. For example, methods.add("main") { ... } is as good as methods { "main" { ... } }. Scroll down for more information.
  • Smooth transition, existing JavaPoet native specs can still be configured with DSL.

KotlinPoet DSL

GitHub • Website

Lightweight Kotlin extension of KotlinPoet, providing Kotlin DSL functionality and other convenient solutions.

  • Full of convenient methods to achieve minimum code writing possible.
  • Options to invoke DSL. For example, functions.add("main") { ... } is as good as functions { "main" { ... } }. Scroll down for more information.
  • Smooth transition, existing KotlinPoet native specs can still be configured with DSL.

KtFX

GitHub • Website

Written in spirit of anko, it aims to make JavaFX app development less painful with the help of Kotlin technologies.

  • Full of helpers for common JavaFX operations.
  • Write dynamic layout with Kotlin DSL.
  • Use coroutines directly from JavaFX API.

Gradle Plugins

Localization Gradle Plugin

GitHub • Website

An write-once-run-anywhere approach to localization in multiple platform project.

  • Writes ResourceBundle for Java and XML values for Android.
  • Localization data can be placed within Gradle script or CSV file.

Packaging Gradle Plugin

GitHub • Website

Gradle plugin that wraps JARs into native bundle for Windows, macOS, and Linux.

  • Complete customization for each distribution.
  • Pack multiple distributions with a single task.

Pages Gradle Plugin

GitHub • Website

Static webpages generator for GitHub pages.

Applications

OpenPSS

GitHub • Website

Point of Sale software specifically designed for offset and digital printing business. Powered by JavaFX and Kotlin frameworks. Heavily under development.

  • Multi-language: currently supports English and Bahasa.
  • Priviledged-based employee management, certain actions can only be done by admins.

Plano

GitHub • Website

Simple app that efficiently calculate paper usage for commercial printing use, available as desktop and Android app.

  • Multi-language (English and Bahasa Indonesia).
  • Dark mode on all platforms.

Prepress Adobe Scripts

GitHub • Website

Collection of Illustrator and Photoshop scripts to automate repetitive tasks and procedures of preparing final print layout.

  • Multiple languages.
  • Dark theme support.

Website themes

Cayman Dark Theme

GitHub • Website

Cayman is a clean and responsive theme, this fork adds dark mode support.

Materialist Theme

GitHub • Website

Modernist is a theme that appears in GitHub Pages, this fork applies Material3 design principles.

Minimal Dark Theme

GitHub • Website

Minimal is a simple single page theme, this fork adds toggleable dark mode button.

Others

Markdown PDF Styles

GitHub • Website

Stylesheets for VSCode Markdown PDF.

  • Use preset styles:
    • Classic
    • Academic
    • Others
  • Or customize using barebone styles:
    • Font
    • Text
    • Indent
    • Spacing
    • Column
    • Others
  • Optional headers & footers:
    • Webpage
    • Homework

Rulebook

GitHub • Website

Third-party rules for JVM and Python lint tools, meant to be used in conjunction with official ones. Most of the rules are opinionated personal code styles. However, some already exists in other linters, providing the same experience across multiple languages.

Language Linter
Java Checkstyle
Groovy CodeNarc
Kotlin Ktlint
C/C++ Cppcheck
Python Pylint
JavaScript ESLint
TypeScript typescript-eslint

OSS contributions

Ktlint

GitHub • Website

An anti-bikeshedding Kotlin linter with built-in formatter.

  • No configuration required
  • Built-in Rule sets
  • Built-in formatter
  • .editorconfig support
  • Built-in formatter
  • Several built-in reporters: plain, json, html and checkstyle
  • Executable jar
  • Allows extension with custom rule sets and reporters

Android KTX

GitHub • Website

A set of Kotlin extensions for Android app development. The goal of Android KTX is to make Android development with Kotlin more concise, pleasant, and idiomatic by leveraging the features of the language such as extension functions/properties, lambdas, named parameters, and parameter defaults. It is an explicit goal of this project to not add any new features to the existing Android APIs.

Software
Stats
Skills Utilization
Kotlin & Android 92%
Python 83%
TypeScript 77%
UI/UX 54%
C/C++ 26%
🎮
CS2 Performance
Skill Level
Noob
Hours Played
247
K/D Ratio
0.78
Rank
Silver II
🔧
Tools Used
IDEA Expert
Ollama & OpenCode Advanced
Figma & Adobe CC Intermediate
Stack Overflow Visits 16%
Terminal
-` user@archlinux .o+` ----------------- `ooo/ OS: Arch Linux x86_64 `+oooo: Host: Portfolio Desktop `+oooooo: Kernel: 6.7.2-arch1-1 -+oooooo+: Uptime: 2 hours, 34 mins `/:-:++oooo+: Packages: 1247 (pacman) `/++++/+++++++: Shell: bash 5.2.26 `/++++++++++++++: Resolution: 1920x1080 `/+++ooooooooooooo/` DE: GNOME 45.3 ./ooosssso++osssssso+` WM: Mutter .oossssso-````/ossssss+` WM Theme: Adwaita -osssssso. :ssssssso. Theme: Adwaita [GTK3] :osssssss/ osssso+++. Icons: Adwaita [GTK3] /ossssssss/ +ssssooo/- Terminal: gnome-terminal `/ossssso+/:- -:/+osssso+- CPU: Intel i7-12700K (20) @ 5.0GHz `+sso+:-` `.-/+oso: GPU: NVIDIA GeForce RTX 4070 `++:. `-/+/ Memory: 3847MiB / 32768MiB .` `/ ████████████████████████