Software Engineer

Alfred SN

I build systems that have to keep working after release, and put machine learning in them where it earns its place.

Medan, Indonesia

01

About Me

Software is judged after release, not at the demo. I build for the state a system is in six months later, when the person watching it has moved on to something else.

Most of what I work on runs where the network is not a given, so synchronization, local persistence and recovery shape the whole system rather than getting added at the end. I follow a problem across the stack instead of handing it over at the boundary - a broken screen is often a sync rule, a schema decision or an API contract.

I treat machine learning as an engineering tool rather than a headline: face verification built on FaceNet embeddings inside a production authentication flow, on-device inference where the data could not leave the device. It sits behind the same boundaries as any other dependency, and it has to survive the same failures.

02

Stuff That I Built

Two projects, and the constraint that shaped each one.

01product2024

Connect by BCA

An Android banking application built so that core financial services stay usable for people who rely on a screen reader.

Accessibility was the product requirement rather than a pass at the end. The application applies WCAG principles throughout, with TalkBack support and layouts that hold up across a range of accessibility needs - which constrains navigation, focus order and labelling from the first screen onward, not the last.

Written in Kotlin and structured with MVVM and Clean Architecture, so presentation, domain and data stay separated and accessibility behaves the same way on every screen. Built as the capstone of the SYNRGY Academy Android intensive.

Role
Android Developer - application development and accessibility

Core banking functions remain usable for people navigating by screen reader.

  • Kotlin
  • Android
  • MVVM
  • Clean Architecture
  • WCAG

02product2024

Giku

A nutrition application that runs machine learning on-device to help surface childhood stunting risk earlier.

Childhood stunting is easiest to act on early and hardest to notice early. The application tracks child growth and turns that data into risk prediction and nutrition guidance, so a pattern that would take a clinic visit to spot is visible to a parent between visits.

The model runs on-device with TensorFlow Lite and sits behind the same boundaries as the rest of the data layer, so inference is a dependency the application can lose rather than a step it cannot proceed without. Written in Kotlin with MVVM and Clean Architecture, as the capstone of the Bangkit Academy mobile cohort.

Role
Team lead - application architecture and ML integration

On-device inference, so a growth risk signal does not depend on a network connection.

  • Kotlin
  • Android
  • TensorFlow Lite
  • Clean Architecture

03

My Experiences

  1. Doiscode Technology

    Software Engineer · Medan, Indonesia

    Deliver and maintain production software across the application, backend integration, data and infrastructure layers - from requirements through deployment, and through the failures that surface afterwards.

    Responsibilities

    • Engineer offline-first architecture and synchronization for production systems, keeping local and backend data consistent under intermittent connectivity
    • Design business workflows that span application modules, local persistence, API integration and operational data processing
    • Diagnose and resolve production failures across application logic, synchronization, integrations, local databases and runtime behaviour
    • Own the full lifecycle: translate requirements into technical solutions, implement, integrate, and maintain the result after release

    Shipped

    • Built an ML-based face verification system on FaceNet embeddings, putting machine learning inside a production authentication flow
    • Integrated VPN-secured communication so applications could reach restricted backend services safely
    • Improved system stability by resolving production failures across the application, synchronization and data layers
  2. Doiscode Technology

    Software Engineer Intern · Medan, Indonesia

    Delivered a master data management application for an analytical lab, turning operational requirements and UI designs into a working React Native application.

    Responsibilities

    • Develop core application workflows and data interactions for the day-to-day operational needs of lab staff
    • Establish reliable data flow between application components and project data so behaviour stays consistent across the application
    • Work with senior engineers across architecture, implementation and feature refinement

    Shipped

    • Delivered a master data management application for an analytical lab, from operational requirements and UI designs through to a functional application
    • Moved into a full Software Engineer role at the end of the internship
  3. Bangkit Academy led by Google, Tokopedia, Gojek & Traveloka

    Mobile Development Cohort · Jakarta, Indonesia

    Led a development team through the design, implementation and delivery of an Android application integrated with machine learning capabilities.

    Responsibilities

    • Integrate machine learning into the application so it drives the core user workflow rather than sitting beside it
    • Coordinate technical implementation across the team and translate requirements into features
    • Structure the application in Kotlin with MVVM and Clean Architecture to keep responsibilities separated

    Shipped

    • Delivered an ML-integrated mobile application as the cohort capstone
    • Held technical direction while working with team members from different backgrounds
  4. SYNRGY Academy

    Android Development Intensive Bootcamp Cohort · Jakarta, Indonesia

    Built an Android capstone application focused on accessibility, applying WCAG principles to improve usability for users with accessibility needs.

    Responsibilities

    • Build an Android capstone application with accessibility treated as a core requirement rather than an afterthought
    • Apply Kotlin, MVVM and Clean Architecture to structure the application and maintain clear separation of responsibilities
    • Practise CI, Agile and Scrum workflows throughout the development process

    Shipped

    • Delivered an accessible Android capstone application built around WCAG principles

04

From The Blog

A few things I've been thinking about lately.

The first posts are still being written.

Long-form notes on the systems on this page - the decisions, the parts that broke, and what I would do differently - are going up on the blog.

05

Connect

Have something interesting to build? Let's talk.

Or send a message

Prefer email? contact@alfredsn.com reaches me directly.