Skip to content

Software Engineer & IT Consultant

Sendy Hartanto

I help businesses work faster and more smoothly, without forcing your team to change the way it already works, because every existing process is there for a reason. I complement and improve it: from designing the solution and building the app to keeping the system running reliably on the server. I'm currently available for freelance projects and consulting.

My Services

Web apps & internal systems

Warehouse, point-of-sale, ordering, and reporting dashboards, all built around how your team works, not the other way around.

Integration & automation

Connecting marketplaces, payment gateways, and the apps you already use, so data no longer gets copied by hand.

Servers & migration

Server setup, migrations without data loss, daily backups, and monitoring that keeps your apps running.

IT consulting

Mapping your business processes, finding the biggest bottleneck, and choosing the most sensible fix, which isn't always a new app.

By the Numbers

20+projects built, from internal company systems to my own products
10+kinds of systems: warehouse, finance, e-commerce, SaaS, e-learning, AI, and more
600K+lines of code written

Experience

Career path

  1. Mar 2022 – present

    Full Stack Engineer

    PT Naturlife Karya Indonesia · Bogor

    Design, build, and maintain the company's internal systems: barcode-based warehouse, product master data, finance & COGS, and multi-channel orders, including migrating every server without losing data.

  2. May 2019 – Oct 2022

    IT Application Specialist & SAP ABAP Developer

    PT Meka Adipratama, Bintraco Dharma Group · Semarang

    Developed and supported SAP S/4HANA (ABAP), Odoo 11, and internal web apps. Started as a Web Developer at PT Carsworld Digital Indonesia, then transferred to this sister company.

  3. Sep 2018 – Apr 2022

    Freelance Web Developer

    Artivisi Tech / iTIVE Media

    Delivered web projects for clients in a role that kept growing: web developer, system analyst, project manager, and eventually IT manager.

  4. Jul – Dec 2018

    Web Developer (Internship)

    PT Loolin Mandiri Indonesia · Bogor

    A six-month industry internship during vocational high school, where I first built web apps for real-world needs.

Technical skills

Laravel & PHPevery day
MySQL & query optimizationevery day
React & TypeScriptoften
API integration (marketplaces & payments)often
Automated testingoften
Linux servers & deploymentsometimes

Education

  1. Bachelor of Information Systems

    Universitas Terbuka

  2. 2016 – 2019

    Software Engineering

    SMK Wikrama Bogor (vocational high school)

What a Colleague Says

Sendy is very good at programming, with strong logical thinking and analysis, and quick to learn the latest technology in IT. Honestly, Sendy is the best candidate for Software Developer, and Sendy has also mastered several areas of IT infrastructure. (translated from Indonesian)

Anton SetiawanIT Senior Manager, PT Meka Adipratama View on LinkedIn

Portfolio

Internal systems a company relies on every day, products I built on my own, and a few experiments. Click a card to see the problem it solved, the results, and screenshots.

WMS

In-house · Jan 2025 – present · used daily

The whole warehouse flow in one system: incoming materials, production, stock per warehouse, marketplace order picking, and outbound goods, with every unit tracked by barcode.

WMS dashboard: stock on hand, barcodes in use, and inventory mix
Warehouse dashboard: today's status on one screen
Product barcode batches with counts for unused, in stock, shipped, and void
Barcodes are printed in batches, then bound to products as goods come in
Sales Velocity page: products grouped into classes A, B, C, and dead stock
Sales velocity: which products sell and which ones tie up capital
Problem

The warehouse handles raw materials and finished goods at the same time, prepares marketplace orders every day, and holds much of the company's capital as inventory. Yet stock was recorded as a single number in the database, so nobody could say for sure which units were still in the warehouse, already shipped, or missing, let alone how much capital was tied up.

Result

