The world · eight stops, morning to night

Ride the line to Fuji

The city as a page: the same eight stops, with every line, project, credit and link the street holds.

  1. Stop 1 · Morning

    Arrival station

    Who Denandro is, and how this city works.

    Where the line starts. Step off the train, read the route board for every stop, and go through the gate.

    Morning. I'm Denandro Yusuf, AI & Automation Project Manager, based in Bali.

    This line runs eight stops to a deck facing Fuji, past the work and who built it.

    Denandro Yusuf

    Two posters for stops down the line: the shop street in light rain, and Fuji by moonlight.

    Stop by stop, the line runs through automation, shops, a team studio, demos, a creator corner, a garden, then Fuji.

    Eight stops, morning to night. The last is a viewing deck facing Fuji, where you can get in touch.

    The man you walk as works from Bali, Indonesia, on WITA time.

    Stationmaster

    Past the gate, the line runs on to the Signal district: automation, with a person in the loop.

  2. Stop 2 · Late morning to golden hour

    Signal district

    Automation: decision logic with a person in the loop.

    Ads automation under the line: rules flag the pauses, and a model writes the recommendation for each ad set.

    Every ad leaves with a status, the rules that fired, and its product's coverage.

    Moving a cap is a config edit, never a code change.

    The guardrails and the prompts are reviewed by a person before release.

    The rules flag the pauses. A model writes the recommendation for each ad set.

    Near a shopping holiday, a flagged ad can keep running, if three checks all hold.

    No pause for an ad younger than seven days. Too young to have signal.

    Signal operator

    Production pipeline

    Ads Review Automation

    A weekly ads review: rules from one config check every ad, then a model writes the recommendation.

    Rules flag each pause; a model explains, and may argue to keep.

    Primarily engineered by Prada Dipa — LinkedIn profile, opens in a new tab, maintained by Hady Satya. I defined what it had to do, reviewed the implementation, and took it through QA and rollout.

  3. Stop 3 · Golden hour to dusk, light rain

    Commerce street

    Shopify work, behind the shop windows.

    Along a canal from golden hour into dusk rain: release QA in a workshop, a live search fix, a metafield backfill at the stationer's.

    Release QA on a live store: verify against real orders, and write down what was deliberately not changed.

    A bad deploy on this store is a revenue incident, not a rollback.

    A storefront change shipped on 19 August 2026: six commits, written entirely in Liquid.

    One storefront, three years

    Live

    Storefront Search Relevance Fix

    Shoppers searching “lobster” got products with no lobster. I fixed search so results carry the words they typed.

    Stops storefront search returning products that never mention the query.

    Built by me — diagnosis, implementation, release QA.

    Search ignores punctuation on both sides: type “hey lobster” in the window and HEY LOBSTER! comes back.

    The filter ships on, as a labelled theme setting: switching it off is a visible choice, not a code change.

    Tag matches still work. Search a team or a colourway and the tagged items stay.

    The same filter runs on search, predictive search and suggestions.

    Shopkeeper

    Complete

    Customer Birthday Backfill

    I moved birthday months out of free-text customer notes into metafields. The dry run is the default.

    Moved birthday months from free-text customer notes into structured Shopify metafields.

    Built by me — implementation, operational run.

    A note only counts if it says “birthday” first. “Ordered in March” is not a birthday.

    It only writes where the field is empty, so running it twice changes nothing.

    Every customer gets a row in the report: what it did, or what it would do.

    Stationer
  4. Stop 4 · Dusk, after the rain

    Team studio

    Engineering direction, and who built what.

    A studio under the tracks at dusk. Each desk carries a nameplate: who engineered or maintains its system. The review table shows how requirements become systems.

    Requirements, architecture and integration review, guardrails, QA and rollout: that is the order work moves here.

    Nothing reaches production here until someone has signed off the decision logic.

    Each desk's nameplate says who engineered the system, and who keeps it running.

    Write the spec first: exact shapes and rule ordering let the implementation run in parallel.

    Studio host

    Internal production

    Slow Seller Decision Engine

    Merchandising requirements became system direction, with the decision logic and implementation reviewed and the rollout directed.

    Keep, sell out, mark down or drop: one recommendation per style, from live sales.

    Primarily engineered by Kirei Kharisma Handayani — LinkedIn profile, opens in a new tab. I defined what it had to do, reviewed the implementation, and took it through QA and rollout.

    Hady Satya

    Maintains the system · Ads Review Automation

  5. Stop 5 · Blue hour

    Project arcade

    Ten projects, one stall each: a demo or case study behind every one.

    Ten lit stalls, one project each. Open a stall for its demo or case study; Back returns you to it.

    In daily use

    Agent Session Observability

    A local macOS dashboard for every Claude Code session: nothing instrumented, nothing leaves the machine.

    What each local AI coding session is doing, how far along, and its cost.

    Built by me — design, build contract, implementation, directing AI coding agents.

    Retired · replaced by DENAVUM

    Bridge

    Stalled work is made to look wrong, and nothing is marked shipped until five handover items are ticked.

    A local-first work tracker built around one question: what is the next action?

    Built by me — design, implementation, directing Claude Code for its September 2026 additions.

    Ten stalls here. Twenty-two of the thirty projects have a demo; all are on the Work page.

    Where a project handles real employee, customer or ad-account data, its demo runs on synthetic records.

    Each demo says what it is: production code, a hand port, an offline artefact, a rebuild or an explainer.

    Stallholder

    ~300-employee target · phased rollout

    PeopleOS

    Built to replace a 291-column master workbook, paper leave forms and a macro-driven payroll spreadsheet.

    One auditable system of record for HR, attendance and statutory payroll.

    Built by me — architecture, domain and rule design, implementation, statutory rule interpretation, release decision, directing Claude Code against written specs, review of every later change; developed further by Prada Dipa — LinkedIn profile, opens in a new tab.

    Foundation shipped · not piloted

    CV Screening Pipeline

    Identifiers are redacted twice before anything crosses a border, and it never makes an accept or reject decision.

    Scores every CV against its job description; a person makes every decision.

    Engineered by Prada Dipa — LinkedIn profile, opens in a new tab and me. My part — implementation, technical & product direction, process design, the data-protection rules, including the two-pass redaction, review and QA.

    Internal production

    Slow Seller Decision Engine

    One button pulls the store's last 14 and 30 complete days of Shopify sales into the merchandising sheet.

    Keep, sell out, mark down or drop: one recommendation per style, from live sales.

    Primarily engineered by Kirei Kharisma Handayani — LinkedIn profile, opens in a new tab. I defined what it had to do, reviewed the implementation, and took it through QA and rollout.

    Production

    Product Page Automation

    One or more style-colours go in; a complete product page comes out, with sizes, SKUs, prices and images.

    Builds complete storefront product pages from the internal source-of-truth workbooks.

    Engineered by Luthfi Aditya — LinkedIn profile, opens in a new tab. I defined what it had to do, reviewed the implementation, and took it through QA and rollout.

    Internal production

    Order Export for Production Planning

    Each line item is tagged to the warehouse it will actually ship from, with a conservative stock verdict.

    Planners export Shopify orders themselves, each line tagged to its shipping warehouse.

    Built by me — design, directing Claude Code from specs, the warehouse-attribution rule and the conservative stock verdict, requirements with the planning team, deployment and the handover to planners; developed further by Prada Dipa — LinkedIn profile, opens in a new tab and Luthfi Aditya — LinkedIn profile, opens in a new tab.

    Production

    Wholesale Order Platform

    Each order is validated, rendered to a PDF, signed, and routed to the planning team to accept or decline.

    Replaced an Excel order form with validated, signed orders on live Salesforce data.

    Built by me — architecture, implementation, the standing rules — no full card number stored, logged or rendered; every Salesforce call server-side; order minimums enforced on the server, QA and the rollout to the reps and the planning team.

    Production

    Commerce Data Warehouse & Dashboard

    One written definition of a product sale, held in a database view that every endpoint reads.

    One nightly-synced warehouse and dashboard instead of five admin UIs.

    Engineered by Prada Dipa — LinkedIn profile, opens in a new tab and Luthfi Aditya — LinkedIn profile, opens in a new tab. I defined what it had to do, reviewed the implementation, and took it through QA and rollout.

    Complete · decision pending

    Loyalty Program Cost Analysis

    The licence fee on the invoice turned out to be the smaller part of what the program cost.

    I reproduced a loyalty vendor's numbers from raw data, then found the real cost.

    Built by me — analysis and recommendation, reproduced the vendor's figures from raw data, built the daily sync, wrote the vendor letter setting the study terms.

  6. Stop 6 · Evening

    Creator corner

    The human side: sport, film, and what gets posted.

    A small corner under the line: a gym lit over a sports shop, a film-poster stall, and a camera on a tripod.

    Off the clock: tennis, football, the gym most days, and films, watched closely.

    About

    Some of it gets filmed and posted as @jdenandro. This corner shows no feed, only the profile link.

    Instagram profile (opens in a new tab)
  7. Stop 7 · Night, fireflies

    Riverside garden

    The career so far, one stepping stone per role.

    Four stepping stones cross a stream by the river at night, one for each role, oldest first.

    Shopify Admin, Jul 2023 – Mar 2024: first production Liquid, HTML, CSS and JavaScript, on a live store.

    Lead Graphic Designer, Mar 2024 – Sep 2024: owned the e-commerce visual system across storefront, campaign and product imagery.

    Lead Web Developer, Sep 2024 – Nov 2025: theme and storefront development, integrations, and release QA.

    AI & Automation Project Manager, Nov 2025 – Present: directs the engineers building the company's automation systems.

    About

    Three years on one live storefront: administering it, writing it, and directing the systems that read from it.

    Each stone carries both halves: the hands-on work, and the direction attached to it.

    The storefront did not stop. A change to it shipped on 19 August 2026, written entirely in Liquid.

    Gardener
  8. Stop 8 · Night, moonlit

    Fuji overlook

    Contact: the email, the form, and his local time.

    The end of the line: a viewing deck facing Fuji over the lake, with the email, the brief form and his local time.

    Last stop. Mail for him goes to hello@jdenandro.com.

    He is based in Bali, working in WITA (UTC+8).

    He turns operational problems into working systems: Shopify, APIs, automation and internal tools.

    The route board by the steps shows every stop, back to Arrival station.

    Deck keeper

    Fuji, far off across the lake. Stop 8, night, moonlit: the end of the line.

    Contact: the email, the form, and his local time, at the pavilion desk.

    Write to hello@jdenandro.com, or send a brief with the form.

    Write a brief

Leave the world · Work · Contact