Web Development

Siemreapinside.asia

A travel article-publishing platform designed with a custom WordPress architecture, engineered for multilingual content, global performance CDN configuration, API data integrations, automated user-facing and administrative workflows, custom consent management, and more.

WordPress / PHP, JS, Ajax, CSS / i18n / Premium Translations / High Performance

Visit Project (opens in a new tab)

Evidence-based Verification

Performance Tuning

A live performance test of siemreapinside.asia with edge-CDN delivery, measured by GTmetrix from Seattle, USA, to Siem Reap, Cambodia β€” a geographic distance of roughly 7,300 miles (12,000 km).

GTmetrix speed test evidence for uJob.
September 28, 2026 | uJob GTmetrix speed test
Contact Marc for performance issues

Engineering Method

How I Work

I work with new and existing systems, establishing a clear understanding of their architecture, dependencies, and current state before making changes. My approach combines systematic investigation, technical auditing, evidence-based problem-solving, iterative verification, and formal certification, supported by Git and GitHub for version control, traceability, and accountability.

I identify weaknesses, investigate their root causes, develop targeted remediation strategies, and verify outcomes against documented requirements. Every stage is guided by evidence, with an emphasis on reliability, transparency, and demonstrable results.

  1. 01DiscoveryEstablish the scope of the system, its dependencies, and its current state.
  2. 02AuditExamine the system, identify weaknesses and risks, and develop a remediation blueprint.
  3. 03Smoke TestingTest the system broadly to discover what breaks, what fails unexpectedly, and what needs closer investigation.
  4. 04Root Cause AnalysisInvestigate failures, distinguish symptoms from underlying causes, and refine the remediation blueprint.
  5. 05Remediation & VerificationImplement targeted corrections and verify their effectiveness through documented testing.
  6. 06Certification ReadinessEvaluate the verification evidence and establish whether the system is ready for certification and canonicalization.

Technical Case Studies

Detailed examinations of selected engineering projects, covering system architecture, implementation, troubleshooting, and verification. The studies include production implementations, independently verified components, and developing systems

01 Multilingual Publishing A custom WordPress multilingual publishing architecture that manages content routing, automatically propagates granular translation updates, integrates external language APIs, and persists translated content as reusable artifacts. WordPress Architecture Β· PHP Β· Multilingual Content Routing Β· Translation Automation Β· API Integration Β· Translation Persistence

Context

The system is a production multilingual publishing platform: a content-heavy WordPress site publishing English and additional languages, including non-Latin scripts.

URLs identify a language, requests resolve to the correct translation, listings and feeds remain language-scoped, and editors use a managed translation workflow rather than hand-edited duplicates.

Problem

WordPress does not natively provide the properties this system needed:

  • Language-prefixed routing. Language paths resolve to that language while plain URLs continue serving the default language.
  • Translation resolution. A language and path resolve to the correct translation, including controlled review drafts.
  • Native-language slugs. Percent-encoded Unicode slugs work through WordPress permalink handling.
  • Query separation. Archives, feeds, and listings remain inside the request language.

Constraints

  • Draft translations can exist pending review, but draft access must remain controlled.
  • An explicit URL prefix always wins; Accept-Language is used only without a language signal and only for existing translations.
  • Routing excludes administration, REST, login, cron, feed internals, and static assets.
  • Only approved deployed languages may be routed; an arbitrary two-letter prefix is not a language.

Architecture

A dedicated WordPress request pipeline establishes language context early, resolves native-language slugs and translations, and constrains later queries before rendering and page caching.

Editorial operations are separated from request resolution: translation jobs, field-level content, operation logging, translation memory with field-level hashing, provider integration, WP-CLI batch processing, locale switching, and a custom administration interface.

  • Router and context. Prefix detection establishes one request-language source of truth.
  • Resolver and query enforcer. Translated posts and language-scoped listings are selected before rendering.
  • Slug handling. Native Unicode slugs are stored and resolved in WordPress's encoded form.
  • Staleness control. Field hashes identify changed source text without invalidating whole posts.
  • Fallback policy. Browser language is an allowlisted fallback; explicit prefixes remain canonical and unambiguous.
  • Controlled drafts. Review translations are resolved through query-layer rules without changing stored post status.