The warehouse now runs on one system from end to end: material purchases and production are recorded, stock is tracked per warehouse, marketplace orders are prepared with a picking calculator, and every unit's history can be traced. The dashboard shows today's status, items running low, and how inventory capital is split. Since per-unit barcodes went live in June 2026, physical counts almost exactly match the system (the gap is under 0.5%).

What I built
  • Raw material and finished goods inventory per warehouse, inter-warehouse transfers, and scan-based stock-taking with automatic reconciliation
  • Material purchasing and production, including records of defective, voided, and lost goods
  • Per-unit barcodes from printing, receiving, and shipping to returns and voids, with a Unit Tracking feature to trace each unit's history
  • Picking calculator: marketplace orders totaled per SKU, with bundles broken down into their components
  • Dashboards and reports: items running low, sales velocity (A, B, C, and dead stock classes), and inventory capital mix
  • The heaviest page optimized from 3,418 down to 32 database queries
WED

Own product · Jul 2026 – present · live

Wedding planner, digital invitations with RSVP, and a photo booth in a single app.

TanyaManten home page: plan your big day, hassle-free
Home: budget, guests, and vendors in one place
Catalog of digital invitation themes with style filters
Invitation theme catalog, browsable without signing up
Sogan theme page in traditional Javanese style with an invitation preview on a phone screen
Traditional Javanese theme: Sogan
Sinema theme page with a dark look and an invitation preview
Sinema theme: dark, with full-screen photos
Problem

Couples juggle vendors, budgets, and guest lists across many separate places, and struggle to know whether their budget will hold. Similar products rarely let you try them before signing up.

Result

Budget, guest list, checklist, timeline, and invitations now live in one dashboard. Anyone can browse the invitation theme catalog without signing up, and payment works via QRIS or virtual account.

What I built
  • Planning: detailed budget, guest list (Excel import), checklist, timeline, and rundown
  • Digital invitations in many themes with RSVP, including ones inspired by Javanese, Sundanese, and Minang traditions
  • QR guest check-in on the day, including by staff without an account
  • Digital photo booth: kiosk mode, live wall, and guest uploads
  • Tiered plans with QRIS and virtual account payments
STORE

Own product · Sep 2026 – present · live

An online store for digital products, physical goods, and made-to-order food, with QRIS payments and shipping costs calculated automatically.

SendyShop home page: free shipping promo, digital products, featured categories, and a chat button
Home: categories, promotions, and help via chat
SendyShop catalog with category and product type filters, and product cards with strikethrough prices
Catalog with category and product type filters
Selaras digital product page: Personal or Business license, live demo button, add to cart, and buy now
Digital product: license options, live demo, and download after payment
Problem

Selling through marketplaces means fees, rules that keep changing, and customer data that isn't yours. I needed my own store that could sell digital templates, physical goods, and made-to-order food in one place, without a lot of manual work behind the scenes.

Result

The store is live at shop.sendyhartanto.com. Customers can shop with or without an account, pay via QRIS or virtual account, and shipping anywhere in Indonesia is calculated automatically. Digital products can be downloaded as soon as payment is confirmed, and every customer question reaches the admin as a ticket, so nothing slips through.

What I built
  • Three kinds of products: digital with Personal and Business licenses, physical goods with picture-based variants, and food
  • Automatic payments through Komerce and courier shipping rates through RajaOngkir, no cash on delivery
  • Pre-order batches and group pre-orders for food: order cut-off, quota per menu item, and delivery date
  • Chat with the admin logged as tickets, reviews from verified buyers, coupons, wishlists, and order tracking
  • Admin panel: products, orders, revenue reports for tax, Telegram notifications, and two-step sign-in
PIM

In-house · Jul 2026 – present · live

One source of product data for the web store, warehouse, and marketplaces, with a spreadsheet mode so the team keeps working the way it's used to.

Master Data dashboard: product count, completeness score, data health, and draft queue
Dashboard: data completeness and review queue
Problem

Product data lived in a spreadsheet edited by many people, then imported by hand into other apps. It was error-prone, and over time prices drifted apart from one app to the next.

