Shangru Li

Software Engineer at Veeva · AI systems & independent products

Engineering with AI.
Products that ship.

I build agent workflows, context systems, and production software. At Veeva, I lead backend AI enablement for Campaign Manager; independently, I build and ship useful products.

I started with personal web tools and production backend systems, and keep learning by building and teaching. Today, ToolFlow is my independently developed app and a concrete record of structured AI development; Memory and Ledger explore context and evidence for AI.

Selected work.

FROM PROCESS TO PRODUCT

ToolFlow / Shipped iOS & iPadOS app

Everyday tools.
One native app.

70+ native utilities for iPhone and iPad, across 13 languages. Core tools work offline and process data on device.

I independently develop and ship ToolFlow using a structured AI workflow: requirements, task decomposition, implementation, independent review, QA, and release. I own its product decisions, QA, and releases.

Swift · SwiftUI · SwiftData · App Intents

View on the App Store (opens in a new tab)

Unit Converter · Captions and transcript

Engineering case: accessible unit selection

Unit selection that scales with text.

Problem. Fuel/EV unit selectors clipped at accessibility text sizes.

Decision and tradeoff. Use segmented controls at standard sizes and a wrapping native menu for larger text. The extra tap keeps labels readable.

Agent workflow and checks. Agents compared alternatives and independently reviewed the fix. Simulator checks covered unit selection, retained choices after switching to EV, and complete English and Arabic labels.

These checks cover simulator behavior. I retain responsibility for physical-device QA and App Store submission.

Illustrative comparison at larger text sizes: segmented labels clip, while a menu label wraps onto a second line.
Illustrative layout comparison at larger text sizes. Select to enlarge.
ToolFlow on iPhone, with favorites, eight tool categories, and search. ToolFlow on iPad, with sidebar navigation, favorites, and tool categories.
ToolFlow on iPhone and iPad Native app previews · Select either to enlarge

Open source / AI tools

Useful context. Traceable answers.

Local tools for AI assistants, connected through the Model Context Protocol (MCP).

MIT license

Memory

Context across conversations.

Python · MCP · SQLCipher

Memory on GitHub (opens in a new tab)

An encrypted local store for notes, decisions, and preferences. Review and approve proposed memories, with original sources available for inspection.

  1. 01 / ProposeExact revision
  2. 02 / ReviewOwner approval
  3. 03 / ApplyAtomic update
Engineering case: approval of an exact revision
Keep approval attached to what was reviewed.

Problem. An agent’s interpretation can drift from the owner’s intended meaning.

Decision. Bind approval to an immutable review revision and apply its approved items atomically. Later corrections append history.

Tradeoff. Owner review adds a deliberate step. Answers still depend on the agent retrieving and interpreting the right evidence.

Synthetic Memory review: a proposed decision about weekly updates appears alongside the retained source supporting it.
Review a proposal beside its source.Synthetic demonstration · Select to enlarge
Read the approval design (opens in a new tab)

MIT license

Ledger

Answers backed by financial statements.

Python · MCP · SQLite

Ledger on GitHub (opens in a new tab)

Read-only financial queries against imported statements, with exact amounts and traceable sources. A separate proposal workflow records suggestions without applying changes.

Engineering case: queries and proposed changes
Answer from records. Review changes separately.

Example question. What was my net cash flow in September?

Net cash flow
CAD 2,497.60
Period
September 1–30, 2026
Basis
CAD 4,891.85 income minus CAD 2,394.25 true cost, from imported CAD reporting rows.

Fictional example matching the dashboard. Statement coverage limits the answer; missing evidence is never treated as zero.

Decision and tradeoff. The read server cannot write. A separate proposal workflow records intent for explicit local review and approval. This keeps queries bounded by imported evidence and makes changes deliberate.

Ledger dashboard using fictional data: September income, true cost, net cash flow, reporting period, and links to supporting details.
Follow a total back to its evidence.Fictional financial data · Select to enlarge
Read the query and proposal contract (opens in a new tab)

Engineering depth.

EXPERIENCE

Veeva Systems

Software Engineer · Vault CRM

Mar 2026 — Present