Multilingual publishing architecture flowchart showing three ways language is chosen: a language URL resolves directly to that language; an English URL uses browser language automatically or remains English; and a manual translation selector can be used from either location. The resolved language then determines translated content and query scope before WordPress delivers the localized response.
Language selection and routing: language URLs resolve directly, English URLs can use browser language automatically or remain English, and the manual translation selector is an optional visitor control.

Outcome

The resulting subsystem combines language routing, translation resolution, language-scoped queries, editorial translation operations, provider integration, batch tooling, and administration inside one testable WordPress architecture.

Sanitized code examples

These two public-safe examples isolate representative engineering patterns from the larger private system. The complete source and tests remain available through the linked files.

  • Protected-token translation validator. Verifies that protected URLs, shortcodes, and entities survive machine translation before reconstruction, checking missing, extra, duplicate, and altered markers. Overview, source, tests.
  • Accept-Language locale matcher. Negotiates an HTTP language header against an allowlist, handling q-values, q=0 rejection, region subtags, stable tie-breaking, and default-language fallback. Overview, source, tests.

Verification

Evidence held in the private project record includes:

  • The documented architecture comprises approximately 15,700 lines across approximately 30 component classes.
  • More than 25 dedicated multilingual test files covering routing, slug-boundary behavior, lifecycle and staleness, feed isolation, cache-language interaction, hook ordering, and certification integrity.
  • Formal certification and freeze artifacts for the architecture, produced under the project's documented verification workflow.
  • A recorded regeneration exercise in which 24 stale translations were re-run through the pipeline and verified for field hashes, relationships, and publication state.

These are historical project documents: they establish that the work passed formal verification gates at the time, and are not presented as live runtime certification of the system today.

Limits

  • This is a purpose-built architecture for one production platform β€” not a plug-and-play multilingual product, and no claim is made that it drops into an arbitrary WordPress installation unchanged.
  • The production codebase is private; this page describes the architecture rather than publishing it.
  • Certification evidence cited above is historical β€” it should not be read as current runtime verification.
  • No traffic, ranking, revenue, or accuracy outcomes are claimed; the evidence supports the engineering itself, not downstream business metrics.
02 Research & Data Engine

A framework-independent Python research engine that acquires, normalizes, persists, and evaluates external data through source adapters and a REST boundary.

Python Β· Data

Context

The private research platform presents outputs through WordPress, but its analytical core must outlive any CMS, run unattended, and remain testable without a web framework.

It acquires data from external sources, keeps an auditable record of collection, runs staged analysis, and measures the accuracy of probabilistic forecasts against resolved outcomes.

Problem

  • Heterogeneous sources. APIs, authentication, cadences, and payload shapes must not leak source-specific assumptions into the core.
  • Canonical data. Incompatible representations need normalization before analysis.
  • Auditable persistence. What was collected, when, from which source, and with what integrity must remain reconstructable.
  • Empirical evaluation. Probabilistic outputs need scoring against observed outcomes rather than assumed quality.
  • Unattended operation. Scheduling, locking, rate limiting, and failure isolation are part of the system boundary.

Constraints

  • Framework independence. The engine runs from the CLI and over REST with zero WordPress dependencies, enforced by a dedicated test.
  • WordPress as client. PHP-to-Python traffic crosses one token-authenticated REST boundary; presentation and control stay in the client.
  • Per-source isolation. Each source supplies a collector/storage pair against a shared contract.
  • External orchestration. Schedulers use a per-source cadence registry, while lock-guarded collectors prevent overlap.
  • Draft output. Automation stops at private research drafts; the engine does not publish or act on conclusions.

Architecture