Result

Every app now reads from the same source, so prices and product data no longer differ from one app to another. Each change goes through a draft → review → publish flow with an audit trail, so it is always clear who changed what. At launch, 458 messy product descriptions were cleaned up before going live on the web store.

What I built
  • Products and bundles with a draft and review flow, audit trail, and recoverable deletes
  • Spreadsheet mode: a directly editable table per brand
  • Sync from Google Sheets with a home-built xlsx reader
  • Upload a whole folder of media at once; reorder images by dragging
  • Code 128 barcodes without external libraries; permissions per role and per brand
FIN

In-house · Jul 2026 – present · used by the finance team

Bookkeeping, spending approvals, financial statements, and cost of goods in one system that reads warehouse and product data directly.

Cost Check page: products grouped as proven under-costed, suspected, reasonable, and not yet assessable
Cost Check: facts and assumptions clearly separated
Problem

Cost of goods was calculated by hand, so it was rarely updated even though material prices kept moving. Spending, bookkeeping, and financial reports also ran separately from warehouse and product data, making it hard to know the real cost per product or trace where a number in a report came from.

Result

Cost of goods is now calculated from recipes, latest material prices, wages, asset depreciation, and monthly overheads, and the Cost Check compares it with the current figures to show which products are undercosted. Spending goes through tiered requests and approvals, each period can be closed, and every number in a report can be traced back to its transaction.

What I built
  • Cost of goods from recipes, material prices, wages (imported from HRIS), asset depreciation, and monthly overheads
  • A Cost Check that separates facts from assumptions; incomplete data is flagged “can't be calculated yet” instead of being treated as safe
  • Multi-account cash book with spending requests, tiered approvals, and on-screen signatures
  • Balance sheet, income statement, changes in equity, and cash flow per legal entity and brand, plus Shopee and TikTok settlement import
  • Production cost flow (Sankey diagram), period closing, and a change log
OMS

In-house · Feb – Aug 2026 · paused

Shopee, TikTok, and manual orders in one system connected to the warehouse, from incoming order to complaint.

OMS overview prototype: incoming orders, work queue by shipping deadline, and store sync health
Prototype: work queue sorted by shipping deadline
Prototype order list across stores and channels
Prototype: orders from every store in one list
Problem

Marketplace orders weren't stored in the company's own system at all. Every day meant dozens of manual Excel uploads, customer data was scattered and duplicated, and orders weren't linked to barcoded units in the warehouse, so it was hard to tell which order shipped with which item.

Result

The system is designed as a single order hub: every store feeds one list, the work queue is sorted by shipping deadline, picking is prepared in batches, and every order is linked to units in the warehouse. The 13-screen design was built from real order data. Already built: manual orders and complaints, duplicate customer merging, and search across almost 12,000 rows in 116 ms, with 120 automated tests passing. Development was paused in August 2026 so multi-warehouse support in the WMS could be finished first.

What I built
  • One order list across every store, with a work queue sorted by shipping deadline
  • Manual orders and complaints, with destination address validation via RajaOngkir
  • Duplicate customer records merged, phone numbers recovered from past orders
  • Batch picking, with bundles expanded into their components
  • Search, filtering, and sorting of large datasets handled server-side, with no long waits

Earlier, from February to May 2026, I tried several admin templates and connected Shopee OAuth in sandbox mode before deciding to rebuild from scratch.

E-COMMERCE

In-house · Feb 2023 – present · live

Official online stores for two health food and herbal brands, built on the same platform so each new feature only has to be built once.

Naturlife online store home page: search, category list, promo banners, and an invitation to join the member community
Naturlife home: promotions, categories, and the member community
Naturlife product page: strikethrough price, add to cart button, and store information
Product details with store info and cart
Bumi Organik online store home page with the brand's own colors and banners
Bumi Organik: the same code, its own brand look
Bumi Organik catalog with product category filters
Catalog with category filters
Problem

