Syahrul Bhudi Ferdiansyah – Portfolio

SYAHRUL

Bhudi Ferdiansyah

I'm a

Web Developer

About Me

I'm a software developer focused on building reliable full-stack applications, with a particular interest in backend systems. Over the past two years, I've worked with TypeScript, Laravel, and Go on the backend, and Next.js and TanStack Start on the frontend.

Comfortable in Linux environments, I learn quickly, adapt to complex projects, and enjoy contributing to collaborative teams while continuing to sharpen my technical skills.

Projects

Dearly

3

Web Application

Full-Stack Developer

A private daily diary for composing dated memories on a freeform canvas with rich text, photos, stickers, emoji, and shapes.

Paste Preview

1

Web Application

Full-Stack Developer

A lightweight code and Markdown sharing app that turns a paste into a public preview link with syntax highlighting and automatic expiry.

Anxiety Classification

2

Research Web Application

Fullstack Developer & Machine Learning Engineer

A facial micro-expression analysis system that classifies anxiety from video using POC-ABS features and TabR. It detects 68 facial landmarks, analyses eye-eyebrow and mouth regions, and highlights anxiety events on a synchronized video timeline.

Open Source

Merged contributions to tools I use.

04 MERGED
  • 01zunoStopped forcing GTK window decorations on Linux so the app-drawn title bar is used, and added a Linux-only "Show in system media controls" toggle so the browser mediaSession bridge can never double up with SMTC or MPNowPlayingInfoCenter on Windows/macOS.PRIssue
    View description
    • Removed the Linux decorations override and defaulted native window controls off so the app's own title bar is used.
    • Hid the app-drawn window buttons on tiling compositors (niri, sway, hyprland) where the WM owns window management, while GNOME/KDE keep close and minimize reachable.
    • Added a Linux-only media-session toggle and gated the browser mediaSession bridge to Linux, since WebView2 and WKWebView already bridge it to SMTC and MPNowPlayingInfoCenter on their own.
    • Cleared navigator.mediaSession metadata, playback state, and action handlers whenever the bridge is disabled so no duplicate now-playing entry survives.
    459
  • 02plannotatorFixed a Pi browser-session lifecycle bug where abandoned reviews kept remote port 19432 occupied, causing later annotation and review commands to fail with EADDRINUSE.PRIssue
    View description
    • Traced the failure from the fixed-port startup path to browser sessions abandoned without a decision.
    • Added tracked browser-session cleanup for tool cancellation and robust HTTP connection draining during server shutdown.
    • Designed the Set-based session registry used by the merged self-preemption flow: stop stale same-process sessions, then retry the failed bind once.
    • Added lifecycle coverage for cancellation, idempotent cleanup, and port-contention recovery.
    7892
  • 03pi-btwMade the Pi BTW side-conversation transcript practical to navigate by adding mouse-wheel, touchpad, and fine-grained keyboard scrolling.PR
    View description
    • Enabled SGR mouse reporting so terminal wheel and touchpad events reach the overlay input handler.
    • Added shared transcript-scroll logic with one-line arrow-key movement and viewport-sized Page Up/Page Down movement.
    • Disabled follow mode when scrolling upward, preserved bounded offsets, and requested an immediate redraw.
    • Restored terminal mouse-reporting state when the overlay closes.
    172
  • 04codemoggerStrengthened Codemogger's SQLite-backed indexing pipeline so cleanup is atomic and embedding work can be processed in controlled batches.PR
    View description
    • Wrapped stale-file and chunk deletion in a transaction with rollback to prevent partially cleaned indexes.
    • Added an optional limit to stale-embedding retrieval, enabling bounded embedding batches for large codebases.
    • Preserved each result's stable chunk key through vector and reranked search results.
    • Kept the existing unbounded retrieval behavior when no batch limit is supplied.
    338

Experience

Work

Ariverse Studio

Software Engineer

Remote
Part-time

May 2026 - Present

Malang, Indonesia

PT Sinergi Informatika Semen Indonesia

Full-stack Developer

Hybrid
Intern

Feb 2025 - Dec 2025

Jakarta Selatan, Indonesia

PT Sthira Teknik Indonesia

Full-stack Developer

Remote
Freelance

Jul 2024 - Des 2024

Daerah Istimewa Yogyakarta, Indonesia

Venturo Pro

Web Programmer/Fullstack

On Site
Contract

March 2026 - Jun 2026

Malang, Indonesia

Oranji

Software Developer

Remote
Part-time

Sep 2024 - Aug 2025

Malang, Indonesia

Education

Politeknik Negeri Malang

Bachelor of Applied Informatics Engineering

2022 - 2026

Malang, Indonesia

SMAN 1 Balongpanggang

Mathematics and Science

2019 - 2022

Gresik, Indonesia

Want to Collaborate?

Let's Have a Chat

Feel free to reach out to me if you have any questions, want to collaborate on a project, or just want to chat. I'm always open to new opportunities and connections.