A framework-independent Python engineβ€”roughly 59,000 lines across about 200 modulesβ€”exposes a CLI and a small token-authenticated HTTP server. The server is the sole boundary between WordPress and the background research pipeline.

  • Acquisition. Nine source-specific adapter packages provide collectors and storage modules behind a shared contract; the collection framework supplies specifications, locks, rate limiting, and pagination.
  • Persistence. Source stores write canonical records, an ingestion catalog records collection and integrity, and SQL migrations manage schemas.
  • Analysis. Immutable domain objects support valuation and recommendation boundaries; calibration supplies metrics and significance testing.
  • Evaluation. A forecast ledger resolves predictions against observed outcomes, computes versioned Brier scores, and supports counterfactual evaluation.
  • Operations. Cadence registries, cron dispatchers, cleanup, and a health watchdog run collection unattended; the WordPress client receives private drafts over REST.
Research and data engine architecture: external sources feed source adapters inside a framework-independent engine. Data is normalized, persisted and analyzed before crossing a REST boundary to WordPress. Scheduling remains external.
The research core owns acquisition, normalization, persistence and analysis; scheduling and WordPress remain outside its boundary.

Outcome

The system separates source acquisition, durable evidence, analysis, evaluation, orchestration, and presentation so each boundary can be tested without making WordPress part of the research core.

Verification

Evidence held in the private project record includes:

  • The engine and its approximately ~10,500-line WordPress thin client are measured separately; nine adapters and two provider implementations sit behind shared contracts.
  • More than 130 Python test files plus a TypeScript client spec suite, including a test enforcing independence from WordPress.
  • Formal certification and freeze records for major subsystems, with verification, remediation, and independent audit documents.

These are historical project documents: they establish what passed formal verification gates when certified, not that every component or historical suite is currently passing. Suite sizes indicate coverage breadth, not a runtime guarantee.

Limits

  • The production codebase is private; this page describes the architecture rather than publishing it.
  • No accuracy percentages, performance benchmarks, or business outcomes are claimed; internal scoring exists but its figures are not published.
  • Certification evidence is historical and should not be read as current runtime verification.
  • Collection cadences and source sets are configured for one deployment, not a general-purpose product.
  • The WordPress component is a thin client for this engine, not a portable plugin for arbitrary WordPress sites.
03 Verification & Certification

An evidence-based delivery process that verifies implementation, tests runtime behavior, audits independently, and records certification, remediation, or deferral.

Python Β· PHP Β· Testing

Context

The process governs long-lived private systems: a production WordPress publishing platform and a framework-independent research engine that run unattended, serve or collect real data, and accumulate changes over years.

Its purpose is to prevent unfinished work from appearing finished. A feature that should work, a test that once passed, or a months-old certification does not prove current behavior.

Problem

  • Scope. Every unit of work needs explicit requirements, including prohibited changes.
  • Implementation truth. Code and configuration must be checked as they actually exist, not as intended.
  • Runtime truth. A scheduled job in a repository is not proof that the live system executes it.
  • Failure recovery. Breakage and recovery paths must be exercised rather than assumed.
  • Independence. Review must be structurally separate from the session that implemented the work.
  • History. Certification, remediation, and deferral records must remain auditable when later evidence changes the verdict.

Constraints

  • Evidence over assumption. Verdicts cite source inspection, test results, or runtime observation.
  • Independence. Verification uses a fresh review context against the authorized requirements, and certification is performed by a non-implementing reviewer.
  • Current state wins. Current source and runtime evidence outrank historical certification.
  • No manufactured evidence. Synthetic or staged results are not presented as production behavior.
  • Honest outcomes. Not certified, remediation, and deferral are legitimate recorded outcomes; an audit reports rather than quietly repairs.

Architecture

Work moves through scope, authorized implementation, focused testing, independent verification, independent certification, and a frozen baseline. Each stage has its own evidence and verdict; a material defect returns the work to remediation rather than being silently passed through.

  • Requirements matrix. Verification checks explicit positive and negative boundaries.
  • Evidence classification. Findings are documented, source-verified, runtime-verified, test-verified, hypothesized, or blocked on insufficient evidence.
  • Operational evidence levels. Automatic behavior must be declared, installed, enabled, executed organically, and persisted before it is treated as demonstrated.
  • Record preservation. Prompt records, decision logs, evidence manifests, remediation, certification, and freeze reports preserve scope, rationale, artifacts, and exclusions.
  • Managed deferral. Deferred items are classified and revisited; they are not silently absorbed into a pass.