The brands in the company group needed official online stores outside the marketplaces. Building a separate store for each brand would mean doing the work twice, with maintenance getting heavier every time a brand is added.

Result

Naturlife and Bumi Organik run on the same platform, each with its own look and catalog. Customers can shop, pay, and track orders directly on the brand's site, with member programs, points, and commissions built in. A fix in one store can be carried straight over to the other.

What I built
  • Catalog with category filters, search, bundles, and promo pages
  • Cart and checkout with Xendit payments and KiriminAja shipping rates
  • Customer accounts: order history, addresses, points, and reward redemption
  • Member and reseller program: partner sign-up, commissions, rankings, and shareable store pages
  • A nearest-store finder and links to the official marketplace stores
RESELLER

In-house · May 2022 – Jul 2025

An online store for a beauty brand that sells through a reseller network: every partner gets their own store page, commissions, points, and a ranking.

Fabil home page: skincare banners, and menus for the nearest-store finder, catalog, learning center, and partnership sign-up
Home: promotions, catalog, and an invitation to become a partner
Fabil product catalog with a category picker
Product catalog
Fabil product details: price, brand, category, SKU, and admin contact info
Product details with brand info and admin contact
Problem

The brand relied on many resellers, but orders, commissions, points, and partner tiers were tracked separately and by hand. Resellers had no storefront of their own, and the head office struggled to see who was selling what.

Result

One platform connects customers, resellers, and the head office. Every reseller has a shareable store page of their own, orders are paid and shipped through the system, and commissions, points, and partner tiers are calculated automatically. The head office manages it all from an admin panel that works well on both desktop and phone. The same code later became the foundation for the online stores of other brands in the group.

What I built
  • Shareable store pages for each reseller, and partner sign-up with agreement acceptance and a digital signature
  • Partner tiers with upgrade and downgrade requests, discounts per customer group, and a leaderboard
  • Commissions and their payouts, points, cashback, and scheduled reward redemption
  • Payments through Xendit and shipping through KiriminAja, including parcel pickup
  • A desktop and mobile admin panel: products, bundles, ingredients, stock, orders, reports, and exports
BOARD

In-house · Jul 2026 – present · live

Feature requests, revisions, and bug reports from other departments are tracked properly instead of getting buried in group chats.

DevBoard kanban board with New, In Review, In Progress, and Done columns
Request board, filterable by application
Problem

Feature requests, revisions, and bug reports came in through group chats and got lost, while daily summaries for management were still sent by hand.

Result

One board for every WMS, Master Data, and OMS request. Requesters can follow the status of their own requests, and managers just open one link to see the daily report.

What I built
  • Drag-and-drop kanban and list view
  • Rich-text notes with images, comments, and activity history
  • Configurable roles and permissions, online presence indicators, and notifications
  • Daily log with a dedicated page for managers
  • “My Tasks”: a personal board with per-card share links
SERVER

In-house · Aug – Sep 2026 · completed

38 sites and 14 databases moved to a dedicated VPS with about 12 minutes of downtime.

Migration diagram: shared hosting before, dedicated VPS after
Before and after the migration
Problem

The shared hosting was so full that projects had to be deleted, releases still meant copying files over FTP, and the order app needed job queues and Redis, which weren't available.

Result

38 sites and 14 databases were moved with about 12 minutes of downtime. Before switching DNS, 203 tables (2.1 million rows) were compared one by one, and all were identical. Releases now go through git, backups run daily to the cloud, and the server is monitored every hour.

What I built
  • Runbook and development → main release scripts
  • Row-count matching as a gate before switching DNS
  • Daily database and file backups
  • Hourly monitoring with Telegram alerts
  • Firewall active from the moment the server came up
TEMPLATE

Own product · Sep 2026 – present · on sale

