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.

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.
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.
Past the gate, the line runs on to the Signal district: automation, with a person in the loop.
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.
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.

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 yearsLive
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.
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.
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.
Kirei Kharisma Handayani on LinkedIn (opens in a new tab)
Primary engineer · Slow Seller Decision Engine
Prada Dipa on LinkedIn (opens in a new tab)
Primary engineer · Ads Review Automation
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

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.
~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.
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.
AboutSome of it gets filmed and posted as @jdenandro. This corner shows no feed, only the profile link.
Instagram profile (opens in a new tab)
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.
AboutThree 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.

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.
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





