SIQ

Work

The kind of work we do.

SIQ is a new studio, so this is founder-level work rather than a client roster — real systems built for real employers and as personal projects. Client names are withheld where the work involves confidential or regulated data; the systems and outcomes are real.

01Employer project

Multi-Tenant Workforce Attendance Platform

Challenge
A multi-location pottery studio needed one clock-in/attendance system that kept each location's staff data completely separate, with different access for front-desk staff versus owners.
Solution
Built a multi-tenant SaaS from the schema up — every table scoped to an organization, enforced twice over: once in application code, once as Postgres row-level security so a missing filter fails closed instead of leaking rows. JWT auth across four role tiers on top.
Tech
Next.js 14, NestJS, PostgreSQL, Prisma, Docker
Result
Core schema, tenant isolation and auth shipped and verified with a cross-org isolation test; the attendance engine is the current build phase.
Web AppAPIPostgres + RLS
02Employer project

Multi-Location Inventory Management System

Challenge
The same studio was tracking pottery and glazing materials across locations in spreadsheets that drifted out of sync within weeks.
Solution
A second, independently-deployed application — its own database, its own auth, sharing hosting with the attendance platform purely for deployment convenience, with zero coupling between the two.
Tech
Next.js, NestJS, PostgreSQL, Prisma
Result
Running alongside the attendance system as one of two internal tools now used for day-to-day operations.
Stock CountAPIPostgres
03Personal project

AI Career-Readiness Platform

Challenge
Most resume tools hand back a score and stop there — nothing to actually act on the next day.
Solution
A FastAPI app that parses an uploaded résumé, sends it to an LLM for structured feedback (score, strengths, missing keywords, suggested projects), and wraps it in full auth and a persistent dashboard so it's a place users come back to, not a one-off PDF report.
Tech
FastAPI, Supabase, Groq, pypdf
Result
Signup through résumé analysis to a saved dashboard is live end-to-end; next phase is a daily-mission system to turn the report into a habit.
Upload résumé
Parse text
AI scoring
Dashboard
04Personal project

Enterprise Document Q&A (RAG) System

Challenge
Wanted to prove out a production-grade retrieval pattern rather than a weekend demo — multi-user, private per-workspace data, and answers that cite sources instead of confidently guessing.
Solution
A FastAPI backend with per-user private workspaces, paragraph-aware document chunking, embeddings stored in Postgres via pgvector, and a similarity threshold that rejects weak matches before the LLM ever sees them. No strong evidence, no answer — it says so instead of hallucinating.
Tech
FastAPI, PostgreSQL, pgvector, Groq, sentence-transformers, Docker
Result
Completed end-to-end: authenticated multi-user retrieval with source-cited, grounded answers.
UploadpgvectorGroq LLM
05Client work

Lead Extraction & CRM Pipeline

Challenge
A Canadian short-term lending platform's outreach contacts were scattered across spreadsheets with duplicate entries and no clean path into the CRM.
Solution
A Python pipeline that extracts, cleans and deduplicates lender and company contact records, then formats them for direct import into Mautic.
Tech
Python, Pandas, Mautic CRM
Result
Replaced a manual, error-prone spreadsheet process with a repeatable import pipeline.

$ extract --source lender_prospects.csv

→ 2,847 rows found

→ 612 duplicates removed

→ formatted for mautic_companies_import.csv

06Client work

AI Support Chatbot Foundation for a Lending Platform

Challenge
Support and onboarding questions for a short-term lending platform were repetitive and ate into the team's time.
Solution
Built the document-ingestion pipeline that grounds the chatbot in the company's own reference material, so answers reflect actual policy instead of general knowledge.
Tech
Python, Jupyter, LLM API
Result
Ingestion pipeline built as the foundation the chatbot's knowledge base runs on — early-stage, not yet customer-facing.
Reference docs
Ingestion pipeline
Chatbot
07Employer project

Pottery-Wheel Browser Game

Challenge
The studio wanted something more memorable on its website than a static "book a class" page.
Solution
A full pottery-wheel shaping-and-glazing game — four levels, six distinct tools, a real hollow-vessel shaping mechanic (not just a cosmetic wheel spin), procedural sound, and free orbit-camera controls. Researched against three commercial pottery games to match genre-standard feel before building.
Tech
Godot 4.7, GDScript, HTML5/WebGL export
Result
Full start-to-end game loop playable and confirmed exporting correctly for web hosting.
Pottery-wheel game screenshot — shaping a bowl on the wheel
08Client work

WooCommerce Security & Performance Audit

Challenge
A UK e-commerce retailer's WooCommerce store had accumulated years of plugins and backups with nobody auditing what was still needed — or safe.
Solution
A full server-side audit over FTP: mapped the entire plugin stack and flagged what was redundant, then found the real issue underneath it.
Tech
WordPress, WooCommerce, Flatsome, FTP/server audit
Result
Found ~14GB of database backups sitting publicly downloadable in the web root, plus a 3-deep overlapping cache/plugin stack — both handed back with a remediation plan.

$ audit wp-content/

→ 44 plugins installed (3 caching, 2 backup, 2 SEO)

⚠ 14GB of backup .zip in public web root

→ flagged for removal

09Personal project

Algorithmic Trading Systems

Challenge
Wanted to compare whether a multi-agent LLM "debate" produces better trade reasoning than a single model or a traditional rule-based bot.
Solution
Built several systems in parallel to compare approaches: a multi-agent reasoner where market, risk, macro and critic agents argue out a decision into shared memory; a BTC/gold correlation bot; and a MetaTrader 5 execution bot with its own analytics dashboard.
Tech
Python, Next.js, Gemini/OpenRouter, MetaTrader 5 API, Flask
Result
Multiple working prototypes, from rule-based execution to an agentic reasoning layer, used to evaluate approaches before committing to one architecture.

4

Agents

3

Bots built

2

Providers

10Client work

Property Management Web Platform

Challenge
A residential property management company needed a rental-facing web platform for listings and tenant information without relying on a third-party portal.
Solution
A Laravel-based property platform covering listings and tenant-facing pages, plus supporting formula and reporting spreadsheets for internal operations.
Tech
Laravel, MySQL
Result
Delivered as the client's own-branded property management platform.
ListingsLaravel APIMySQL
Start a Project