Junji Zhi

Engineer. Blogger.

Blog Archive Search About Contact

Turning a graphql-ruby Endpoint into an MCP Server the Right Way

Field-level exposure is the wrong abstraction for turning a graphql-ruby API into MCP tools. Here is why a committed GraphQL operation is the right unit, how to make schema drift a CI failure instead of a runtime surprise, and the output-schema bug that silently breaks every error path.
Jun 14, 2026 · 10 min read

Use ChatGPT to extract transactions CSV from bank statement PDFs

In this article, I'm going to share my experience of extracting transactions data from bank statements (PDF) and convert them into CSVs. I use a combination of command line tools and ChatGPT to help process the semi-structured text data.

Jan 7, 2024 · 3 min read

Implementing Relay-Style Paginated Fields in Ruby: An Opinionated Guide

Introduction

Aug 12, 2023 · 10 min read

Elixir TIL: Start Plug-based Apps without Stopping

If you are writing a Dockerfile for your Elixir app, the final CMD line may look like:

Jun 9, 2022 · 1 min read

Read it Later on Emacs, Information Intake and Writing

Recently I read Tiago Forte's post about Read-it-Later flow. It piqued my interest.

Feb 6, 2022 · 2 min read

AI as Note Taking Pal: An Experiment

I did an experiment to ask OpenAI to finish one Zettelkasten note. The goal is to enrich my notes. Turns out, AI generated content is not always directly usable. But the same content can be useful in surprising ways, which may enrich our thinking and writing at the end.

Jan 1, 2022 · 5 min read

"Memory Heap" the Misnomer

Do you know that memory heap has nothing to do with heap as a data structure?

Nov 7, 2021 · 1 min read

Use elfeed to Manage All My RSS feeds

RSS is back!

Oct 7, 2021 · 2 min read

Personal RSS Reader with Project Venus

How to set up a personal RSS reader with open-source Project Venus
Sep 29, 2021 · 2 min read

A Software Development Systems Model

This is my exploratory work to apply systems thinking to explain the software development activities. The model attempts to define the relationships between features development velocity, engineer happiness, bugs/incidents.
Sep 23, 2021 · 3 min read
1 2 3 4 5

© 2026 Junji Zhi. Powered by Jekyll & Forever Jekyll.