The route
Four roles on one line, no gaps.
–
Shopify Admin
PT In Fashion
Catalog, collections, content and theme settings on a live commercial Shopify store.
Then my first production Liquid, HTML, CSS and JavaScript. Where the code started.
Everything in this role: Shopify Admin
- Product, collection and content operations on a live commercial store, plus theme configuration through the Shopify admin
- First production Liquid, HTML, CSS and JavaScript — the beginning of everything above
–
Lead Graphic Designer
PT In Fashion
I owned the e-commerce visual system across storefront, campaign and product imagery.
I stayed design lead alongside the web role through mid-2025.
Everything in this role: Lead Graphic Designer
- Owned the e-commerce visual system across storefront, campaign and product imagery
- The habit carried forward: I design the interfaces of the systems I build myself
–
Lead Web Developer
PT In Fashion — wooden-ships.com
I led web development for a live Shopify storefront: theme and Liquid work, Admin API integrations and release QA.
I worked with US stakeholders and vendors 12–13 hours behind Bali.
The storefront chapterEverything in this role: Lead Web Developer
- Theme and storefront development in Liquid — Online Store 2.0 sections and templates — on a store where a bad deploy is a revenue incident rather than a rollback
- Owned release management and storefront QA: verify against real orders, keep destructive paths behind confirmation, and record in writing what was deliberately not changed
- Debugged the seams where the store meets everything else — Admin GraphQL query cost, OAuth token lifetimes, third-party app figures that disagreed with the store's own data
- Defined the slow-seller decision engine: translated the merchandising team's flowchart into decision rules an engineer could implement, reviewed the decision logic and the write-back guard before it touched a sheet people use daily, and directed QA and rollout
- Wrote operator-facing runbooks so each tool could be handed over rather than owned by its author
- Coordinated across a 12–13-hour gap with US East Coast stakeholders and third-party vendors
– Present
AI & Automation Project Manager, Now
PT In Fashion
I decide which internal systems get built, then direct the engineers who build them.
I still build the hard parts hands-on, like the HR and statutory payroll platform, directing Claude Code against my own specs.
The systemsEverything in this role: AI & Automation Project Manager
- Decide what gets built: an operational problem arrives from Accounting, HR, merchandising or production planning as a complaint, and leaves as a specified system with a written rule, a named owner and a verification gate
- Direct the engineers building the company's automation systems — requirements, architecture and integration review, and sign-off on the decision logic before any of it reaches production
- Directed the commerce data warehouse my team engineered: one written definition of a product sale, held in a database view every sales endpoint reads
- Set the requirement behind the ads-review pipeline my team engineers and maintains: pause thresholds live in one config file feeding engine, templates and prompt, never in a reviewer's head
- Review the guardrails that stop a language model pausing an ad the rules engine did not flag, and label every keep it argues for as an override, then direct QA and operational rollout
- Built the HR and payroll platform hands-on, directing Claude Code against my own specs — a 102-model domain schema at the August 2026 cutover and an append-only attendance ledger — then ran that cutover with the legacy workbook retained as the reconciliation reference; an engineer on my team now helps develop it, and every change needs my review
- Interpreted Indonesian statutory payroll rules with Accounting and HR, then encoded them as separately versioned engines in exact decimal arithmetic
- Designed the payroll platform's release pipeline under a written non-destructive invariant: every merged change ships as one immutable image through staging and smoke tests, payroll, leave, database and access-control changes reach production only when I promote that exact image, and an integrity compare after each release rolls it back if any protected data moved
- Built the self-serve order export that took a developer out of a routine planning request — warehouse attribution rules and a deliberately conservative stock verdict — which my engineers now develop further
- Directed product page automation, which my team engineered: complete storefront product pages from the internal workbooks, the five production types I defined for both the create and the update path, and my rule that inventory is matched to each variant by SKU rather than by position
- Built Shopify tools for the store in September and October 2026, directing Claude Code: Image Order Sync, live on the store since 23 Sep and in its second version since 1 Oct; an inventory sync, live since 30 Sep on every product page opted in to it; Price Sync, live since 4 Oct, which sets one full price per style and one sale price per sale colour on every page that sells them; and a shoppable-video app, on an unpublished test theme and not launched as of 9 Oct
- Changed the live storefront theme, directing Claude Code: variant-aware product pages, whose sale-price title is live for all shoppers since 25 Sep and whose per-variant blocks have been in use on real product pages since 2 Oct, then seven October changes, each read back from the live theme after its push, among them a look per colour on the sale and nearly-gone templates, sale descriptions, hidden sizes and a quick-buy guard for personalised products
- Built a first-party loyalty platform, directing Claude Code, while the decision on the loyalty vendor is open: a points ledger, tiers and single-use discount rewards, reconciled in shadow mode against a scheduled backup of the vendor's data, which proves the import, not the points engine; not launched
- Built dry-run-by-default tooling for a ~1,050-image seasonal catalog drop across 166 products, in place of binding each image to its product by hand
- Still hands-on on the storefront: a Liquid search-relevance fix live on the production theme, and a Shopify metafield backfill whose dry run is the default
- Most of what I build hands-on, I build with AI tools — Claude Code for the code and ChatGPT alongside it, against written specifications — while owning the architecture, the rule interpretation and the release decision; Higgsfield makes the AI video for the store's Shopify content
- Ran technical screening for engineering hires: designed a scored three-day take-home trial and the answer key that grades the response to each seeded defect, not just the value, and directed the build of its synthetic dataset generator
What carried through every role: before anything deletes or overwrites real data, you can see exactly what it will do.
The degree
A law degree, put to work.
Bachelor of Laws (LL.B.), Universitas Muhammadiyah Yogyakarta.
Regulated software is rule-reading before it is code: find the operative rule, then its exceptions, then write the reading down.
Where it binds
- Statutory payroll
- Social-security contributions
- Employee-data access
One advantage in one class of problem. It does not make me a lawyer.
How I work
Written down first. The go-live call is mine.
Specify
Before anyone builds, I write down the rules, what the system must handle, and the options we turned down.
Delegate
Engineers on my team, and the AI tools I direct, build from that written plan.
Decide
I check the logic and the written checks it has to pass, then decide when it goes live.
The AI I work with
Most of what I build, I build with AI. Getting good work out of it (a clear brief, a hard review, knowing when an answer is wrong) is a skill I keep practising.
- Claude Code
- Most of my code, written against the specifications I set.
- ChatGPT
- Help on the same work, alongside it.
- Higgsfield
- AI video for the store's Shopify content.
The AI boundary
In the ad-review system, fixed rules flag every pause; AI explains each one and may argue to keep an ad, never to pause one. Where that line sits is my call.
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.
Off the clock
Tennis, football, the gym most days, and films, watched closely. Some of it gets filmed and posted as @jdenandro on Instagram, opens in a new tab. Based in Bali, working in WITA (UTC+8).
Creator
@jdenandro on Instagram
- followers
- 12.1K
- views
- 8.2M
- accounts reached
- 4.6M
- interactions
- 1.1M
Most-viewed reels
2.4M views, opens Instagram in a new tab
2.3M views, opens Instagram in a new tab
2M views, opens Instagram in a new tab
222.4K views, opens Instagram in a new tab
129.2K views, opens Instagram in a new tab
79.6K views, opens Instagram in a new tab
Live from the Instagram API, as of 10 Oct 2026, 00:43 WITA. Followers are the current count; views, reach and interactions cover the last two years, the longest window Instagram reports. Reels are ranked by views among the 10 most-liked.