A ready-to-use HTML + Bootstrap 5 admin template, from dashboards to apps and account pages, so new projects don't have to build an admin interface from scratch.

Selaras general dashboard: revenue, orders, analytics chart, top categories
General dashboard
Selaras warehouse dashboard: stock, goods in and out, zone usage
Warehouse dashboard
Selaras point of sale: product catalog and order cart
A point of sale that actually works
Problem

Almost every business app needs an admin area, and building one from scratch takes time: layouts, charts, tables, themes, and dark mode get rebuilt for every project, and the colors are often hard to read.

Result

Version 1.0 is on sale in my own store, with a live demo in English and Indonesian. It includes dashboards for different needs, apps that actually work, account pages, and documentation, plus a choice of themes and light/dark modes where every color pair passes WCAG AA contrast checks. A Laravel version is in the works.

What I built
  • Five dashboards: general, projects (mini Gantt), e-commerce (funnel), warehouse (rack map), and point of sale
  • Ready-made apps: calendar, chat, kanban, invoices, and online store management
  • Complete account pages (sign in, sign up, forgot password, two-step verification) and usage documentation
  • Two languages, English and Indonesian, with a choice of themes, light/dark mode, and sidebar colors
  • Automated contrast tests for every color pair, and a build script for the download package
WARUNG

Family project · Aug 2026 – present · live

A phone app for my mother's food stall: each sale takes a single tap, and by closing time she already knows the day's profit.

Three Warung Umi phone screens: today's profit with a picture menu, a sheet for picking how many portions sold, and the daily net profit report
Sales, logging how many sold, and the day's profit report
Two Warung Umi phone screens: today's cooking with cost per portion and leftovers, and the More menu with tabs, closing the stall, and consignment
Today's cooking: cost per portion without needing a recipe
Problem

My mother sells food and kept her records in a notebook that rarely got added up. Till money mixed with kitchen money, and it was never clear which dishes were actually losing money. Ordinary point-of-sale apps are too complicated for an older user whose hands are busy cooking and serving.

Result

A sale takes one or two taps on the phone. Because the app also knows how much was cooked, the cost per portion and the unsold leftovers are counted too, so the day's net profit is clear as soon as the stall closes. The app keeps working when the signal drops, and the records are saved once it reconnects.

What I built
  • Designed for older users: large text, wide buttons, PIN sign-in, and a vibration to confirm each tap
  • Cooking by the portion or by the pot: cost per portion worked out without a recipe, unsold leftovers included
  • Customer tabs, free giveaways, consignment at other shops, and selling by package (box or single)
  • A price calculator with suggested selling prices, daily and monthly reports, and closing the stall by checking the cash in the till
  • Installs to the phone's home screen and works offline, with safeguards so records are never saved twice
LMS

Own product · Jul – Aug 2026 · not yet released

Coding classes for beginners. Code exercises are graded automatically, and certificates can be verified by anyone.

Sendy LMS home page: learn to build websites step by step, with the Bit mascot
Home: for people who have never written a line of code
Web Basics course content: the Introduction to the Web chapter with lessons, practice markers, and a 10-question quiz
Syllabus by chapter: hands-on lessons, and every chapter ends with a quiz
Verification page confirming the certificate is genuine, with holder name, certificate number, and verification code
Certificate verification: open to anyone, no login
Bottom of the certificate with a QR code and the list of what was proven: quizzes, exercises, and final exam passed
Certificates are issued only after all three gates are passed
Problem

Beginners rarely quit learning to code because the material is hard. They quit because they're flooded with jargon, learn passively, then freeze when they have to write code themselves. Free certificates are also hard to trust because there's no proof of skill behind them.

Result

The first course, Web Basics, is complete from lessons to certificate: lessons in chapters, quizzes, code exercises, and a final exam. Certificates are issued only after all three are passed, and can be verified without logging in.

