Full Stack Engineer

Jon Joseph Aguilar

Full Stack Engineer with 7+ years of experience shipping end-to-end features across frontend, backend, APIs, databases, and cloud infrastructure. Hands-on with React, Next.js, TypeScript, and Node.js, with backend depth in PHP (Symfony, Laravel) and cloud experience across AWS and GCP. Comfortable owning features from idea to deployment, and collaborating directly with product and stakeholders on scalable technical decisions.

Selected work

EagleEye

An automated outreach pipeline built as a portfolio demo. Given a topic, it searches for relevant articles, crawls them, and identifies each author using non-AI structural heuristics (JSON-LD, meta tags, byline patterns) rather than AI-assisted lookup, then locates a contact email through contact-page scanning and pattern guessing, gated by a name-plausibility check. AI is used only for drafting personalized outreach emails and follow-up replies — every AI-drafted message requires human review before sending, and real sending is hard-locked in code to a whitelist of test addresses. Automation is off by default, with hard caps on articles/drafts/sends per run and a persistent panel tracking AI cost and emails sent.

Node.js/TypeScript (pnpm monorepo) Fastify Next.js PostgreSQL + Prisma Redis + BullMQ Playwright + Cheerio Claude Haiku 4.5 API Resend Vitest + GitHub Actions CI

Beacon

A newsletter management platform for small teams. Handles subscriber management with CSV import and status tracking, a campaign editor with plain text, raw HTML, and drag-and-drop visual builder modes, scheduled sending via a cron-driven scheduler, and per-subscriber delivery tracking on a stats dashboard.

Laravel 13 (PHP 8.4) Sanctum SQLite React 19 TypeScript Vite Tailwind CSS 4 GrapesJS

Adarna

A real-time AI co-pilot for live conversations. Adarna listens to a meeting or interview as it happens — capturing both the user's microphone and the other participant's system audio via WASAPI loopback — transcribes everything locally with faster-whisper, and on a pause or hotkey asks Claude (via an authenticated Claude Code CLI session, not a metered API) to draft a short suggested response in a glanceable, always-on-top overlay. Because WSL can't access native Windows system audio, the app is split across two cooperating processes — a native Windows GUI/audio-capture process and a WSL-side transcription/orchestration process — talking over a local TCP socket. Audio and transcripts stay in memory for the session only; nothing is written to disk unless the user opts in.

Python (WSL + Windows-native) PySide6 pyaudiowpatch (WASAPI loopback) faster-whisper + webrtcvad pynput Claude Code CLI TCP socket IPC
Skills
Languages / DevOps
TypeScript JavaScript Node.js PHP AWS GCP Docker/Linux CI/CD HTML/CSS
Frameworks
React Next.js Symfony Laravel Vue Express
Databases / APIs
MySQL Redis MongoDB REST API design
Experience
May 2023–Present
Senior PHP Developer · Emapta Inc. (Zesty.io)
Feb 2024–Dec 2024
Full-Stack Engineer (Freelance) · MCM Retail Group Inc.
Mar 2022–May 2023
Development Team Lead · Cafe24 Philippines
Aug 2018–Feb 2021
Senior Web Developer · Cafe24 Philippines
Contact