Accepting new projects Core developer on Tofu since 2023 Toronto

Python developer, mostly backend and automation work.

I build tools that do the repetitive work for you: scrapers, data pipelines, and integrations between the systems you already use. I also build backends for products.

At a glancekaitech.dev
Name
Raymond · IRL
kai · online/business
Based in
Toronto
Stack
Python · PostgreSQL · web scraping · Linux servers
Availability
Accepting new projects
Response time
Usually within a day

Self-taught since 2020. I got into coding because I liked building things and that hasn't changed.

If you have a problem that's eating time, a workflow that no tool seems to fit quite right, something you've been putting up with because you didn't know it could be automated, or a product that needs its backend built, that's what I'm here for.

01

Automated alerts and monitoring

Watches a website, marketplace or data feed for what you care about, and tells you when it shows up.

02

Workflow automation

Takes the repetitive, time-sensitive parts of your operation off your hands.

03

Scrapers and data pipelines

Pulls data from websites and other sources, cleans it up, and puts it where you use it: a spreadsheet, a database or a feed.

04

API integrations

Connects the systems you already use, or acts on conditions you define.

05

Backends for products

The server, database and API behind a product you're building, in Python and PostgreSQL.

Case study 01

eBay Monitor

Nov. 2025 to Aug. 2026

Deal alerts for a professional collectibles buying team

Monitored brand new eBay listings and sent the matches straight into the team's workflow. Their most important searches ran every 30 seconds. eBay granted it an extended rate limit, and I built it to squeeze every bit of speed out of that limit without abusing it. It was their main way of finding deals.

fig. 01how it worked, simplified
eBay listings brand new Search the team's searches ~30s one search per tick Filter out seen nothing sent twice Team's workflow new matches eBay listings brand new Search the team's searches ~30s one search per tick Filter out seen nothing sent twice Team's workflow new matches
$150–200k
monthly revenue generated
~30s
search cycles
99.9%
uptime
Read the full case study (2 min read)Hide the full case study 4 parts
Client
Professional collectibles buying team
Timeline
Nov. 2025 to Aug. 2026
Status
Finished
Managed from
Discord commands
01

The problem

The team bought from brand new eBay listings, and needed to find the ones matching their specific criteria as soon as they went up. Doing that by hand meant refreshing their searches all day.

02

The constraint

eBay limits how often an application can call its API. eBay granted this one an extended rate limit, but a limit is still a limit. The job was to get every bit of speed out of that allowance without going over it.

Search speed was set from the daily API budget. I had a separate rate limit watcher checking usage against eBay's own figures every five minutes. At 99% of the daily limit it paused all searching until the reset, then resumed on its own.

usage today 99% of limit paused daily reset daily reset time
DETAIL Arate limit

An illustration of the behaviour, not measured data.

03

What I built

A service that ran the team's searches against brand new listings, remembered every listing it had already seen so nothing was sent twice, and delivered new matches straight into the team's workflow. The team managed its own keywords with Discord commands.

fig. 02system schematic, not to scale
Discord commands keywords Daily API budget sets search speed extended rate limit eBay API brand new listings Search runs the team's searches ~30s one search per tick Seen before? yes: skip it Seen listings remembered new Team's workflow new matches usage figures Rate limit watcher every 5 minutes pause at 99% resume after reset 1 2 3 4 5 6 7 8 Discord keywords API budget sets speed Search every ~30s pause / resume Rate limit watcher every 5 minutes Seen before? yes: skip it new Team's workflow new matches
  1. 1Watched brand new eBay listings for the team's searches.
  2. 2The team managed its keywords with Discord commands.
  3. 3Search speed was set from the daily API budget.
  4. 4The most important searches ran every ~30 seconds.
  5. 5A separate rate limit watcher checked usage against eBay's own figures every five minutes.
  6. 6At 99% of the daily limit it paused all searching until the reset, then resumed on its own. DETAIL A
  7. 7It remembered listings already seen, so nothing was sent twice.
  8. 8New matches went straight into the team's workflow.
04

The result

It became the team's main way of finding deals. After it went live, their monthly buying more than doubled, and the team was able to consistently expand with these results.

$150–200k
monthly revenue generated
2×
monthly buying, before vs after
Case study 02

Tofu

Core developer · since 2023

A Discord-based digital card collecting platform active across 85,000+ servers. Features I've built include daily missions with rewards, an in-app mailbox, and the UI players use to browse their card albums.

85k+
servers
fig. 03features built
85k+ Discord servers bot daily missions mailbox album UI and much more 85k+ Discord servers bot daily missions mailbox album UI and much more

Ways to work together

  • Build it, hand it over

    I build it and hand it over with documentation, and you run it yourself.

  • Build it and run it

    I build it, host it and keep it running for a monthly fee. You don't manage a server.

  • Ongoing work

    A monthly retainer for continued work on systems you already have: fixes, changes and new features.

How a project runs

  1. Message me. I usually reply within a day, and I'll tell you straight up if I'm the right person.
  2. You get a written scope and a fixed price before any work starts. Usually half up front, half on delivery.
  3. I build it and keep you updated along the way.
  4. I hand it over, or keep running it for you, as agreed in the scope.

Let's build something.

If you have a project in mind, reach out. Open to scoped projects and ongoing retainer work.

Not sure if your project fits? Send it anyway and I'll tell you honestly.

Prefer to write? Message me directly.

EMAIL kai@kaitech.dev
DISCORD kaizenjpeg

I usually reply within a day.

01What do you need built? Pick any.
02Rough timeline
03Once it's built
05Where should I reply?

This goes to my inbox. I only use your email to reply.