ONLINE SYDNEY · AU --:--:-- STACK .NET · C# · SQL · AI SINCE 1993 REV 2026.10

~/seth-li ▸ sydney · full-stack & database engineer · ai explorer

Seth (Feng) Li

Code × AI × Zen — I build systems that have to keep working

Code with clarity. Build with intent.

I write software at DASH Technology Group, a wealth-technology company in Sydney — 33 years of it, mostly on the data layer everything else stands on. At DASH I rebuilt the core portfolio systems twice: first 4× faster on 1/22.5 of the servers, then the same work at 1/225 of the compute while carrying 4× the users. Earlier, as CTO of AME Group, I started an AI research group that taught models to read financial statements. I also run Feng Tech and keep Hui Deng Zen Temple; by night I teach machines to write classical Chinese poetry.

33Years Writing Software
1/225Of the Compute It Once Needed
4×The Users, Same System
2008Working on AI & Data Mining Since
⌄

why me

What I Do · AI · Data · Delivery

33 years of production systems, and the last few spent on the part of AI that decides whether anyone can trust it.

Futuristic AI robot — generative AI and machine learning Photo · Kindel Media / Pexels

AI & Generative AI

As CTO I started an AI research group that taught models to read financial statements out of unstructured PDFs, and shipped the table extractor behind it. (The technique was a language model called BERT — the same idea that later grew into today's AI assistants.) Now I work on the part that makes an assistant dependable: finding the right facts, giving it the right tools, and measuring whether it actually got better.

Generative AI NLP LLM BERT RAG AI Agents Evaluations

nowMaking an assistant that admits when it does not know

Server rack in a modern data centre — databases and enterprise data Photo · Panumas Nikhomkhai / Pexels

Database & Data

A database developer first, and still: schema design, SQL and data mining across SQL Server, PostgreSQL, MongoDB and Redshift, with change-data-capture pipelines between them. I built a commodity-economics database that investment banks and government agencies bought.

SQL Database Design Data Mining PostgreSQL Kafka / CDC Data Quality

nowAssistants that read a company's own documents, under exactly the access rules its staff already have

Code on a developer screen — full-stack engineering Photo · Daniil Komov / Pexels

Full-Stack & Fintech

Full-stack engineer at DASH Technology Group; before that Simpology, Roar, Deepend and Argent Software. .NET and C#, TypeScript, Angular / React / Vue, AWS and Azure. I re-architected the core Holdings and Performance systems and led the move from .NET Framework 4.6.1 to .NET 10.

Fintech Modernisation C# Angular AWS Azure

nowGetting regulated systems ready for AI, with the evidence left behind

career

33 Years of Engineering · Still Shipping Code

The milestones that still explain how I work.

now Full-stack engineer · DASH Technology Group, Sydney
most senior CTO, AME Group (2007–19) — started its AI research group and shipped the PDF table extractor
first paid work 1993, while still at university — one unbroken run since
2022–NowSydney · AU

Full-Stack Engineer · DASH Technology Group

Rebuilt the core Holdings and Performance systems in two passes — first 4× faster on 1/22.5 of the servers, then down to 1/225 of the compute while carrying 4× the users and volume. Automated the liquidity checks (2 full-time roles' worth of work) and led the .NET Framework 4.6.1 to .NET 10 migration.

WealthTech .NET 10 AWS Aurora PostgreSQL
FounderFeng Tech

Founder & Principal Engineer · Feng Tech

A Sydney IT services company — websites, AI automation, databases and support. Live preview in the Ventures section below.

IT Services Web Development Support
2021–22Sydney · AU

Software Engineer · Simpology Australia

A cloud-native digital lending platform — back-end services in .NET Core and AWS, and Angular / TypeScript front ends for brokers and lenders.

Digital Lending .NET Core Angular
2020–21Sydney · AU

Software Engineer · Roar Software

Built systems on Azure and .NET Core; integrated OAuth2 / Identity Server 4 and DocuSign; front end in Vue.js, Angular and TypeScript.

Azure OAuth2 Vue.js
2020Sydney · AU

Full-Stack Engineer · Learn It All

Led development of an online education platform on NopCommerce — course management, payments and the learning experience itself.

NopCommerce e-Learning

Earlier roles

2019–20Sydney · AU

Full-Stack Engineer · Deepend

Built APIs and demanding front-end features with React and Redux, for several brand clients.

React Redux
2019Sydney · AU

Pre-sales Technical Engineer · Argent Software

On-site technical support and solution demos with SQL Server and .NET, for clients across Australia and the surrounding region.

SQL Server .NET
2007–19Sydney · AU

Chief Technology Officer · AME Group

As CTO I started the company's AI research group, which taught models to pull tables out of financial filings — BERT in place of the older CNN+LSTM approach. I also led a machine-learning data-mining system for GIS, set the IT strategy (Git, Jira, Agile), and built a commodity-economics database that investment banks and government agencies bought.

CTO AI / NLP Data Mining
2006–07Sydney · AU

Software Engineer · BPS Australia

Led the EFS equipment-leasing management system; automated the banking, postal-address and credit-bureau integrations to cut both manual work and risk.

.NET Integration
2006Sydney · AU

Software Engineer · MTC Australia

Database development on a legacy MS Access system, plus the design of web interfaces.

Access Web Design
2005–06Sydney · AU

Data Developer · AUSTCARE

Maintained databases and handled data processing for refugee aid programmes.

Database
1995–2004Changsha · CN

Operations Engineer · Agricultural Bank of China (Changsha)

Built the bank's OA management system (data mining and decision support) and a cardholder messaging platform for email and SMS statements.

VB6 / VC6 Sybase Exchange SDK
1994–95Changsha · CN

Project Manager · Changsha Jinshi Computer Co.

On the founding team — led the Commercial Bank International Trade System (letters of credit, collections, remittances), running in Bank of Communications branches across China.

COBOL / C Delphi Sybase

Education

2004–08Xiangtan · CN

Xiangtan University 湘潭大学 · M.Eng (AI & Data Mining)

Master of Engineering in Computer Application Engineering (AI and data mining) — admitted full-time on a full state scholarship and studied while working, which is why the dates overlap the jobs above.

Master's · 双一流 State-funded · while working
1991–94Changsha · CN

Changsha University · Associate Degree, Computer Science

Computer Science and Technology, full-time — where the engineering habit took root.

Higher Education

stack

Tech Stack · What I Reach For Daily

Tools I have used long enough to have opinions about.

Languages

.NET 10 C# Python SQL (T-SQL) TypeScript JavaScript PowerShell Golang C / C++ VB6 · Delphi COBOL

AI & Data

Generative AI LLM AI Agents RAG / Retrieval NLP Evaluations Machine Learning Prompt Engineering Data Engineering Data Mining Document Search TensorFlow SQL Server · PostgreSQL MongoDB · Redis · Redshift Kafka · CDC Spark · Elasticsearch

Frontend & Frameworks

Angular React Vue.js Node.js ASP.NET MVC Bootstrap 5 REST API

Cloud & DevOps

AWS Azure Kubernetes Docker CI/CD Git Azure DevOps Jira Microservices OAuth2 / Identity Server 4

projects

Selected Work · Ship · Open Source · Practice

A few things I built that are still running, and the repos where I keep practising.

Triumph .NET 10

Rebuilt the core Holdings and Performance systems in two passes. The first made them 4× faster on 1/22.5 of the servers. The second put the same work on 16 vCPU for 4 hours, where it once needed 2,400 vCPU for 6 — 1/225 of the compute, carrying 4× the users and volume.

DASH Technology Group · since 2022 · AWS Aurora · SQS · PostgreSQL
PDF Table Extractor BERT

Reconstructs tables from unstructured PDFs: a language model (BERT) in place of CNN+LSTM to classify regions, plus graph search to find the borders. Built to run unattended over financial filings instead of by hand.

AME Group · 2017–2019 · NLP · Deep Learning
Sniper .NET · VBA

Auto-generates cash-flow and valuation reports for thousands of projects, with the .NET logic translated into VBA/Excel so analysts could model in place.

AME Group · 2016–2018 · Excel · VBA
AME Ajax .NET Core · Angular

Moved the mining and metals finance model analysts relied on from WinForms to .NET Core and Angular, matching desktop responsiveness — a 6-person team, 6 months, no regression in the model.

AME Group · 2018 · .NET Core · Angular

Open Source

chinesepoem Jupyter

Automatic classical Chinese poetry generation — an NLP experiment in teaching a machine to write poetry, and watching creativity from the inside.

github.com/seth2000/chinesepoem ↗
linqijing Python

A digital implementation of Ling Qi Jing (灵棋经) — a reproducible experiment with an old divination method: structured data in, structured prediction out.

github.com/seth2000/linqijing ↗
PSGetUserLogonTimeFromAD PowerShell ★ 2

An operations tool that pulls user logon times out of Active Directory, for audits and account hygiene. The kind of automation that pays for itself every day.

github.com/seth2000/PSGetUserLogonTimeFromAD ↗
predictions Archive

A predictions archive — record it, review it later, let time settle the argument. A personal lab for calibrating judgement.

github.com/seth2000/predictions ↗

More repos: country-name-detected · covertJPGToCSV · WindowsCommandAndPS — view all on GitHub ↗

Rendered live by github-readme-stats, so these are always current. If the cards do not load, the same figures are on GitHub ↗

ventures

Beyond the Day Job · Two Ventures, One Practice

Two things I own and run. Each preview loads only when you ask for it, or when you scroll to it — so a third-party site never slows this one down.

Feng Tech · Sydney IT Services

https://www.fengtech.com.au/
Open ↗

📞 0411 758 128  ·  ✉️ [email protected]  ·  📍 Sydney — The tech experts

Hui Deng Zen Temple · 慧灯禅院

https://zen.sethfengli.com/
Open ↗

White lotus in a quiet pond Buddhist essays, recorded dharma talks, online blessings and Guanyin lots — a lamp that stays lit. On a small screen, tap Open for the full view.

These previews are separate websites. Each one runs in a sandboxed frame, so it cannot read this page or set cookies for this domain.

ai direction

Where I Think AI Is Going · And Where I Fit

Four things I believe about AI, in plain language — and why 33 years of unglamorous data work turns out to be the right preparation for them.

A demo takes a weekend. Something you can trust takes a year.

reliability

Anyone can make an AI assistant look impressive for five minutes. The hard part is the other 99% of the time.

What happens when a step fails halfway through? When two tasks touch the same record at once? When the model is confidently wrong? When a customer asks why the system decided what it decided? None of that is a model problem — it is the plumbing around the model, and it is the same plumbing I have been building in banking systems for 33 years.

  • Every step can be retried safely, or undone cleanly
  • When it is unsure, it stops and asks a person — it does not guess
  • Every decision is written down, with its cost, so it can be explained later

The hardest part is not the thinking — it is finding the right facts

data

Ask an AI a question about your own business and it will answer confidently whether or not it found the right information. Almost every disappointing AI feature I have seen failed at looking things up, not at reasoning.

The fix is unfinished work most teams would rather skip: clean up the data, keep it current, split documents so the meaning survives, and respect who is allowed to see what. My PDF Table Extractor had to rebuild a table's structure from a messy scanned page — the same instinct, one generation of technology later.

  • Search by meaning and by keyword, then let the data filter the result
  • The same access rules an employee already has, applied to the AI
  • Every answer can be traced to the document and the date it came from

You cannot improve what you never measure

testing

If nobody writes down how the AI behaved last week, nobody can tell whether this week's change made it better or worse. The teams getting real value keep a set of test questions with known good answers, run them automatically on every change, and keep a record of every failure and every correction. It sounds dull. It is also the difference between a tool people quietly stop using and one they trust with actual work.

  • A fixed set of test cases, re-run automatically after every change
  • Failures and corrections recorded, not forgotten
  • Quality, speed and running cost judged together — not one at a time

The biggest opportunity is in the industries everyone finds boring

opportunity

Most AI tools are built for writing and marketing. Very few are built for banking, lending, insurance and health care — and those are exactly the places where being right matters most and a mistake is expensive. A 95% accurate assistant is a fun toy in a chat window and unacceptable in a loan decision. What those industries need is not a cleverer model; it is a process your risk team and your regulator will accept. I have spent my whole career inside banks, lending platforms and wealth systems, and that is not a disadvantage here — it is the reason I know which questions to ask.

  • A person stays in the loop wherever the advice is regulated
  • Every automated decision leaves evidence that can be audited
  • Where data cannot leave the building, small models run inside it

Now & Next

rev 2026.10 reviewed 2026-10-04

learning now

  • Building AI assistants with .NET and Microsoft's agent tools — and when a simple loop beats an elaborate design
  • The testing habit that keeps an AI honest: fixed test cases, automatic scoring, a check before every release
  • Helping an AI find the right answer inside a company's own databases and documents, without breaking permissions

next 90 days

  • Publish a working example, openly: an AI assistant over a real database, with its tests included
  • Turn the patterns I wrote down last quarter into something another team can pick up and use without me
  • Keep the AI-assisted wealth-management task running in production, and measure whether it holds up

what changed here

  • Corrected the efficiency figure to 1/225 of the compute — the old 1/50 could not be squared with the raw numbers printed beside it
  • English rewritten end to end in plainer language; the Chinese written as Chinese rather than as a translation of the English
  • Added a search-and-jump palette (press / anywhere), a print view, and copy buttons for the contact details

I revisit this page every quarter, and the date above moves when I do. If a claim here has aged badly, that is a fair thing to ask me about — it is the reason the page is dated.

insights

Zen Is the Worldview, Code Is the Method

Classical Buddhist ideas, said again in the language of programmers — the other side of the same practice.

Heart Sutra · OOP

Emptiness Is an Abstract Class · 空即是色

Emptiness is an abstract class, form a concrete class, appearance an instance. You see a cat: this particular cat is the instance, "cat" is the abstract class, "black cat" the concrete class. The mind moves from the concrete to the abstract.

Emptiness : Form : Appearance = abstract class : concrete class : instance
Diamond Sutra · Design

"I" Cannot Be Instantiated

"I" is fundamentally an abstract class: it cannot use this, so there is no self; it cannot be instantiated, so there is no person; it has no lifecycle methods, so there is no lifespan. Four lines of code, and an object that can never be created.

no this · no instantiate · no lifecycle
No Ego · Einstein

More Knowledge, Less Ego · Ego = 1 / Knowledge

"More the knowledge, lesser the ego; lesser the knowledge, more the ego." And the caution that follows: "We should take care not to make the intellect our god — it has powerful muscles, but no personality."

More the knowledge, lesser the ego
class Supreme_Wisdom:
    knowledge = math.inf

    def __init__(self):
        print("All things being equal = Everything happens as expected")

    def ego(self):
        return 1 / self.knowledge

    def power(self):
        return self.knowledge

    def personality(self):
        return 1 / self.power()

📜 Prologue Verse · 定场诗

双燕归南国, 来寻王谢家。 画堂春昼静, 于此托生涯。 气回天地运, 财聚八方华。 人途新起色, 福泽满云霞。

Two swallows return to the southern lands,
Seeking the halls of old noble clans.
Spring noon is still in the painted room;
Here they will nest, and life will bloom.
Fortune returns through earth and sky;
Wealth gathers bright from eight quarters nigh.
Life’s road takes on a brighter hue;
Blessings fill clouds with golden dew.

Click the leading character of any falling column — or the Freeze button — and the screen stops, one of my Python functions surfaces, then it collapses.

Form is emptiness; emptiness is form.
— Heart Sutra, Prajnaparamita

contact

Let's Connect · Code · AI · Zen

Open to interesting conversations — code, AI, data, Zen, or anything that looks impossible.

contact --seth-li At my desk — email is best Asleep in Sydney — I will reply in the morning

nowFull-stack engineer, DASH Technology Group · Greater Sydney Area, Australia

focusFull-stack · Database · AI / NLP · WealthTech

modeRemote worldwide · on-site across Sydney

hoursSydney · --:--

buildingSince 1993 — shipping software without interruption

Email LinkedIn ↗ GitHub ↗