SYS://JOSEABARCA.COM ONLINE --:--:--
Jose Abarca

> whoami_

JOSE ABARCA

Data Analyst // SQL · Python · Power BI // Data Pipelines & Automation

ABOUT ME

I'm a data analyst from Chile who likes owning the whole path of the data: pulling it out of the platforms where it's born, landing it clean in SQL Server, automating the refresh, and turning it into Power BI reports that people actually open. At OurRescue I do that for fundraising, marketing, e-commerce, finance and mission teams.

I studied Computer Information Technology in the US, so I'm as comfortable writing the Python and T-SQL behind a report as I am designing the report itself, and I work in Spanish and English.

> education

  • Bachelor's in Computer Information Technology · BYU-Idaho · Rexburg, Idaho, USA
  • Datapath certification · Derby, England

> also

  • Two years of full-time volunteer service as a missionary for The Church of Jesus Christ of Latter-day Saints

OURRESCUE

DATA ANALYST · NONPROFIT · SQL SERVER + POWER BI

OurRescue is a nonprofit that fights child trafficking and exploitation. Its teams run on a dozen different platforms, from the donation forms and the CRM to the online store, ads and social media, and each one keeps its own data. I built the layer that brings them together: Python jobs that pull each platform's data into SQL Server, on a schedule, and the Power BI reports that each department uses to make decisions.

10+connected platforms
30+Power BI reports
40+Python ETL scripts
1hfastest refresh cycle

> what I do

Data pipelines Python ETL from REST APIs (donations, CRM, Shopify, ShipStation, GA4, Google Ads, Meta, YouTube, volunteer and matching-gift platforms) into SQL Server staging tables, with retries, pagination and incremental loads.
SQL Server T-SQL that turns raw stage tables into reporting tables: MERGE upserts, deduplication, date and text cleanup, and window functions for donor retention, recurring giving and lapse-risk analysis.
Automation Jobs scheduled with SQL Server Agent and Task Scheduler, from hourly donation syncs to daily loads, plus a Playwright bot that downloads a report from a platform with no API.
Power BI Reports for fundraising and recurring donors, marketing, the online store, budget vs. actuals, HR, and the impact of the K-9 and law-enforcement support programs.

> sample query // fictional schema, same idea

-- LYBUNT: gave Last Year But Unfortunately Not This year
WITH yearly AS (
  SELECT donor_id,
         YEAR(gift_date)  AS gift_year,
         SUM(amount)       AS total
  FROM   dbo.gifts
  GROUP BY donor_id, YEAR(gift_date)
)
SELECT   ly.donor_id, ly.total AS last_year_total
FROM     yearly ly
LEFT JOIN yearly ty
       ON ty.donor_id = ly.donor_id
      AND ty.gift_year = ly.gift_year + 1
WHERE    ly.gift_year = YEAR(GETDATE()) - 1
  AND    ty.donor_id IS NULL
ORDER BY ly.total DESC;

> stack

SQL ServerT-SQLSQL Server AgentPythonpandas pyodbcSQLAlchemyREST APIsPlaywrightBigQuery Power BIDAXPower QueryPower AppsExcel

BONUS

A happy Rottweiler lying in a doorway with its tongue out

Congrats on making it this far down: you unlocked my work-from-home buddy. Head of security, in charge of reminding me to take breaks and of supervising every deploy from the doorway 🐾

BI SAMPLES

My work reports can't leave the building, so these are public samples built the same way, on fictional data, so they can be fully public.

Tender marketIN THE LAB
Coverage map with radiusIN THE LAB
Operations reportsIN THE LAB

BONUS

Estadio Nacional de Chile

If you got this far, then you deserve a picture of the Chilean National Stadium where the most amazing football team plays: Universidad de Chile 💙

HAGOTEK

AV & SECURITY INTEGRATOR · CHILE · CO-OWNER & SOLE DEVELOPER

Hagotek is a Chilean company that designs and installs audio, video, electronic security and smart lighting systems across the country. I'm one of its co-owners, and I built its two pieces of software on my own: the public website and the ERP the company runs on.

A Website

A bilingual Spanish / English site with a page for each service and a direct WhatsApp line for quotes. Static, built with Astro, deployed on Netlify and with a sitemap for search engines.

LIVE_FEED // hagotek.cl ONLINE
Hagotek website home page: a conference room with a video wall behind the headline 'Complete engineering solutions in audio, video, security, and smart lighting'
AstroNetlifyi18n ES / ENSitemap

B In-house ERP

A private web app that covers the whole commercial cycle: a quote becomes a sales order, the order produces dispatch notes and invoices, and every tax document is issued electronically to Chile's tax service (SII). The team uses it every day. Its data is real client information, so instead of screenshots, this is how documents flow through it:

3SII e-document types
8business modules
5user roles
24data models

