{"$schema":"https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json","basics":{"name":"Alex Gwak","label":"Full Stack Software Engineer","email":"alexgwak2@gmail.com","phone":"(672) 513-5129","url":"https://alexgwak.com/","summary":"Full-stack software engineer with nine years on web and mobile products. Led a real-time fuel logistics platform at Scamp Tech for about 120 operators, with load assignment about 30% faster. Earlier: satellite vessel-detection tools at MDA Space, and internal BI and ops apps at TEEMA Solutions. Currently building AI agent systems and workflow tools with React, Next.js, and Temporal.","location":{"city":"Vancouver","region":"BC"},"profiles":[{"network":"GitHub","username":"alexgwak","url":"https://github.com/alexgwak"},{"network":"LinkedIn","username":"alex-g-7532581b6","url":"https://www.linkedin.com/in/alex-g-7532581b6/"}]},"work":[{"name":"Scamp Tech","position":"Software Engineer","location":"Vancouver, BC","startDate":"2023-01-01","summary":"Led architecture for a real-time fuel logistics platform used by about 120 dispatchers and drivers. Fourteen nested operational views, live data, and load assignment about 30% faster than the previous UI.","highlights":["Led architecture for a real-time fuel logistics platform used by about 120 dispatchers and drivers, with 14 nested operational views and live data on high-volume delivery days.","Rebuilt dispatch and driver flows in React, Next.js, Redux, and Vite so assigning a load took about 30% less time than the old nested-form UI.","Wired live data through C#, Azure SQL, and Cosmos DB, and covered the critical paths with Playwright and Selenium."],"metrics":[{"name":"Daily operators","value":"~120","note":"Dispatchers and truck drivers on the live fuel board during a delivery day. This is not a lifetime unique-user count. Taken from a typical peak Vancouver shift and rounded to the nearest ten."},{"name":"Faster dispatch","value":"~30%","note":"How much faster it became to assign a load after the nested-form UI was rebuilt into ops views. Compared time-to-assign on the old path versus the new one across the core dispatch tasks, then averaged the difference."},{"name":"Nested views","value":"14","note":"Production screens operators open in the dispatch and driver app: board, load detail, exceptions, driver, and nested panels under them. Counted distinct shipped views, not every modal or toast."}]},{"name":"MDA Space","position":"Software Engineer","location":"Vancouver, BC","startDate":"2022-01-01","endDate":"2023-12-31","summary":"Built satellite imaging and vessel-detection front-ends in Angular and TypeScript, used by about 25 analysts, plus an ArcGIS elevation-change widget in Python.","highlights":["Built satellite imaging and vessel-detection front-ends in Angular and TypeScript, used by about 25 analysts to request imagery and inspect vessel detail.","Built an ArcGIS elevation-change widget in Python and TypeScript that compared elevation across chosen date ranges for operational reviews.","Added about 60 unit tests and documentation, and tightened the patterns around imagery request, which cut regressions on that path."],"metrics":[{"name":"Analyst users","value":"~25","note":"Imagery and vessel-detection operators who used the request and inspect UIs during the MDA engagement. Approximate count of people on those tools in that period, not a seat-license total."},{"name":"Geospatial apps","value":"2","note":"Two shipped deliverables: the vessel-detection front-end and the ArcGIS elevation-change widget. Counted as two because each was a separate product with its own UI."},{"name":"Tests added","value":"~60","note":"Unit tests added around imagery request, vessel detail, and elevation-change flows, plus docs for those patterns. Approximate count of tests written in that quality pass, not the size of the whole suite."}]},{"name":"TEEMA Solutions","position":"Full Stack Developer","location":"Vancouver, BC","startDate":"2017-01-01","endDate":"2022-12-31","summary":"Designed and shipped 8 full-stack internal tools in JavaScript, TypeScript, PHP, and SQL, including recruiter dashboards used by 4 teams, contract management, BI apps, and WordPress automation that saved about 12 hours of admin work per week.","highlights":["Designed and shipped 8 full-stack internal tools in JavaScript, TypeScript, PHP, and SQL, including a recruiter BI dashboard used by 4 recruiting teams to compare monthly, quarterly, and annual performance.","Built contract-management and business-intelligence apps on WordPress and SQL that replaced spreadsheet-heavy workflows for ops and recruiting staff.","Shipped WordPress themes, plugins, and Zapier automation that saved about 12 hours of manual admin work per week."],"metrics":[{"name":"Tools shipped","value":"8","note":"Internal products delivered in the role: recruiter dashboard, contract management, BI apps, WordPress themes/plugins, and ops automation. Counted each shipped tool, not every script or theme variant."},{"name":"Teams on BI","value":"4","note":"Recruiting teams that ran monthly, quarterly, and annual comparisons on the performance dashboard. Counted the teams on that dashboard, not every recruiter at the company."},{"name":"Saved / week","value":"~12h","note":"Weekly hours no longer spent on the manual WordPress and ops tasks the automation replaced. Estimated by adding up that recurring work, then rounding to the nearest few hours."}]}],"projects":[{"name":"Truck Load / Fuel Management System","description":"Real-time fuel logistics platform for about 120 dispatchers and drivers at Scamp Tech. 14 nested views, live APIs, and load assignment about 30% faster.","highlights":["Production dispatch and driver app used daily by about 120 fuel operators, with 14 nested operational views and live APIs under high-volume delivery load.","Rebuilt load assignment in React, Next.js, Redux, and Vite so it ran about 30% faster than the old nested-form UI.","Live data path on C#, Azure SQL, and Cosmos DB, with Playwright and Selenium on the critical delivery flows."],"keywords":["React","Next.js","TypeScript","Redux","Vite","C#","Cosmos DB"],"url":"https://alexgwak.com/work/fuel-logistics"},{"name":"AI Workflow Orchestrator","description":"A visual canvas, similar to Figma, for designing multi-agent AI workflows as a DAG. Three-tier agent hierarchy, publishing and versioning, and Temporal for long-running jobs.","highlights":["Built a visual canvas in React and TypeScript for multi-agent AI workflows on a DAG, with Redux state and Canvas API node rendering.","Designed a 3-tier agent hierarchy (Director, Managers, Employees) so users can put together AI teams that run day-to-day tasks once a workflow is deployed.","Implemented publishing, versioning, and a Supabase-backed marketplace, with Temporal.io for long-running jobs and Docker/Kubernetes CI/CD."],"keywords":["React","TypeScript","Redux","Temporal.io","Supabase","Docker","Kubernetes","Multi-agent"],"url":"https://alexgwak.com/work/ai-workflow-orchestrator"},{"name":"Geospatial Systems","description":"Satellite vessel detection front-ends and an ArcGIS elevation-change widget from MDA Space. Used by about 25 analysts for imagery requests, vessel detail, and geographic analysis.","highlights":["Satellite imaging and vessel-detection interfaces in Angular and TypeScript, used by about 25 analysts to request imagery and inspect vessel detail.","ArcGIS elevation-change widget in Python and TypeScript that compared geographic elevation across chosen date ranges."],"keywords":["Angular","TypeScript","Python","ArcGIS"],"url":"https://alexgwak.com/work/geospatial-systems"},{"name":"Job Match / Purpl","description":"Job-matching mobile app with swipe matching and recommendation services. Live on the Apple App Store.","highlights":["Designed and shipped a job-matching app in React Native and TypeScript, live on the Apple App Store via Fastlane CI/CD.","Built real-time swipe matching with Socket.io and Firebase Realtime Database, plus recommendation services in Node.js, Express, and MongoDB."],"keywords":["React Native","TypeScript","Socket.io","Firebase","Node.js","Express","MongoDB","Fastlane"],"url":"https://alexgwak.com/work/job-match-purpl"}],"education":[{"institution":"University of Alberta","area":"Computer Science","studyType":"B.S.","startDate":"2014-01-01","endDate":"2017-12-31","courses":["2014 Academic Award Scholarship"]}],"skills":[{"name":"Programming Languages","keywords":["TypeScript","JavaScript","Python","C#","SQL","PHP"]},{"name":"Frontend","keywords":["React","React Native","Next.js","Angular","Vite","ArcGIS","HTML/CSS"]},{"name":"Backend & Databases","keywords":["Node.js","Express","Azure SQL","Cosmos DB","MongoDB","Supabase","REST","GraphQL","Redis"]},{"name":"DevOps & Cloud","keywords":["Docker","Kubernetes","Azure","AWS","Google Cloud Platform","Vercel","Railway"]},{"name":"Quality & Testing","keywords":["Jest","Vitest","Jasmine","Playwright","Selenium"]},{"name":"State Management","keywords":["Redux","Zustand","TanStack Query"]},{"name":"AI & Agent Frameworks","keywords":["CrewAI","Temporal.io","RAG (Retrieval-Augmented Generation)"]},{"name":"Messaging & Event Streaming","keywords":["Kafka","Socket.io","WebSockets"]}],"meta":{"canonical":"https://alexgwak.com/resume.json","version":"1.0.0","lastModified":"2026-08-13"}}