I lead Campaign Manager’s backend AI initiative, co-developing its structured delivery workflow and helping the team adopt reusable agent skills. I own Agent KB, a Python/SQLite context layer with source and revision traceability, and build Spring Boot services and integrations for multi-tenant Vault CRM.

Selected as one of five AI experts for an engineering learning program, I lead a peer group and host AI office hours and skill reviews across three teams.

AI systems, team adoption & enablement

The delivery process connects product specifications, technical designs, implementation plans, implementation, self-verification, review, and merge. Reusable skills define task boundaries, dependencies, acceptance criteria, and review handoffs.

Agent KB is the curated knowledge layer grounding agents in the codebase, conventions, and domain rules. The implementation skill is being generalized into a shared framework for two other engineering teams.

Python · SQLite · Spring Boot · Agent skills · Context engineering · Team enablement

SS&C Technologies

Software Engineer → Senior Software Engineer

May 2021 — Mar 2026

Promoted in November 2022.

Built and owned microservices for file processing, configurable transformations, Kafka-driven generation, and reactive REST integrations, from implementation through production support.

Java · Spring Boot · WebFlux · Kafka · PostgreSQL · Kubernetes

Calastone adapter

Coordinating distributed file processing.

A Spring Boot adapter connecting legacy file transactions to the Calastone REST API. As the sole developer, I shipped it in four months and continued with production support.

Constraint, design & recovery
The constraint
Kafka events arrived out of order across workers; submission required a complete file.
The design
Database coordination tracked completeness; idempotent submissions and retries supported recovery.
The tradeoff
Shared state adds coordination overhead but gives every worker the same submission criteria.
Recovery
Database constraints, offset management, and layered retries covered processing failures. Correlation IDs made each transaction traceable.

File Splitter

Large files, bounded memory.

Streams 30–50 million records per file, with asynchronous S3 uploads.

Verification: three months of parallel mainframe testing before replacing the old processing path.

File Mapper

Configurable file transformations.

GraphQL interfaces and PostgreSQL-backed rules let business users change file mappings without redeploying.

Automated tests and security checks.

York University

Teaching Assistant · Computer Science

Selected teaching contracts

Supported computer science labs, graded assignments, and guided students in programming and software engineering.

EducationYork University · Bachelor of Computer Science (Honours), Software Development Stream · 2015–2020

AI workflow.

REQUIREMENTS TO RELEASE

I design the system around the agents: clear requirements, bounded tasks, the right context, traceable handoffs, and independent verification. ToolFlow puts this approach into a shipped product; I own its decisions, QA, and releases.

Explore the six-stage workflow
  1. 01 / Define

    Set requirements, acceptance criteria, and scope.

  2. 02 / Plan

    Read the repository, map dependencies, and divide work into bounded tasks.

  3. 03 / Implement

    Supply repository instructions and relevant context, then update code, checks, and documentation.

  4. 04 / Review

    Use a fresh, independent reviewer and resolve confirmed findings.

  5. 05 / Verify

    Test behavior, data, recovery, and permissions; record results and gaps.

  6. 06 / Deliver

    Integrate reviewed changes, verify packages, and prepare releases.

Context and tools

Repository instructions and reusable skills keep tasks scoped. MCP provides access to tools and evidence.

Systems thinking

Map dependencies and tradeoffs before implementation. Each handoff carries requirements, source revisions, changes, and verification results into the next review.

Capabilities.

TOOLS & PRACTICES

AI tools & agent workflows

  • Python
  • MCP
  • Codex
  • Claude Code
  • Context engineering
  • Agent orchestration
  • Independent review

Backend & distributed systems

  • Java
  • Spring Boot
  • WebFlux
  • Kafka
  • PostgreSQL
  • Docker
  • Kubernetes
  • AWS S3

Native product engineering

  • Swift
  • SwiftUI
  • SwiftData
  • WidgetKit
  • StoreKit
  • App Intents

Verification & communication

  • Integration testing
  • Regression testing
  • Data validation
  • Simulator QA
  • Git
  • Accessibility
  • Technical documentation
  • Mentorship

Earlier work.

LEARNING BY BUILDING

Personal web projects I developed before today’s coding agents. They trace a continuing habit of learning by building.

For conversations about AI engineering, agent systems, or independent app development, reach me at hello@shangruli.com.