# ============================================================================= # COMPETENCY RECORD - Cedric Ancellin's demonstrated engineering skills and # experience. Third-party technologies and vendors are named as the concrete # skill surface. Professional background / track record. # ============================================================================= # ============================================================ # PROFESSIONAL COMPETENCY ORACLE - TECHNOLOGY STACK # ============================================================ # Core Purpose: # The fast index. Every language, datastore, vendor, protocol, # and tool the subject has designed and built with in # production. Business-neutral; vendor names describe the # concrete skill surface. # ============================================================ # ================================================================== # 1. LANGUAGES & RUNTIMES # ================================================================== languages: php8: depth: "expert" context: "Primary language of a ~42,000-file API monolith and business-logic library; no framework, custom dispatch and abstraction layers hand-built." javascript: depth: "expert" context: "Vanilla JS embeddable widgets, DOM-level lazy module loaders, browser SDK surface (global object with 8+ widget methods)." typescript: depth: "advanced" context: "Angular operator SPA, interceptors, guards, lazy-loaded feature modules, shared component library. Also the language of a separate, standalone Next.js 16 / React 19 product (server components + server actions) shipped end to end." nodejs: depth: "advanced" context: "Real-time socket.io server for live operational broadcasting; plus a production NestJS 11 backend (TypeORM/PostgreSQL) for a separate distributed platform." sql: depth: "expert" context: "Raw parameterized SQL across MySQL transactional schemas and Snowflake analytical models; hand-built abstraction, no ORM." python: depth: "working" context: "Snowpark staging transforms and data-quality / pattern-scanning tooling in the warehouse pipeline." bash: depth: "advanced" context: "CLI job runners, ETL orchestration scripts, cron entry points." # ================================================================== # 2. DATASTORES & DATA PLATFORMS # ================================================================== datastores: mysql: role: "Primary transactional store." depth: "expert" detail: "Multi-schema, multi-host routing (primary / read-replica / analytics-replica); connection pooling; ~13 schemas; soft-delete + status conventions; multi-DB transactions with named savepoints." redis: role: "Session cache, rate limiting, distributed fraud throttles, secret cache." depth: "expert" detail: "TLS-authenticated; session store with TTL + MySQL fallback; circuit-breaker for outage resilience; atomic counters for escalating lockouts." snowflake: role: "Analytics data warehouse." depth: "advanced" detail: "Multi-account (analytics + PMS lookup); galaxy/fact-constellation schema; secure views; customer-gated data shares; Cortex agents." mongodb: role: "Append-only audit / change-data-capture log." depth: "advanced" detail: "Fire-and-forget write concern; one collection per audited table; selective table/schema exclusion." firebase: role: "Realtime store for self-registering i18n translations." depth: "working" detail: "Two-tier (internal / public) content keys with English fallback." # ================================================================== # 3. PAYMENTS & COMMERCE VENDORS # ================================================================== payments: stripe: depth: "expert" detail: "Stripe Connect marketplace (per-merchant connected accounts), Payment Intents + Setup Intents, Stripe Elements, Terminal (card-present), webhooks (livemode-gated), Refund API, dollar↔cent boundary handling, merchant dedup across shared accounts." elavon: { depth: "advanced", detail: "Terminal-socket charge/auth/refund over TLS, plus a dedicated 3D-Secure variant." } freedompay: { depth: "advanced", detail: "Purchase/auth/refund with merchant-defined metadata." } shift4: { depth: "advanced", detail: "Card-present processing with webhook ingestion." } komoju: { depth: "advanced", detail: "Japanese-market card processing (JPY), tokenization, full/partial refund." } triplea: { depth: "advanced", detail: "Cryptocurrency acceptance, hosted payment page + webhook confirmation, crypto address/currency tracking." } paypal: { depth: "advanced", detail: "Hosted checkout, OAuth2 token, capture-intent flow, webhook completion." } skipify: { depth: "working", detail: "Skipify-assisted / SMS-payment-link remote checkout." } alt_rails: { detail: "ACH credit transfer, SEPA debit, iDEAL, FPX, Apple Pay / Google Pay via the card-processor layer." } stored_value: { detail: "Gift cards (XML gateway), guest-folio room-charge posting (OAuth + room verification), house-credit accounts, manual/offline payment." } gateway_abstraction: detail: "Uniform per-gateway contract ({gateway}_create_intent / _cc_charge / _refund / _retrieve_intent / _cancel_intent) enabling 13+ drop-in payment methods." # ================================================================== # 4. RESERVATION / POS / INTEGRATION VENDORS # ================================================================== integrations: opentable: { detail: "Reservation create/edit, availability, table/lock management; raw ingest + two-way sync + webhooks." } book4time: { detail: "Raw ingest + normalization; item-time availability; cancellation; two-way sync." } sevenrooms: { detail: "Raw ingest + normalization; reservation status transitions + cancellation." } infogenesis_pos: { detail: "InfoGenesis (Agilysys) POS, raw ingest + normalization of checks/tenders/types, venue-config mapping, high-watermark loads; open-check tracking + check-level revenue reconciliation." } micros_simphony_pos: { detail: "Micros Simphony POS, ingest guest-check exports (revenue centers, workstations, tender media) via posting-interface XML, normalize to a canonical check/tender model, match checks to bookings, and run tender + deposit-variance reconciliation." } pms_systems: { detail: "Property-management-system reservation/identity linkage via a live data share, plus a port-routed PMS tunnel." } twilio: { detail: "SMS dispatch (with block-list), verification, bulk campaigns, and templated WhatsApp messaging." } mandrill_mailchimp: { detail: "Transactional email + metrics/webhooks, and marketing list management (lists, merge fields, custom fields)." } intercom: { detail: "Support-widget identity verification via HMAC user-hash." } external_crm: { detail: "Party/booking export to external partner CRMs." } dev_tooling: { detail: "GitHub webhooks + deploy triggers, multi-repo metadata; a project-management/CRM tool integration." } guest_engagement: { detail: "Location/beacon mobile-engagement vendor, captive-portal guest WiFi, weather (sun/moon calcs), URL shortening." } conversational_ai: self_hosted_llm: { depth: "advanced", detail: "Self-hosted, fine-tuned LLM served over generate/chat endpoints with SSE streaming; used for translation, copy improvement, structured extraction, and chat. Provider-agnostic, no dependence on an external model API." } dialogflow: { detail: "Managed NLU, intents/entities with rich card/quick-reply/image responses." } assistant: { detail: "Multi-venue conversational booking/inquiry assistant." } # ================================================================== # 5. IDENTITY, SECURITY & INFRASTRUCTURE # ================================================================== identity_and_security: oauth_provider: "Acts as an OAuth authorization server, issues/revokes bearer tokens to third-party apps (authorization-code flow, client-id/redirect validation)." auth_federation: "SAML 2.0 SSO (industry SAML library), OIDC brokering (PKCE), direct Google/Microsoft OAuth, and passwordless/passkey auth (managed provider); server-side token validation." fiscal_compliance: "Government fiscal e-invoicing, RSA-SHA1 XML digital signatures (XML-DSig), PKCS#12 / X.509 certificates, SOAP submission to a national tax authority over TLS 1.2." csrf: "Per-request XSRF token rotation (request header in, response header out, cookie re-write)." clamav: "Antivirus scanning on uploads (daemon + standalone fallback)." ghostscript: "PDF re-render sanitization to strip active content." dom_sanitization: "SVG/HTML sanitization via DOMDocument (element + attribute + URI allowlisting)." cloudflare: "Edge WAF, DDoS protection, TLS enforcement, cache-eligibility control; ingress-only model." gcp_secrets_manager: "Runtime secret retrieval with Redis-cached TTL; no baked credentials." jamf: "Managed endpoint fleet policy delivery." bridge_ssh: "Composed multi-factor infrastructure access (persistent key + platform password + local password + weekly-expiring target key)." # ================================================================== # 6. DOCUMENT, MEDIA & MESSAGING # ================================================================== document_and_media: mpdf: "HTML→PDF with 60+ Unicode/international fonts; invoices, receipts, tickets, itineraries." phpexcel: "Excel/XLS export with formula-injection (DDE) protection." qr_generation: "Reed-Solomon QR encoding (area/mask/input/split/SVG) for check-in and verification." imagemagick: "Image conversion, thumbnailing; custom file/image server." apple_wallet: "PKPass bundle generation." # ================================================================== # 7. DATA / AI / TOOLING # ================================================================== data_ai_tooling: dbt: "Semantic layer, dimension + fact models, incremental loads, post-hook FK resolution, metric marts." airbyte: "CDC-style MySQL→warehouse replication with extraction watermarks." ontology: "OWL classes + SHACL node shapes + SPARQL constraints for runtime warehouse validation." mcp: "From-scratch, dependency-free single-file PHP implementation of the Model Context Protocol (2025-03-26), dual HTTP/STDIO transport, stateless HMAC sessions, mock-OAuth handshake, live write-allowlist, and a 7-layer read-only diagnostic-DB query tool, exposing a ~2,400-file machine-readable knowledge base to AI coding assistants." ai_assisted_dev: "Structured, source-anchored documentation-as-code wired into AI assistants with written guardrails." ai_orchestrated_delivery: "Directed a 100%-AI-authored production codebase as product owner, governed by a project-local oracle (laws, anti-patterns, agent onboarding, escalation), see COMP-20." knowledge_architecture: "A domain-agnostic knowledge-architecture methodology (machine-first schema-validated YAML, rules layer, serving tiers, audience-scoped disclosure/firewalling) proven across software, long-form fiction, and advisory knowledge, see COMP-23." # ================================================================== # 8. MODERN WEB APPLICATION STACK (SEPARATE PRODUCTS) # ================================================================== # The stack of separate, modern products shipped end to end, # distinct from the PHP platform above. See COMP-19 and COMP-21. # ================================================================== web_app_stack: nextjs: depth: "advanced" context: "Next.js 16 App Router, Server Components, Server Actions, API Routes, and edge middleware for route protection; server-first, credentials never reach the client. Also used as a private-backend proxy layer (all client→backend calls routed through app/api/*)." react: depth: "advanced" context: "React 19, client components for interactive surfaces (typeahead pickers, modals, WYSIWYG), server components for data loading." nestjs: depth: "advanced" context: "NestJS 11 backend (modular DI, controllers/providers, passport-jwt guards, @nestjs/schedule cron) over TypeORM 0.3 + PostgreSQL; class-validator DTOs; versioned migrations; UUIDv7 + integer state-machine conventions." auth_stacks: depth: "advanced" context: "NextAuth 5 + Google OAuth (a two-identity service-account/user model); and a delegated model where Supabase verifies OAuth credentials only while the app mints/owns its own JWT sessions (two-token: pending-registration vs. full-session), provider cookies never sent to the browser." jira_api: depth: "advanced" context: "Hand-written server-side client (no SDK) over Jira Cloud REST v3 + Agile v1, identity resolution, issue creation, attachments, watcher management, sprint placement; AbortController timeouts." gaming_apis: depth: "advanced" context: "IGDB (Apicalypse) game-catalog sync and Twitch Helix stream-popularity sync via Twitch client-credentials OAuth2; cron-driven bulk + delta loads." styling: "Tailwind CSS 4 (config-less v4 syntax) with next-themes; and vanilla/inline CSS on the distributed platform's frontends." rich_text: "react-quill-new WYSIWYG with turndown (HTML→Markdown); xlsx for spreadsheet export." delivery: "GCP Compute Engine VM under PM2 (staging/prod branch promotion); and Railway PaaS auto-deploy (with reverse-proxy/forwarded-host + redirect-cookie handling); Cloudflare-fronted services." # ================================================================== # 9. ARCHITECTURE & DELIVERY PATTERNS # ================================================================== patterns: - "Single front-controller request pipeline (parse → authenticate → authorize → route → execute → serialize)." - "Multi-format response serialization (JSON / XML / CSV / XLS / PDF / PHP / JS)." - "Stateless API + external session/cache tier for horizontal scale." - "Multi-environment routing (production / UAT / staging / sandbox) with hybrid modes." - "Idempotent, dry-run-by-default, reversible batch + remediation tooling." - "Defense-in-depth security layered across request, upload, auth, secrets, and infra." - "Multi-tenant isolation from the SQL layer through to gated analytics shares." - "Documentation-as-code: source-anchored, cross-referenced, machine-discoverable."