In every workplace I've been in, one system exists on paper while a separate, informal process is what people actually use. The workaround is the workflow.
I study the gap between how a process is designed and how people actually move through it. Then I redesign the system around real behavior, not org-chart assumptions.
At K-Pick Trading, I built six systems: an ERP, a BIR-ready accounting module, an HRIS, a real-time dispatch board, a B2B website and KORA, a Telegram assistant that reports on them.
About Me
I'm a System and Automation Engineer / Technical Manager at K-Pick Trading Corp. I translate day-to-day operational problems into reliable systems, then carry them from workflow discovery and requirements through architecture, development, testing, controlled release, documentation, and user support.
My main program of work is K-Pick ERP-lite, a Python, FastAPI, and PostgreSQL operations platform running in production in parallel with the company's official records: 133 API routes, 30 schema migrations, and 33 module views covering inventory, marketplace imports, order management and barcode checking, FEFO stock allocation, returns and expiry, physical counts, purchase planning, a multi-platform Finance Board, and role-based access. In September 2026 it grew an accounting module built for a BIR Computerized Accounting System application: serialized invoices, double-entry books, landed costing, and an audit trail that cannot be edited even at the database level.
Around it I built K-PICK HRIS, a standalone Philippine HR, timekeeping, and payroll system now in development; a real-time dispatch board for office and packing coordination; KORA, a Telegram operations assistant that reports, monitors, and answers questions through an on-premise AI model; and K-Pick's public B2B website with a quotation-to-purchase-order workflow that syncs stock and prices from the ERP every 15 minutes. I focus on correctness, traceability, recovery, and tools that fit the people doing the work.
What I Work With
Work Experience
K-Pick Trading Corporation: Korean medical supplies distributor in the Philippines
Optimal Systems Distribution
- Operated and monitored multifunction printing systems for high-volume document production and office support workflows
- Observed how small inefficiencies compound at scale; developed sharper instinct for operational bottlenecks
- Organized files, print requests, and production records while maintaining accuracy, confidentiality, and turnaround targets
- Coordinated with users and technical staff to resolve equipment issues and keep daily document operations running smoothly
Red Ribbon
- Worked in high-pressure, customer-facing operations; learned firsthand what breaks when systems are designed for managers instead of workers
- Became the go-to person for technical questions and device troubleshooting among colleagues
- Strengthened operational awareness, multitasking, and team communication under real-world conditions
- Managed online orders, warehouse operations, and shipments
- Handled basic tech troubleshooting and built trust with the team as the informal IT resource
- Gained hands-on experience with logistics, inventory systems, and digital tools
- Provided technical support during the pandemic for online classes and e-documents
- First formal exposure to systems support; built skills in remote assistance, documentation, and problem-solving
- The unofficial IT person before it became an official role
- Managed daily operations in a busy school canteen
- Built time management, multitasking, and organizational skills that still inform how I approach operational work
City of Malabon University
Graduated with a strong foundation in both theoretical and practical aspects of IT. Gained hands-on experience through academic projects, collaborative development, and real-world simulations.
Core Skills Acquired:
What I Can Build
I turn recurring manual work into practical automation using Python services, Telegram assistants, scheduled jobs and Excel VBA. Each tool fits the team's workflow and gives people a clear, dependable way to get the work done.
Inventory, order, purchasing, finance, reporting, and role-based workflows designed as one traceable operational system.
I turn operational needs into scoped releases, coordinate priorities, review risk, document decisions, and support users after a change ships.
Database migrations, focused testing, backups, health checks, rollback safeguards, and recovery procedures for systems people depend on.
Serialized documents, double-entry books, landed costing, finance dashboards, KPI and payroll reports, and PDF generation built from traceable business events.
Public websites, internal web tools, real-time interfaces, marketplace data flows, APIs, email delivery, and automation integrations.
My Work
What shipped across the K-Pick systems from July to October 2026, including 37 database migrations.
Inventory, marketplace orders, returns, purchasing and finance for a medical-supplies distributor. One platform now replaces a wall of spreadsheets.
Inventory, marketplace orders, returns, purchasing, finance, and reporting lived in spreadsheets and manual follow-up. The business needed traceability, duplicate controls, consistent product mapping, and a safe path toward a real system without breaking the records people already trusted.
A FastAPI and PostgreSQL platform with a product master and unit conversion, an append-only stock ledger with FEFO (first-expiry-first-out) allocation, Shopee / Lazada / TikTok Shop imports with mapping and duplicate prevention, an order-management and barcode-checking pipeline, a phone-based packing scanner and multi-user count sessions, returns with condition and expiry, purchase planning, a multi-platform Finance Board, staff KPIs, customer statements and configurable roles. Database changes are migration-driven, and CI covers the code.
Runs in production on a Mac mini with guarded deploys, pre-migration backups, health-check gates, and one-command rollback. The company's spreadsheets stay the official reference while ERP-lite validates every workflow in parallel, and the same platform now carries the accounting module below.
A Bureau of Internal Revenue application-ready accounting module: serialized invoices, double-entry books, and an audit log the database itself refuses to let anyone rewrite.
Applying for a Bureau of Internal Revenue Computerized Accounting System permit requires gapless serialized documents, books of accounts and an audit trail that cannot be edited, including by someone with database access.
Sales Invoice with the required face, per-series gapless numbering, senior-citizen and PWD tax-exempt math, void-not-edit with reprint marking, and a specimen print mode. The full six-document set (invoice, collection receipt, credit and debit memo, purchase order, receiving report), a chart of accounts, journal with a database-level balance constraint, general ledger, trial balance, and sales journal. Landed cost frozen per shipment and consumed FIFO, with no silent fallback when a cost setting is missing.
The audit log is append-only at the database level, an audit viewer supports filters, print, and CSV export, and marketplace payout files reconcile against the books. Built as a parallel module, so inventory, orders, and finance behaved exactly the same the day it shipped.
A standalone Philippine HR, timekeeping and payroll system with versioned statutory tables, a payroll engine that rounds once to the centavo, and staff self-service.
Attendance came from a biometric device export, overtime and holiday work were approved informally, and payroll math lived in spreadsheets that only one person understood. HR needed a system that follows Philippine labor rules without exposing pay figures to everyone who touches it.
A standalone modular system: 201 records, biometric attendance import, day-type and night-differential resolution, request-based overtime and rest-day authorization, failure-to-swipe corrections, statutory leave types, versioned SSS / PhilHealth / Pag-IBIG / withholding-tax tables, a pure payroll engine that rounds once to the centavo, A5 payslip PDFs, 13th-month and final-pay computation, recruitment, appraisals, disciplinary cases under the twin-notice rule, and an employee self-service portal.
Role-based pay visibility means HR can approve attendance and leave without ever seeing amounts, while accounting gets the computed payslip on the same rows. Every service module is DB-free and unit-tested, including a golden payslip regression. Statutory tables are flagged for accounting sign-off before the first live run.
A Telegram assistant that reports, monitors and answers questions straight from the ERP, with a hard line between what the AI suggests and what the data says.
Daily reports, work logs, reminders, and "is the system okay?" checks depended on me being online. Automation also needed a hard boundary between AI assistance and authoritative business data, and between what the group sees and what stays private.
A Telegram assistant that reads the ERP database for a 7 PM operations report, assembles my daily associate report from git commits, an idempotent developer feed, and manual notes, monitors system health every 10 minutes while I'm off-site, answers questions through an on-premise model with an application-level identity guard, and routes sensitive figures to private recipients only. Since September she also runs a daily competitor price watch across seven product lines before the team logs in.
KORA delivers scheduled reports, work logs, reminders and health checks. It rejects malformed input, confirms delivery and applies privacy rules. Competitor price comparisons reach the team each morning.
Each morning I collect live competitor listings, match pack sizes to our SKUs with a local model and a rule-based guard, then publish comparable prices in three places.
Knowing what rivals charge meant someone opening the marketplace and reading listings by hand, which happened irregularly and never the same way twice. The hard part is matching products. A competitor may use a different pack size, spec or promotion, so the displayed price only means something after those differences are checked.
A four-stage pipeline behind KORA. A browser extension collects each listing from a logged-in session and hands the capture to a local service rather than relying on a download. A scheduled job then pulls our own figures from the ERP, asks an on-premise model which competitor variant matches which of our SKUs and how many pieces it holds, and caches that answer. Nothing the model says is trusted on its own: a rule-based guard reads gauge, length, volume, tip, flavour, and pack count out of the listing text and has to agree, otherwise the item is published as not compared, with the reason. Surviving matches are restated per our own pack size and adjusted to what a buyer actually pays, then written into an Excel workbook whose every formula is recalculated and checked before the report is allowed out.
Each morning the team gets the comparison in a Telegram digest, a live ERP page and a formula-verified workbook. If the collector hits a challenge, the run pauses, alerts me privately and retries. A formula check blocks incorrect results.
My own task ledger, plus a dispatcher that runs coding agents in throwaway Git worktrees under explicit budgets so a bad run can't touch my branch.
My own work was the last thing without a system. Tasks lived in my head, and the coding agents I use had no boundary: nothing stopped a run from touching the working tree I was in the middle of, and nothing capped what a job was allowed to spend.
A private Telegram bot with two halves. A ledger keeps my checklist in SQLite and publishes finished items straight into KORA's associate-report feed, so my daily report writes itself from work I actually marked done. A dispatcher takes a coding job, picks an engine, gives it an isolated Git worktree of its own, holds it to an explicit budget with a usage meter, and tracks it through defined states.
The dispatcher runs each coding job in an isolated worktree, so a failure stays out of my active branch. The task ledger publishes completed work to KORA's report feed. It runs on my development machine and has no production address.
Ask the internal docs a question and get an answer with checked citations, or a clear "not found" when the source does not support an answer.
The ERP's runbooks, compliance notes and design docs had grown to dozens of files, and finding one answer meant knowing which file to open. Plain embedding search often misses identifiers such as document IDs, migration numbers and configuration names. Without sources, a language-model answer may sound certain while being wrong.
A retrieval pipeline splits documents by heading so each citation points to a section, then searches two ways at once: dense embeddings in Qdrant and BM25 with code-aware tokens that keep identifiers whole. Reciprocal rank fusion combines the rankings, and a cross-encoder reranks the results and sets the threshold for "not found". The model uses local Qwen 14B by default, with Claude as an option. It must return a quote for each citation, and the verifier checks every quote against its source before showing the answer. Uncited sentences are flagged, and each response is marked verified, partial, unverified or not found.
An evaluation harness with 30 labelled questions, including eight exact-identifier lookups, measured each stage on a plain CPU. Dense search found the right section in the top six 97% of the time, BM25 90%, fused hybrid search 97%, and hybrid search with reranking 100%, with an MRR of 0.94. A larger reranker scored lower and took four times longer, so the smaller one ships. With the 14B model, 14 of 30 answers were fully verified and 14 partially verified. Model citation discipline remains the gap, and the verifier makes it visible.
A visitor-facing assistant that answers only from a published profile file, with a browser-side fallback so the page still works on a plain static deploy.
Ask JHON something
A real-time dispatch board for the packing floor: two synced views, audio alerts, a flashing RUSH banner, and state that survives a restart.
Shopee Instant Delivery orders were tracked verbally or on paper. Staff had no shared view of which orders were urgent, who was handling what, or where each order stood in the packing process.
A real-time Node.js + Socket.IO app serving two synced browser views across the office LAN. Office staff dispatch rider codes and create picklists; the packing display shows large-format order cards with five distinct audio alerts, a flashing RUSH banner for nudged orders, a five-stage order lifecycle and a five-stage picklist pipeline with per-stage timestamps. State persists through restarts with atomic writes and corrupt-file quarantine. No internet required.
Office and packing staff coordinate through one shared live workflow. Status changes, notes, and urgent alerts stay synchronized, and active work survives service restarts.
22-page B2B site with a hand-written Node.js backend: branded PDF quotations emailed to buyers, a quote-to-purchase-order workflow with role-based staff logins, published manufacturer certificates, a Learning Centre of interactive device infographics, and brand films that only load in view. Sellable stock and box prices sync from the ERP every 15 minutes. Hardened with timing-safe auth, rate limits, and a full security-header set; Schema.org data on 17 pages plus llms.txt and an AI-crawler policy for answer engines.
Meet KORA
KORA is the operations assistant I built for K-Pick. She lives in Telegram, runs as a managed background service next to the ERP, reports at 7 PM Philippine time, watches the systems when I'm off-site, prices our competitors every morning, and answers questions with a local AI model. Verified application data remains the source of truth.
Telegram-native operations assistant for K-Pick Trading Corp
A cheerful glossy 3D mascot who helps with focused work and automation. On the desktop she is a hatched Codex pet with a 16-direction look loop; in production she is a Python service that reads the ERP, writes to Telegram, and keeps sensitive figures on private routes.
{
"id": "kora",
"displayName": "KORA",
"role": "operations assistant · reports · monitoring · Q&A",
"firstCommit": "2026-07-01",
"hatched": "2026-08-26",
"atlas": "8 x 11 sprite sheet · 9 animations + 16 look directions",
"spriteVersionNumber": 2,
"authority": "verified application data, never the model"
}
What KORA handles on my Telegram, every day
Reads today's figures straight from the ERP database, builds the report, and routes it: operations to the group, sales figures only to configured private recipients.
My daily work report, written for me: merges git commits landed since the last report, an automated developer feed, and my manual notes, grouped by module and deduplicated.
When I'm away, KORA polls database, API, model, and bot health and only speaks up privately with fixed status phrases. Raw errors, URLs, and data never enter a chat.
One message with three live checks: today's direct-sales count from PostgreSQL, local model availability, and ERP API reachability. A sanitized snapshot can be pushed to the group by the owner.
Free-form operational questions get a live ERP snapshot plus a local Ollama model. Identity questions never reach the model, and every answer passes an identity guard before delivery.
Every morning KORA finds out what rivals are charging on seven of our product lines. A logged-in browser session collects each listing, a local AI decides which competitor variant matches which of our SKUs and how many pieces it holds, and a rule-based guard reading gauge, length, volume and pack count has to agree before the number is used. Prices are restated per our own pack size and adjusted to what a buyer actually pays, so the comparison is like-for-like.
A separate daily price monitor for a benchmark consumer product line, with an optional browser-capture bridge for sources that block plain requests. Results go to private recipients.
Flowcharts traced from the bot's code and delivery gates
KORA runtime and automation entry points
Daily operations report and privacy routing
Automated developer-report capture
Associate report assembly and delivery gate
Day-off and off-site system monitor
Daily competitor watchlist: capture, match, verify, publish
Ask KORA: bounded local-AI answers
Rules KORA cannot break
How KORA grew
Daily report, ERP queries, and a trigger command replace manual Telegram updates.
The earlier Google-Sheets-based bot is deleted; KORA becomes the single ERP-integrated assistant.
Free-form answers backed by an on-premise Ollama model with live ERP context.
Application-level identity guard so KORA is KORA whichever model runs underneath.
Sales and sensitive output split away from the group chat.
7 PM daily work report from git commits, /mytask and /dayoff, plus a 6:30 PM cutoff reminder.
Idempotent report-item API and 10-minute system checks while the owner is off.
Multi-day /away windows with private morning and evening digests.
KORA gets a face: a validated 8 × 11 animated sprite atlas with 9 states and 16 look directions.
Every release's commits and developer-feed items flow into the nightly associate report, so the group sees what shipped without a manual write-up.
The associate report sorts Git changes by module and pulls dev-machine work from the automated feed; a single rejected AI summary no longer discards the rest.
A daily morning price and stock watch over seven product lines: a browser collector, local-AI matching behind a rule-based spec guard, a formula-verified Excel report, and a live page in the ERP.
Ask JHON
JHON answers from Jhon's published profile. For anything else, email jhonwilfreddrio@gmail.com.
Contact
Open to full-time, freelance and contract work in systems and automation. and the unglamorous internal tooling most teams put off. Based in Metro Manila, happy to work remotely.
Navotas, Philippines
Save my public contact details directly to your phone, or open the lightweight page made for NFC business cards.
Tell me about a process your team works around. Let's discuss how to improve it.