Verification and certification lifecycle: authorized work moves through implementation, focused testing, runtime verification and independent audit to a certification gate. Certification, remediation and deferral are distinct outcomes.
Certification is a gate, not a formality: the evidence can produce certification, remediation, or deferral.

Outcome

The process produces an auditable distinction between implementation status and certification status, with explicit scope, exclusions, remediation, deferral, and historical baselines.

Verification

Evidence held in the private project record includes:

  • Per-subsystem test harnesses, regression suites, static analysis, runtime health checks, and evidence manifests.
  • Independent audits and hostile re-audits that compare prior conclusions against current source and runtime behavior; one re-audit downgraded unsupported β€œall verified” claims.
  • Certification gates requiring implementation, focused tests, relevant regressions, runtime verification where required, integrity checks, current documentation, and a clean version-control state.
  • Explicit verdicts of certified, not certified, or blocked, with the certified scope and exclusions recorded.

Certification is point-in-time evidence. A historical record is preserved rather than rewritten when later drift or evidence changes the current state.

Limits

  • Certification records document what passed a gate when it ran; they do not claim that every component or historical suite is currently healthy.
  • Suite sizes describe coverage breadth, not a guarantee of passing state.
  • The process is deliberately heavyweight for long-lived production systems and disproportionate for trivial changes.
  • Much verification uses scripted harnesses within the lifecycle rather than a third-party CI status badge.
  • The systems and records are private; this page describes the process without publishing internal reports or operational data.
04 Resilient Collection Primitives

Four collection primitives that paginate safely, pace requests, apply bounded retry backoff, and prevent overlapping scheduled runs.

Python Β· Data collection

Context

These primitives support scheduled multi-source collection where partial results, provider pacing, transient failures, and scheduler overlap must be handled explicitly.

They isolate reliability behavior so the surrounding collector can decide how to handle a failure without losing already collected data or depending on a large framework.

Problem

  • Paginated endpoints can fail after earlier pages have already been collected.
  • Rate-limited providers require a minimum interval between operations.
  • Transient failures need bounded, jittered retry backoff and provider-directed Retry-After handling.
  • A scheduler can start a second run before the first completes, corrupting or duplicating work.

Constraints

  • Each primitive remains small, dependency-light, and independently testable.
  • Clock, sleep, retry floor, and provider delay inputs remain injectable rather than requiring real time or HTTP responses in tests.
  • Locking must be non-blocking and crash-safe; the implementation uses kernel-managed flock.
  • Pagination failures must be observable to the caller instead of silently discarding partial results.

Architecture

Resilient collection architecture showing external sources flowing through collection, failure handling, persistence, recovery, and run-lock controls
Resilient collection boundary: failures are handled explicitly while persisted partial results remain available for recovery and verification.
  • Resumable offset pagination. Yields an offset and failure value so the caller chooses whether to keep partial results or abort.
  • Interval pacing. Sleeps only the remaining interval and returns immediately when caller work has already consumed the delay.
  • Bounded exponential backoff. Applies Β±25% jitter, honors a provider floor, and caps Retry-After through the documented maximum.
  • Advisory run lock. A non-blocking flock lock returns a skipped result for overlap and is released by the kernel after a crash.

Outcome

The four concerns remain independently testable and can be composed by a scheduled collector without embedding pagination, pacing, retry, or overlap policy in each provider adapter.

Verification

The existing primitive tests cover pagination termination and failure yields, pacing timing, jittered and capped backoff, Retry-After handling, and non-blocking lock behavior. The lock tests use fcntl.flock, which is Unix-specific.

Limits

  • These are isolated primitives, not the complete multi-source collection framework, provider adapters, specification registry, or lifecycle manager.
  • They preserve the engineering behavior without publishing private provider names, work-package references, or production file paths.
  • The advisory lock relies on Unix fcntl.flock semantics.
05 Travel Bonanza Email Drip-Sequence

A custom-built travel recommendation and email delivery system that acquires supplier data, filters travel products for economic viability, and manages a scheduled sequence of personalized recommendations. The entire delivery workflow is implemented in-house, from product selection and subscriber management to automated email distribution.

