Livia Gu — Senior Software Engineer

I build the parts of a system nobody notices — until they'd have to notice their absence.

Building full-stack web platforms — embedding Qlik Sense Cloud analytics, standing up web portals, and architecting auth, on Azure, PostgreSQL, and Supabase.

About

I'm a senior software engineer at a fast-paced data consultancy, building secure web solutions — data visualization, authentication architecture, and custom Qlik Sense Cloud extensions — for clients who need their data flowing safely from backend to frontend.

I didn't start here. I was a photographer first, and started teaching myself to code so I could build my own site instead of paying someone else to. The photography mostly stayed a hobby; the code didn't let go.

These days I'm also the reason my eldest is curious about how computers actually work — not something I set out to do, just a nice side effect of building things at the kitchen table.

Selected Work

  • Secure Auth & Embeddable Data Portals

    Problem
    each client needed their portal embedded in a different host platform (WordPress, Squiz, Webflow) and authenticated through a different identity provider (Qlik Sense Cloud's IdP, Microsoft Entra ID, Okta, or Salesforce) — no single template would fit every case.
    Role
    designed and built a distinct auth/authorization and embedding architecture for each client's portal, case by case rather than off one shared template.
    Key decisions
    • fit each portal's auth flow to that client's specific IdP instead of forcing every client through one abstraction
    • built each embed to work safely within its own host CMS
    Outcome
    a secure standalone portal or safe CMS embed for each client, architected around their own platform and IdP rather than forced through one shared core.

    Stack: Azure, SvelteKit, PostgreSQL, Node/Express, Qlik Sense Cloud, React

  • WordPress Plugin for Secure Qlik Sense Data Visualization

    Problem
    a WordPress site needed to show customizable data visualizations sourced from Qlik Sense Cloud, without exposing Qlik credentials or API calls to the browser, and without needing a developer involved every time the visualization needed to change.
    Role
    designed and built the plugin end-to-end — the secure backend and the customizable frontend visualization.
    Key decisions
    • kept all Qlik Sense Cloud authentication and API calls server-side, so the browser never touches Qlik credentials or raw API responses directly
    • made the visualization configurable by non-technical editors from within WordPress, instead of hardcoding it per deployment
    Outcome
    a WordPress site securely displaying live Qlik Sense Cloud data through a customizable visualization, with no Qlik access exposed client-side.

    Stack: WordPress, Node.js, Qlik Sense Cloud

  • Qlik Sense Cloud Data Visualization Extension

    Problem
    large, messy datasets needed an interactive visualization inside Qlik Sense Cloud; reporting relied on manual entry and multiple separate reports.
    Role
    designed and architected the extension end-to-end (a custom Qlik Sense Cloud visualization extension, not a tweak to an existing one).
    Key decisions
    • smart, context-aware tooltips rather than generic labels
    • collapsible/expandable bar states so dense data shows an aggregate view by default and expands to detail on demand
    • auto-display logic that handles complex, variable data-loading conditions without per-dataset manual config
    Outcome
    replaced manual data entry and multiple separate reports with one automated visualization.

    Stack: Qlik Sense Cloud Extension API, D3.js, jQuery

  • Math Ninja & Beep2Burn

    Problem/what it is
    • Math Ninja: turn-based arithmetic dueling game for kids — challenge a friend, take turns solving questions, track scores and climb a leaderboard.
    • Beep2Burn: a workout timer and fitness-tracking app for interval-based training — plan exercises, execute with guided audio/visual cues, track progress over time.
    Role
    solo developer on both, published to Google Play.
    Key decisions
    • Math Ninja: turn-based dueling against a friend instead of solo drills — makes repetition social and competitive rather than a chore.
    • Beep2Burn: guided audio/visual cues so users don't have to look at their phone mid-set.

    Stack: React Native, Firebase

  • Country Indicators

    Problem/what it is
    an interactive dashboard visualizing 1800-era country data (GDP, life expectancy, population across ~200 countries/territories) — bar chart, scatterplot, beeswarm, and map, plus a sortable table, all over the same dataset.
    Role
    solo, personal project — built to demonstrate visualization range with full creative control.
    Key decision
    four distinct chart types over one dataset — bar for direct comparison, scatterplot for relationships between metrics, beeswarm for distribution, map for geography — so the same data supports four different questions rather than one fixed view.
    Outcome
    a fully public, interactive D3.js demo — dynamic, drivable proof of data visualization ability, standing on its own.

    Stack: D3.js, SvelteKit

Writing & Notes

This is a place to capture my thoughts and ideas — I write here to think out loud about whatever problem just fought me, and because turning a mess into a clear explanation is often how I actually understand it.