Questions

  • Why is PostgresSQL so tightly coupled? What is the issue with using it and severless Hint: See Neon

Teachings

  • Tomcat and spring boot chains
  • JVM and GC management

TODO

Potential project: personal spending ingestion and analytics

Problem: most purchases happen through online payments and Apple Pay across multiple banks and apps. The current monthly flow of exporting transaction PDFs, transforming them into a personal format, and then storing/analyzing them is too manual.

Goal: build a self-hosted spending pipeline with:

  • iPhone-side or middleware ingestion whenever a payment happens.
  • Best-effort extraction of amount, merchant, timestamp, payment method/card, bank/app source, and raw evidence.
  • A central online database hosted by me.
  • A frontend with a comprehensive view of spending, trends, categories, reimbursements, and card reward limits.

Initial research finding: a normal iPhone app probably cannot read all notifications from other apps. iOS does not expose an Android-style notification listener API to App Store apps. Apple notification APIs are for an app’s own notifications/extensions, not arbitrary banking app notifications. There is, however, an Apple Shortcuts Wallet Transaction trigger that can run an automation when a selected Wallet card/pass is tapped. This may cover some Apple Pay tap transactions, but not every online payment, PayNow, bank-app notification, Apple Watch payment, recurring payment, or delayed card posting.

Practical starting direction: use email alert parsing for near-real-time capture, monthly PDF/CSV statement parsing for completeness/reconciliation, and Apple Pay Shortcuts as an optional convenience layer. Treat Wallet/Shortcuts data as helpful but not the source of truth.

Sources to revisit:

Potential ingestion paths to test:

  • Email alert parsing through Gmail/IMAP parse bank/card alerts POST normalized transactions to my backend.
  • Bank statement/PDF/CSV ingestion as monthly reconciliation and source of truth, but make parsing and reconciliation much less manual.
  • Shortcuts Wallet Transaction automation extract transaction/card/merchant/amount/name POST JSON to my backend. Useful for Apple Pay taps, but not authoritative.
  • Shortcuts SMS/email automations for bank alerts where the message body is available and user-configured.
  • Bank/open-banking APIs if a consumer-accessible route exists; Singapore bank APIs seem mostly partner/corporate-facing, while SGFinDex may be useful for financial snapshots but probably not easy transaction-level hobby ingestion.
  • Commercial aggregators like Salt Edge if Singapore coverage is good enough, but check cost/privacy/coverage before relying on this.
  • Android notification listener or a secondary Android device as an experimental workaround, if iOS coverage is too limited.
  • Mac notification mirroring/OCR/screenshot approaches only as a last-resort hack.

MVP question: can I reliably capture enough transactions without reading arbitrary iOS notifications? Start with email alert parsing plus statement reconciliation; add Apple Pay Shortcuts ingestion if it gives useful extra timeliness.

Good-to-have once ingestion works:

  • Group payments/reimbursements: track cases where I pay first for food or shared expenses, then friends PayNow me later. Reconcile repayments against original group expenses and estimate my actual personal spend.
  • Missing repayment detection: infer who has not paid back and how much remains outstanding.
  • MCC tracking: show MCC per transaction where available or infer/check merchant MCC where possible. This matters for UOB Preferred Platinum Visa 9x UNI$ eligibility and UOB Lady’s Card travel-category optimization. Normal SG bank exports may not expose raw MCC, so this may need merchant lookup, manual correction, or issuer/aggregator data.
  • Card reward limits: track spending against UOB monthly caps and category caps, especially PPV online/mobile-contactless buckets and Lady’s Card travel category.

bbg article on how to design good APIs

does it pay to be informed?

how does SMS work and compare it to APN

daydreaming and the history

My holiday preferences

how do google maps tell u which road is jam and which is faster

what to find out in terms of business goals and stuff in shopee

Jevons paradox

The history of successful companies and why they are successful (Apple, iPhone Facebook, TikTok)

Best ways to be kept updated with the news

Find out about Meiji Restoration

Why does IPO allow for expansion of tech companies? The 2 exit paths of a tech firm

UNC3886 C2

Deep dive into elastic search

Stoic Philosophy

reconciliation algo find out optimal way

why are there so many stock exchanges?

credit cards

vpcs and K8s

Watch coding interviews

create a plugin that highlights nodes and its neighbours like the hover feature in graph view

where should i stash my emergency funds

OLAP vs OLTP (deep dive and storage engines)

Find out about BJJ

Look into snowflake

read the saved articles on substack

  • How SSOs work
  • the spring framework
  • spotify system design podcast

look into 1504. Count Submatrices With All Ones

frontend javascript quirks event loop

a deep dive into kafka

dotfiles

sidecars in kubernetes

use the chat history to create a LLM bot

what is spring cloud vs spring boot?