WordPress Β· PHP Β· SQL Β· JavaScript Β· Supplier API Β· Economic Filtering Β· Custom Email Automation Β· CRON
Travel Bonanza banner featuring travel deals and Angkor Wat at sunset

Context

Travel Bonanza combines a local travel catalogue with a staged email sequence and a frontend recommendation experience. The architecture treats provider acquisition and customer delivery as separate responsibilities.

Problem

Recommendations must remain consistent across signup, the email sequence, and the frontend without making each customer interaction dependent on a live Viator request. Repeated provider calls would couple delivery to external latency, availability, rate limits, and changing catalogue responses.

Constraints

  • Viator is called only by the scheduled acquisition path; customer delivery does not call the provider.
  • Daily catalogue refresh and manually triggered administrative refresh are the permitted acquisition operations.
  • The local catalogue must retain the product, structured, language, sale, referral, image, pricing, rating, and email fields needed by delivery.
  • Frontend and sequence reads are read-only against the local cache.
  • Stage 1 selects three tours once using budget, on-sale status, and rating; later stages use those stored selections.

Architecture

The boundary is deliberately one-way: external API acquisition β†’ local catalogue/cache β†’ read-only customer delivery. Viator Sandbox data is acquired through System Cron into the complete wp_sria_bonanza_products catalogue. The cache is then the source for both the frontend signup path and the backend sequence.

Closed-loop Travel Bonanza architecture showing Viator Sandbox scheduled acquisition feeding the local wp_sria_bonanza_products catalogue and read-only frontend and email sequence delivery
Closed-loop architecture: Viator is isolated to acquisition, while the catalogue and stored selections serve customer delivery.

Implementation

The acquisition pipeline discovers the Siem Reap catalogue, paginates the provider search, normalizes product data, applies eligibility rules, enriches qualifying products, and writes a refresh-token generation to the dedicated catalogue. The prior generation is removed only after the new set is fully written; a failed refresh leaves the previous valid pool available.

Delivery reads local product rows and applies the documented candidate rules: budget filtering, a minimum rating threshold, and review-count ordering with deterministic ties. The welcome stage stores three selected tours for the run. Stages 2–4 use those stored selections, and stage 5 completes the sequence; none of these stages makes an external API call.

The email path stores recommendation and send records, uses Plunk for delivery and correlation, and keeps acquisition outside the send boundary. The frontend recommendation path likewise resolves product and referral data from the local catalogue rather than fetching from Viator at request time.

Verification / Evidence

The private SRIA project includes PHPUnit coverage for the acquisition pipeline, including pagination, normalization, eligibility, localized catalogue rows, staged refresh behavior, failed-refresh preservation, and local-catalogue reads. The sequence and Plunk components also define stage progression, send-record idempotency, delivery correlation, and retry or reconciliation behavior.

These are implementation and test records from the private project. They establish the documented boundaries and covered behaviors; no current runtime pass rate or production metric is claimed here.

Outcome

Acquisition can refresh the catalogue without putting Viator calls on the customer path. The frontend and email sequence consume the same local data boundary, while the stored Stage 1 selections keep the remaining delivery stages stable for that run.

Limits

  • Delivery freshness depends on the most recent successful catalogue refresh.
  • Frontend and sequence delivery do not provide real-time provider availability; they use the stored catalogue boundary.
  • Acquisition failures can leave the active catalogue stale until a later refresh succeeds.
  • The architecture is specific to the Travel Bonanza subsystem and its Viator/Plunk integrations.
  • The private implementation and operational data are not published; this paper describes the boundary and evidence scope only.
06 uJob / WorkBot β€” Discontinued

A private automation system for researching technical work markets, qualifying opportunities, and supporting a controlled, human-reviewed acquisition workflow.

Python Β· Market research Β· Automation Β· Upwork MCP

Discontinued β€” Third-Party Economic and Technical Constraints

The tested uJob technology passed verification, certification, and operational testing. However, high bidding competition in a saturated marketplace, combined with third-party technical and economic constraints, made continued operation commercially impractical. The broader WorkBot architecture includes proposed components that were not all implemented or certified.

Context

