Mark Story
Mark Story — Developer at Sentry and CakePHP maintainer
Backend development in Python and Rust, CakePHP maintainer, open source workflows.
mark-story.comMark Story has been maintaining CakePHP and blogging about web development since 2003. His posts document the practical side of backend work — migrating databases, wrangling Docker configurations, learning new languages — with the straightforward tone of someone solving real problems and writing up what he found. It's a developer's workbench, not a stage.
Written by Mark Story since 2003.
Occasional
Publishes a few times per month
1
Independent Blog
English
How this blog's content is accessed through Blogs Are Back.
Full Content
RSS feed includes complete post content for reading in-app
Proxy Required
Feed is fetched through our proxy for browser compatibility
Proxy Post Links
Post pages are loaded through our proxy for compatibility
Embeddable
Posts can be displayed inline in the reader view
Recent posts from Mark Story's RSS feed.
Switching from MySQL to SQLite for small applications
This site and a few other small sites are hosted on a small VPS. Historically, I’ve been using MySQL as my database server. I recently did a system upgrade and my configuration files were replaced which resulted in MySQL frequently being killed by OOMKiller. After fixing this problem, I wanted to explore using SQLite as my production database. With only a single server, and a small amount of data (under 100MB) SQLite could make operating my sites simpler as there is one fewer component to...
Building a basic multiprocess worker in python
I’ve recently been working quite a bit on a worker application in python. This worker picks up tasks over a gRPC service executes those tasks, and publishes the results via gRPC. Because of python’s Global Interpreter Lock (GIL), threads don’t help for CPU intensive workloads. Instead, I’m using multiprocessing to run additional processes per worker and get better CPU utilization at the cost of using a ton of memory. When a python process opens a child process it can also...
Building time limited workers with SIGALRM
Recently, I’ve been working on a system that needs to run tasks scheduled by either web requests, or other tasks. These tasks are trusted but sometimes problematic code. While developers generally write good code, we all make mistakes and the occasional slow job that can run for multiple hours gets written. These slow tasks can create problems if the volume of them goes up as they can consume all available resources. To prevent workers getting gummed up with slow tasks, we would need to h...
My workflow with pull requests from forks
As a long time open source maintainer, I occasionally have to modify pull requests made by contributors via forks. If a contributor needs help adding/fixing tests, or addressing linter errors, it is often simpler for me to modify a pull request by adding a commit to their branch. I like this workflow as I can help the contributor out, and give them the option to revise my changes as well. I push changes to contributor forks infrequently enough, that I usually have to look how to do it each time,...
Linux on the desktop in 2025
My long running Dell XPS laptop recently died. While trying to fix my secondary M2 drive, a series of hardware failures led to the mainboard becoming non-responsive. I was heartbroken. Up until that point, it had been a solid dependable machine. I was hoping to get many more years of use with that machine. My options were to either attempt replacing the logic board (a roughly $700 CAD cost for parts), buy a replacement laptop, or build a desktop machine. For the past several years, I’ve no...
If you enjoy Mark Story, you might also like these blogs.

Allan Vital
allanvital.comSelf-hosting, Java development, and open source projects.
Binary Igor
binaryigor.comBackend systems engineering, database performance, and architectural patterns.
Stan's blog
stanislas.blogRecent content on Stan's blog
Lukáš Lalinský
lalinsky.comCreator of AcoustID and Picard, writing about music tech and Python.
Follow Mark Story
If you appreciate technical writing that shows you how things actually get done — database migrations, gRPC auth in Rust, open source maintenance — Mark's blog is reliably useful.