What I built
  • Lessons are written in Markdown and imported as structured blocks, so raw HTML never gets through
  • Quizzes are graded on the server; answer keys never reach the browser
  • HTML/CSS exercises with an editor and live preview, still graded on the server. An exercise whose own sample answer fails is rejected at import
  • Revocable certificates with random serial numbers, a QR code, and a public verification page
  • An animated Bit mascot that automatically stays still for users who prefer reduced motion
GAME

Experiment · Oct 2026

A cozy pixel art game: grow your own ingredients, then serve them at a beach café, alone or with friends.

Desa Sungai: a house, vegetable garden, river, and village shop in pixel art
Desa Sungai: the garden, the river, and the village shop
The café at Pantai Muara: a U-shaped kitchen, menu board, and tables on a wooden deck
The café at Pantai Muara, where the harvest is cooked and served
Ladang Rasa start screen: start playing, load from a backup file, or join a friend's room
Start screen: play solo or join a friend's room
What it is

A cozy game about a beach café in an Indonesian village where you grow the ingredients yourself. The harvest isn't sold raw; it's cooked into the menu, so the garden and the café depend on each other.

Result

Friends can play together in one shared world, on PC or phone: they just scan a QR code on the screen. Besides farming and cooking, there's livestock, fishing, and a character creator with hijab, caping hats, and batik. All of the art and sound effects are generated in code.

What I built
  • A world simulation that produces identical results on every device, so co-op stays in sync, iPhone included
  • Co-op through a WebSocket relay server, with invitations as QR codes
  • Touch controls for phones: joystick, action button, and full-screen landscape
  • A village shop, recipe book, café upgrades, and more guests as the café's star rating rises
AI

Experiment · Sep 2026

A voice assistant for Windows that can control the PC, read data, and monitor servers.

What it is

A voice assistant for Windows: summoned with Ctrl+Space, a microphone button, or a wake word, and it answers out loud.

Result

Runs on my work PC with 29 tools, from controlling the PC to reading databases. Database access is read-only, and that limit is enforced in code, not just as an instruction to the AI. Speech is processed on the machine itself.

What I built
  • Two swappable “brains”: a local model (Ollama) or Claude
  • Three-tier server access: monitoring, commands that require confirmation, and releases locked behind a special phrase
  • Conversation history and memory
  • Model choice based on direct measurements on my own machine
AUTOMATION

In-house · Jun – Jul 2026 · prototype

Reaching out to many affiliate creators without typing each message by hand, while every message is still approved by a human.

Problem

The team had to contact many affiliate creators one by one on TikTok, repetitive work that ate up time. Access to TikTok's messaging API was denied, and the person using it isn't technical, so the tool had to be as simple as possible.

Result

It starts with a double-click. The creator list is read from Excel, the first messages are approved manually from a dashboard, and statuses are written back to Excel so no message is ever sent twice.

What I built
  • Exact username matching and target checks before sending
  • Approve or skip each message from the dashboard
  • A daily quota, with an automatic stop when TikTok asks for verification
  • Live log in the dashboard

No projects in this category yet.

How I Work

Step 1

Discuss your needs

Tell me about your current process and the part that causes the most friction. That shows whether you need a new application, an integration, or just a small fix.

Step 2

Plan & estimate

I put the scope, milestones, and cost estimate in writing, so you know exactly what will be built before any work begins.

Step 3

Incremental development

The system is built in stages you can try from the very start. At the end, you receive documentation and a user guide for your team.

Working Principles

  • Understand the process first, then choose the technology
  • Every number in a report can be traced to its source
  • Changes are tested automatically before release
  • Documentation is part of the job, not a bonus

Contact

Got a process that's still manual, an app that needs fixing, or an idea for a new system? Tell me what you need. A short conversation usually reveals the most sensible solution.

  • Emailsendy.kerja@gmail.com
  • AvailabilityFreelance projects & consulting
  • LocationIndonesia (GMT+7) · available for remote work
  • Response timeUsually outside office hours (GMT+7)