WorkBot is a private automation system for investigating paid technical work opportunities. Its purpose is to turn marketplace activity into structured information that can be researched, filtered, qualified, and presented for controlled acquisition decisions.

The project is deliberately separated from MIOS's prediction-market domain. WorkBot may reuse MIOS infrastructure and architectural patterns, but it owns its work-market domain logic.

Problem

Raw marketplace listings are not sufficient for acquisition decisions. WorkBot needs to collect opportunity data, distinguish relevant technical work from unsuitable projects, examine scope and commercial characteristics, and preserve enough evidence for later analysis.

The documented discovery work therefore treats collection, qualification, market analysis, and acquisition as separate stages rather than collapsing them into an unrestricted bidding process.

Architecture

WorkBot architecture showing marketplace sources flowing through data collection, qualification, MIOS intelligence, human decision, and controlled acquisition workflow
WorkBot separates marketplace collection and intelligence from the human-controlled acquisition decision.

The intended dependency direction is WorkBot β†’ MIOS shared infrastructure, not MIOS core β†’ WorkBot. WorkBot-specific domain logic remains outside MIOS's prediction-market logic.

Market Collection

The documented WorkBot architecture uses marketplace connectors and collection workflows to acquire structured opportunity data. The current acquisition architecture uses the official Upwork MCP for marketplace access, with collection and retrieval separated from later analysis.

Earlier WorkBot discovery work established the need for persistent collection, normalization, evidence preservation, and repeatable sampling rather than relying on individual manual searches.

Qualification

Qualification is domain-specific WorkBot logic. The documented model separates raw market data from technical fit, scope, budget, competition, client characteristics, and other acquisition signals. The objective is to produce an opportunity queue rather than automatically treating every matching listing as a job to pursue.

The acquisition research also distinguishes short-duration technical opportunities from unsuitable long-term or full-time work and uses evidence from collected marketplace records to support the qualification process.

MIOS Boundary

MIOS provides research and intelligence infrastructure; WorkBot provides the work-market domain. The documented boundary allows WorkBot to reuse generic MIOS infrastructure such as orchestration, pipelines, execution conventions, data infrastructure, operational controls, and governance where dependency tracing shows that reuse is appropriate.

Prediction-market schemas, market-specific collectors, forecasting logic, valuation, prediction scoring, weather or market-specific analytical models, and MIOS-specific research workflows remain outside the WorkBot domain.

Human Control

The documented acquisition architecture is human-in-the-loop: market data β†’ MIOS intelligence and qualification β†’ opportunity queue β†’ human review β†’ WorkBot execution β†’ marketplace connector.

This boundary keeps research and qualification automated while retaining a controlled decision point before acquisition activity. WorkBot is therefore an operational workflow, not an unrestricted autonomous bidding system.

Evidence & Status

WorkBot discovery has included controlled marketplace collection, capability and policy research, competition analysis, acquisition-model research, and structured economic analysis. The documented roadmap places this work in a staged sequence: economic viability, MCP/MIOS feasibility, then WorkBot refactoring and implementation feasibility.

The architecture described here is therefore the documented target architecture for the project; the whitepaper does not claim that every proposed WorkBot component is already implemented.

Limits

  • WorkBot implementation is dependent on the documented economic and MCP/MIOS feasibility gates.
  • Marketplace data is time-sensitive and must be treated as a collected evidence set rather than a permanent representation of supply.
  • Qualification logic is WorkBot-specific and must not be embedded into MIOS's prediction-market domain.
  • Automation does not remove the need for controlled human acquisition decisions.
  • The implementation and operational data are private; this paper describes the architecture and documented research process without exposing proprietary code or credentials.
Talk to me about your project...

About Marc

Marc WebOps working at a computer

I've worked with IT and Linux systems for roughly 30 years, originally alongside a career in English education and increasingly through web development, systems engineering, and software architecture. I also studied writing, literature, and visual art.

My technical focus includes WordPress and PHP, SQL and data systems, JavaScript, server configuration, automation, and performance. This portfolio presents selected implementations and engineering decisions, with documented evidence where available, while keeping proprietary code private.

Contact

Have a system that needs careful engineering or designing?

Tell me what you are building, repairing, or trying to understand...