FULL-STACK SOFTWARE ENGINEER · FRISCO, TEXAS

April
Vanderslice

Full-stack software engineer with production experience across JavaScript, REST APIs, and AWS cloud services. Shipped List Total, an independent iOS app, to the App Store. Based in Frisco, Texas.

List Total

A running total for the lists you already keep. Add a price and quantity to any Apple Reminders item and List Total does the math as you shop. No account, no server, and nothing to migrate.

A List Total grocery list with a running total of $233.00
The List Total home screen with a total next to each Reminders list A party planning list in List Total totaling $547.00
SWIFTUI · EVENTKIT / REMINDERS · ICLOUD SYNC · IOS 26 · NO BACKEND
THE PROBLEM

You find out what a shopping trip costs at the register, which is the one moment you can no longer do anything about it. Every other app that attempts to solve this asks you to abandon the list you already keep in Reminders and re-enter it somewhere else behind a sign-up.

ARCHITECTURE

SwiftUI throughout, with EventKit as the only data layer. There is no database and no backend: Apple Reminders is the store, so lists keep syncing through the user's own iCloud account exactly as they did before installing the app. Reminders has no price or quantity field, so cost and count are encoded into the item's existing text and parsed back out on read, then totals and remaining-to-buy are derived values computed in the view model rather than stored state. Shipped for iOS 26 with zero data collection.

THE HARD PART: STRUCTURED DATA IN A STORE I DON'T OWN

The product promise: keep using Reminders. This is also the hardest engineering constraint in the app. I need typed numbers per item, and Reminders gives me strings. I can't add a column, I can't migrate anyone, and the user can edit the same list in Apple's app, on a Mac, or from Siri while my app is open. Three things followed from that:

  1. 01The encoding has to be legible to humans, not just to me. Whatever I write into a reminder is text a user will see in Apple's own app forever. So the format reads as something a person would have typed, and an item that has never been touched by List Total is simply an item with no price. It is not an error state and not a migration prompt.
  2. 02Parsing is forgiving; writing is strict. The reader accepts the sloppy variants people actually type and ignores anything it can't understand, rather than throwing. Every write goes back out in one canonical form. Unparseable text is never destroyed. Worst case an item contributes nothing to the total, which is a visible, correctable outcome instead of silent data loss in someone's shopping list.
  3. 03Treat the store as the source of truth. Totals are computed from whatever EventKit currently reports and the app refreshes on external change rather than assuming it owns the list. That's what makes iCloud conflicts a non-event: I have no second copy that can disagree.

The payoff is the thing I'd defend in review: the app has no onboarding, no account, no sync layer, and no data of its own to lose.

WHAT I'D DO DIFFERENTLY
  • Write the encode/decode round-trip tests before the UI. It's the one piece where a bug corrupts data a user actually cares about, and it's trivially testable in isolation. I built it alongside the interface instead, which meant I was verifying parsing by shopping.
  • Decide the permission story on day one. EventKit access is the entire app: without it there is nothing to show, so the denied and not-yet-asked states deserved to be designed screens from the start rather than something I handled once the happy path worked.
  • Ship the paid tier with a way to try it. $2.99 with no free path means the App Store page has to do all the convincing, and I have no data on how many people bounced because they couldn't see a total on their own list first.
Feb 2026 — Present
Frisco, TX

Independent iOS Developer & Software Engineer

Self-Employed

Designed, built, and shipped List Total to the App Store, a running total for Apple Reminders lists.

  • Shipped a SwiftUI app built entirely on EventKit: Apple Reminders is the data store, so lists sync through the user's own iCloud with no account, no backend, and zero data collection.
  • Designed a human-legible encoding for price and quantity inside Reminders' existing text fields, with forgiving reads and canonical writes so external edits from Apple's app or Siri never corrupt a list.
  • Owned the full product lifecycle across SwiftUI, EventKit, and iOS 26: architecture, UI/UX, App Store release, and post-launch iteration.
May 2025 — Feb 2026
Dish account · Contract

Software Engineer

Tech Mahindra

Event-driven architecture across production AWS systems.

  • Designed and built event-driven architectures on AWS with EventBridge — configuring buses, rules, targets, and schemas.
  • Integrated Lambda, Step Functions, SQS, SNS, and DynamoDB to meet architecture best practices and improve reliability.
  • Delivered dead-letter queue, retry, and error-handling improvements that increased the reliability of event-driven services.
  • Coordinated across engineering teams to support active releases with minimal downtime.
Jan 2024 — May 2025

Parental Leave

Took leave following the birth of my child.

Sept 2022 — Jan 2024
Plano, TX

Software Engineer

Dish Network

Converted from contractor to full-time on demonstrated domain expertise.

  • Recognized for mobile device management domain expertise and hired full-time.
  • Identified and resolved production issues through proactive monitoring, improving system stability.
  • Partnered with the architecture team to bridge system-design intent and business requirements.
May 2022 — Sept 2022
Dish account · Contract

Software Engineer

Tech Mahindra

College-hire cohort supporting Dish's MVNO expansion.

  • Gained hands-on Agile and full SDLC experience as part of a college-hire cohort.
  • Configured Google Cloud Platform, Apigee, and serverless Lambda functions to support MVNO product features.
  • Collaborated with solution architects to understand end-to-end systems and inform feature development.

B.S. Web Design & Development

Full Sail University · 2020–2022 · Salutatorian, 3.9 GPA

LANGUAGES & UI
JavaScript
React
HTML / CSS
SwiftUI
C#
CLOUD & BACKEND
AWS
Express
PostgreSQL
REST APIs
Event-Driven Architecture
Totalist v2

Totalist v2

Full-stack rebuild — custom API, PostgreSQL, JWT auth.

VIEW CODE →
Quizzes

Quizzes

GitHub OAuth login with Twig SSR + React front end.

VIEW CODE →
Home Library

Home Library

Book catalog using the Open Library API + Context.

VIEW CODE →
User Dashboard

User Dashboard

React Router dashboard with Recharts + live API data.

VIEW CODE →
Totalist v1

Totalist v1

First version — HTML, Bootstrap, and JavaScript.

VIEW CODE →
Babyland Recreation

Babyland Recreation

Template rebuild using floats and pseudo-classes.

VIEW CODE →