> capabilities

  • Quotes and sales orders with per-line cost and margin, and prices in CLP or USD per product
  • Electronic invoices, dispatch notes and credit notes issued to the SII through the Soluciones Market DTE engine, with RUTs and SII field limits validated before emitting
  • Dispatch notes that discount stock, purchase orders with goods receipt, and low-stock alerts
  • Projects with tasks and attachments, plus a draw.io-style editor for AV and network connectivity diagrams
  • Expenses by cost center, VAT and profitability reports, and a dashboard with sales rankings
  • Five roles with server-side permission checks, account lockout after 5 failed logins and encrypted backups
  • A staging copy of production that blocks real tax documents, for testing changes safely

> stack

Next.jsTypeScriptReactPostgreSQLPrisma NextAuthTailwind CSSshadcn/uiZodReact Flow jsPDFGitHub ActionsVercel
PRIVATE REPO // CLIENT DATA STAYS PRIVATE

C Tender radar

Chile's public institutions buy through Mercado Público, the state procurement platform. Paid platforms sell tender alerts as a monthly subscription; this one is built into the ERP and tuned to exactly what Hagotek installs. Every morning a GitHub Actions job pulls the open tenders, scores the ones it hasn't seen yet and keeps the relevant ones. Unlike the rest of the ERP, this module only works with public data, so it gets a real screenshot:

LIVE_FEED // tenders DAILY SYNC
Hagotek ERP tenders page: open Mercado Público tenders ranked by score, each with closing date, title, buyer and region, category tags such as CCTV / seguridad and Con instalación, and the status Nueva

> tap / click to open full size

> how it decides

  • Weighted keyword rules for five categories (audio, audiovisual, CCTV / security, access control, automation); a match in the title or description weighs more than one buried in the item list
  • The UNSPSC product codes of each item add to the score
  • Filters out tenders that only match by shared words (security guards, medical hearing aids…) and one-off event rentals
  • Flags the ones that include on-site installation, not just shipping boxes
  • Keeps tracking saved tenders after they close, to see whether they were awarded or declared void
  • Emails a morning digest of the new matches through Resend, with HTML built to render in Outlook
  • In the ERP: open / following / discarded views, category and installation filters, search, and a status for each tender from New to Bidding to Won or Lost
  • Deliberately simple: hand-tuned rules refined by checking what gets in and what doesn't, not a model
Mercado Público APIGitHub Actions cronRegex scoringUNSPSC ResendPrisma

MI ASISTENTE

REAL-TIME VOICE AI COMPANION · LANGUAGE COACH · WINDOWS · ANDROID

A desktop voice assistant I talk to through my earbuds. It streams audio to the Gemini Live API (or the OpenAI Realtime API) over WebSockets, answers in a natural voice and can be interrupted mid-sentence. Its listener modes stay silent during meetings and only whisper a correction when someone says something false, a neutral counterpoint to sweeping opinions, or a useful fact, checking Wikipedia before correcting.

It's also the perfect partner to learn English, Spanish, Portuguese or Japanese: it talks with you in the language, corrects your mistakes on the spot and saves them so you can review them later.

LIVE_FEED // mi-asistente.exe REC
Mi Asistente desktop app in dark mode, in fact-checker plus useful-facts mode, correcting a false claim after a Wikipedia lookup
4languages to learn
30selectable voices
11memory folders
7personality modes

> capabilities

  • Real-time speech-to-speech with server-side voice detection, barge-in and automatic session resumption
  • Language-coach modes for English, Spanish, Portuguese and Japanese that correct mistakes as you speak
  • Fact-checker modes with Wikipedia lookups, and Google Search when the API plan allows it
  • Long-term memory in SQLite organized in folders (agenda, music, learning…), searchable by voice and in the app
  • Editable personalities as Markdown profiles, 30 voices, sleep mode and global hotkeys
  • Warm light/dark desktop UI built with customtkinter
  • Scripted server-event tests for interruptions, tool calls and reconnects, all offline with Pytest

> stack

PythonasyncioGemini Live APIOpenAI Realtime API WebSocketsSQLiteNumPysounddevice customtkinterPytest
Download for Windows Download for Android GitHub Repo

> free demo // windows 10-11 // 41 MB zip // unzip and run Mi Asistente.exe. Use earbuds. If Windows says "protected your PC", click More info → Run anyway.

> android 10+ // 31 MB apk // open it on your phone and allow installing from your browser, then give it the microphone.

BONUS

Jose's desk at night: two monitors, one with a neon cyberpunk city wallpaper, a white mechanical keyboard lit in cyan, a Cyberpunk 2077 desk mat and the PC glowing blue beside them

Congrats on making it this far down: you unlocked my netrunner rig. Two screens, a keyboard glowing cyan and a Cyberpunk 2077 desk mat. Every build on this page was jacked in from here 🦾