Full-stack Software Engineer

Raymart Villos.

Solve it first. Build it right. Build it well.

I build web products end to end: the APIs, the data pipelines, and the dashboards on top of them.

  • TypeScript
  • Node.js
  • GraphQL
  • React
  • SQL
  • ClickHouse

Work

Where I’ve worked

Junior Software Engineer

MediaJel

May 2025 – Present · Full-stack work on a programmatic advertising platform for brands, retailers, and agencies.

Programmer

Ivant Technologies and Business Solutions

Nov 2024 – May 2025 · Sole developer of two client-hosted Java systems.

Intern

Ivant Technologies and Business Solutions

Jul 2023 – Aug 2023 · Built an invoice-parsing Java Spring web app.

1 / 3

MediaJel

Junior Software Engineer · May 2025 – Present

I work remotely in MediaJel’s 13-person engineering department, across the Node.js/TypeScript GraphQL API, the React customer dashboard, the Bun/Hono API gateway, and — with the Integration team — event tracking and data ingestion into ClickHouse.

  • Co-built multi-campaign analytics for the customer dashboard: wrote the GraphQL schema and resolvers for transaction data in the Node.js/TypeScript API (GraphQL Yoga, Prisma), implemented parts of the React UI, and helped move campaign data from S3 to MySQL with paginated queries, cutting large-campaign load times from several seconds to sub-second.
  • Work on the Integration team embedding MediaJel's tracking on client websites to collect event data with Snowplow and store it in ClickHouse.
  • Built an adapter for the in-house data onboarding app that ingests Google Search data into the data warehouse, landing it in ClickHouse tables and S3.
  • Contributing to authentication work on the Bun/Hono API gateway, focused on getting new-account enrollment and organization assignment correct.
  • Closed roughly 30 frontend and backend bug tickets, bringing a six-month backlog to near zero, and review and test teammates' pull requests.
  • TypeScript
  • Node.js
  • GraphQL
  • React
  • Prisma
  • MySQL
  • ClickHouse
  • Snowplow
  • Bun
  • Hono
  • AWS

Experience

MediaJel

Junior Software Engineer · May 2025 – Present

Full-stack work on a programmatic advertising platform for brands, retailers, and agencies.

I work remotely in MediaJel’s 13-person engineering department, across the Node.js/TypeScript GraphQL API, the React customer dashboard, the Bun/Hono API gateway, and — with the Integration team — event tracking and data ingestion into ClickHouse.

  • Co-built multi-campaign analytics for the customer dashboard: wrote the GraphQL schema and resolvers for transaction data in the Node.js/TypeScript API (GraphQL Yoga, Prisma), implemented parts of the React UI, and helped move campaign data from S3 to MySQL with paginated queries, cutting large-campaign load times from several seconds to sub-second.
  • Work on the Integration team embedding MediaJel's tracking on client websites to collect event data with Snowplow and store it in ClickHouse.
  • Built an adapter for the in-house data onboarding app that ingests Google Search data into the data warehouse, landing it in ClickHouse tables and S3.
  • Contributing to authentication work on the Bun/Hono API gateway, focused on getting new-account enrollment and organization assignment correct.
  • Closed roughly 30 frontend and backend bug tickets, bringing a six-month backlog to near zero, and review and test teammates' pull requests.
  • TypeScript
  • Node.js
  • GraphQL
  • React
  • Prisma
  • MySQL
  • ClickHouse
  • Snowplow
  • Bun
  • Hono
  • AWS

Ivant Technologies and Business Solutions

Programmer · Nov 2024 – May 2025

Sole developer of two client-hosted Java systems.

I owned development, deployment, and production support for two client-hosted Java systems — one for a printer, one for a cake shop.

  • Took over as sole developer of two client systems, inventory and job queueing for a printer and inventory and sales tracking for a cake shop: Spring Boot and JSP web apps on MySQL, hosted on each client's own machine.
  • Deployed and supported both systems in production: installed the application and database on client machines over remote access and resolved live issues, including calculation bugs in the cake shop's build.
  • Java
  • Spring Boot
  • JSP
  • MySQL

Ivant Technologies and Business Solutions

Intern · Jul 2023 – Aug 2023

Built an invoice-parsing Java Spring web app.

An internship spent building and testing a small invoice-processing web app in Java Spring.

  • Built a Java Spring web app that parsed invoices from spreadsheets and CSV files into JSON and posted them to an API endpoint.
  • Wrote and executed manual test plans covering the app's functional requirements.
  • Java
  • Spring

Projects

Polaris social card: “Software for one life.” beside its three systems, an engineering journal, activity expenses, and a habit tracker.

Polaris

A personal operating system — a journal, an expense tracker, and a habit tracker — built in code I own and rewrite as my needs change.

Polaris is software built for one user: me. Each system sits on a small platform layer, and when one stops fitting how I live, I rewrite its code instead of configuring it.

  • Built three systems on a shared platform layer (sign-in, data, and a global command palette): an engineering journal with full-text search, an expense tracker for capturing costs mid-errand, and a habit tracker that logs into the journal.
  • Moving the backend from Next.js REST routes on Prisma and Postgres to Convex one system at a time; expenses has moved, its data carried over by export, import, and verify scripts.
  • Organized as a Bun workspaces monorepo, with framework-free logic (dates, money, stats, parsing) in a shared core package.
  • TypeScript
  • Next.js
  • React
  • Convex
  • Prisma
  • PostgreSQL
  • Tailwind CSS
  • Bun
  • Vercel
TeleCal social card: “Track calories by just texting.” beside a chat where “chicken adobo with rice” comes back as 625 calories and 42 g of protein.

TeleCal

2026 · Solo developer

A Telegram bot that tracks calories and protein from plain-language meal descriptions, estimated by AI.

TeleCal logs calories and protein without leaving Telegram. Describe a meal in your own words; the bot asks a follow-up if it needs one, then logs it with a tap.

  • Built the /log conversation as a state machine stored in SQLite: the AI asks a follow-up question when a meal is ambiguous, and the user confirms its estimate with inline buttons.
  • Put OpenAI, Anthropic, and Gemini behind one provider interface that each user picks from, with an estimation cache and a background job that retries failed AI calls.
  • Recorded the tokens and dollar cost of every billed AI call, with per-user and per-model reports for admins only.
  • Added a Telegram Mini App for calorie and protein charts, signed in by validating Telegram's initData, plus a public landing page and in-bot access requests that admins approve in one tap.
  • TypeScript
  • Bun
  • grammY
  • SQLite
  • OpenAI
  • Anthropic
  • Gemini
  • Railway

Activity

On GitHub

1,266 contributions in the last year

View on GitHub

Works with

  • TypeScript
  • JavaScript
  • Java
  • Python
  • Node.js
  • GraphQL
  • NestJS
  • Prisma
  • Spring Boot
  • React
  • Tailwind CSS
  • PostgreSQL
  • MySQL
  • ClickHouse
  • Docker

About

From UP Diliman to MediaJel

I’m a full-stack software engineer in the Philippines, working remotely at MediaJel on a programmatic advertising platform built with TypeScript, Node.js, GraphQL, and React. In its 13-person engineering department I’ve shipped analytics features and authentication hardening.

Before that, at Ivant Technologies and Business Solutions, I owned development, deployment, and production support for client-hosted Java systems. I studied Computer Science at the University of the Philippines Diliman and graduated cum laude.