Jae Li

I am a software engineer with a keen interest in developing scalable systems, especially in the domain of web technologies and AI. I like making things that facilitate gathering and create a sense of community. I recently completed my tenure at Zafin, where I led the development of a query engine to enable embedded analytics for banking systems. Prior to Zafin, I worked at Signiant, where I built enterprise applications for file transferring. Beyond coding, I am active in the local tech scene. You can find me in tech events and meetups in town. I am based in Ottawa, Canada.

Writings

    Presented a talked titled "Agent from Scratch" based on this article at ForwardJS, Ottawa in Aug, 2025. Checkout the demo repo here.

    Tool calling enables LLMs to operate in an expanded environment such as a browser or a coding environment. ReAct and CodeAct offer two distinct paradigms of integrating tool calling for agents. In practice, both of these patterns can be implemented in a variety of ways. Developers will have to weigh the pros and cons of different patterns and implementations as they try to build agents that are both powerful and reliable.

Work Experience

    Zafin — 2023.9-2024.6

    At Zafin, I led the development of a core middleware across two teams of cross-functional teams. The middleware leveraged a query engine to make analytics dashboards for enterprise banking systems. I was responsible for the design and implementation of the middleware with the existing product, ensuring its performance and scalability through k8s design patterns and extensive testing. The success of the project led to the adoption of the same architecture in another team.

    Signiant — 2023.5-2023.8

    My work at Signiant involved fullstack development of its cloud native application. I implementation admin features for managing and monitoring the file transfers. I use Test Driven Development (TDD) to ensure the quality of the code, shipping features with 95% code coverage.

    University of Ottawa — 2022.8-2023.8

    A significant proportion of my time during my master's degree at uOttawa was spent on building robotics. I worked as a research assistant to develop an ethics of AI course, where I hacked robots to simulate ethical dilemmas in human-robot interaction. I was also a member of the uOttawa Mars Rover team, where I developed robotics navigation and camera systems.

Projects

    Boreal is a bespoke agentic RAG application that allow users to ask questions about a company's products and services based on the information from their website.

    Fleurissant is a online floral boutique that combines shopping system, inventory management and order tracking. It uses a fully fledged Ruby on Rails REST API and React frontend.

    Link Transfer is a cloud-based file-sharing application built for fast and secure file transfer. This CLI-based application deploys AWS services to provision serverless functions and object storage.

    TinyGit

    An implementation of the version control system Git in Java. Gitlet supports most of Git's local functionalities: add, commit, checkout, log, as well as branching actions including merge and rebase.

    An implementation of the Prolog programming language in OCaml, consisting of lexer, parser and evaluator.