Pangram verdict · v3.3
We believe that this text is a mix of AI and human-written content.
AI likelihood · overall
MixedArticle text · 1,462 words · 3 segments analyzed
How I use AI with 20 years of engineering experience9 min read3 days ago--Upward trajectory built on stable deployment pipelines and testingI remember the first software I developed in an actual company. It was circa 2006 when I implemented my website for my first client. It used iframes and crazy colors. When I showed the prototype to the client they unexpectedly said they had “given up” on building a website.That’s how bad it was. 😅Almost half a million karma on Reddit and thousands of submissions on HackerNews later, I decided to create a SaaS for my hand-made 10 year-old read-later system so everyone could use it too. I called it readplace.com.Here are the first commits: https://github.com/Readplace/readplace.com/commits/main/?since=2026-02-28&until=2026-02-28I’ve been using assisted AI for coding since early 2023, but 2026 is when everything changed and I started using it full-time on Readplace. At the time of writing this, readplace.com has more than 3000 commits.So yes I fully jumped on the AI bandwagon.But… why??? You sloppy *****!Creating a platform like this is not an easy feat, and I’m talking only about the engineering part. Most companies budget multiple feature teams at A$1M/year each just to achieve baseline parity. Alternatively, you can go the other way, use the Startup mindset and differentiate from competition, on a bet the big players will take longer to pivot to what you’re doing than your ability to convince a VC to give you a few millions for something you can’t do by yourself.The core problem here is that any basic reading tool requires significant development effort just to achieve a baseline. It’s almost like a commodity nowadays. Until you can say “and this is what I use for filtering articles that’s different from everybody else” you need to build the whole read-it-later and reader infrastructure.Good luck… that is, if you're still living in the past!I still use my local system until I can fully migrate to Readplace, but my local system is dumb as f***. However, it was built from my real use cases and experience, not speculation from a founder that managed to convince some VC to give them money so they can shoot in all directions in the hope they can get enough hits before they meet their maker.How my local system works? Oh glad you asked!Well… quite simple honestly (and that’s why it took 10 years to be where it is):I receive emails from many of my GMail address aliases to my main GMail inbox (I have a legacy Google Workspace lifetime free account), then tag them with the “tbf” filter which means “to be filtered” so I know which ones are true emails and which ones are reading content.Then I spin up the “read-gmail-links” project that runs a query using GMail API with “is:unread label:tbf” on all emails, it crawls all links from every email to their final redirect and creates a UI that I can click, summarise the content based on my local preferences using Claude, and then give me a filtered list I can read and decide what to share and what not.After I decide what to share, I manually mark that email as read, it’s a manual copy/paste from the UI to my email with the label “share-to-community”.Then I manually run another command called “npm run start:add times=100” from “update-submissions-from-gmail” project that sends all those “is:unread label:share-to-community” emails to a dynamoDB table called “ALL_LINKS” in a big JSON array and marks them as read.That’s all for the reading. Later I have another UI (“links-automator”) that can read those and provide a dropdown with communities to select (HN, linkedin, /r/<subreddits>) + summary (which I may have edited) so I can remember what that was all about. Sharing that summary is the top 1 reason I’ve been banned from most of the subreddits I used to post sporadically in these 10 years.Press enter or click to view image in full sizeIt still uses “master” branch, so only guess how old this code isPress enter or click to view image in full sizeHow the links-automator screen looks likeThe first version of this system didn’t even use DynamoDB, it was a submissions.json file in Dropbox 🤣🤣🤣Then came readplace.com.So yeah in February I jumped on the bandwagon and got a number of Claude 20x subscriptions (now I got some Codex also).
With my knowledge of AWS and coding infrastructure + testing and stability guard rails here’s what I managed to achieve in 7 months:THE Web Crawler for Reader View: Every fetch tries three transports, the last one carrying a real Chrome TLS fingerprint, then retries as an honestly declared bot, then goes again through a residential proxy through KYC verified BrightData tunnel. Tweets come in via oembed, Apple News stories get rebuilt from Apple’s own compressed document format, and seven sites have hand-written rescue rules because they otherwise save empty. If a site still wins, the reader offers to capture the page with your own logged-in browser instead.Three canaries hit production every morning: 20 of the most hostile URLs on the web (NYTimes, LinkedIn, X, Apple News, arXiv, five PDFs) saved and parsed end to end through the live stack, plus nightly sweeps for links that failed or are still spinning. A red one opens a ticket, and the rule I wrote down is fix the crawler, never delete the URL to go green.Scanned PDFs parsed as text: Readplace rasterises at 300 DPI, OCR up to 300 pages in parallel, one model pass to clean each page, a second to diff the whole document against the original, a third to turn it into semantic HTML. Fixtures cover 15 writing systems, and a scan where only 27 of 31 pages survive still renders, with the gaps marked.Readplace has its own OAuth 2.1 server: Consent screen, dynamic client registration, PKCE, discovery documents, 180-day refresh tokens rotated on every use. Twelve MCP tools sit on top, so ChatGPT or Claude can work your reading list with no manual API key required.Infra Using Pulumi IaC: 52 Lambdas in production, 71 queues with a dead-letter queue in front of every consumer, 24 DynamoDB tables, 41 alarms generated by the shared component so the 52nd Lambda is monitored by default, and 16 infrastructure stacks across two isolated AWS accounts (staging and prod). No click-ops anywhere, and staging has to pass before prod deploys.Tests: Around 13,000 tests across TypeScript, Swift and Kotlin — More test code than product code, 100% coverage enforced on 38 of 40 packages, 296 committed UI test screenshots with pixel baselines including greyscale e-ink at e-reader size, and 7 UI actions carrying millisecond budgets measured across 20 separate CI machines that block the deploy when one is breached.The reading app itself: The card appears the instant you save and fills in behind you, a TL;DR streams into the reader for everyone, a panel tells you what you already read on this subject, and when you finish it picks the next unread thing out of your own library and says why it's related. Seven lists, EPUB export, server-rendered, no React.Clients: A Chrome extension, a signed Firefox build, an iPhone app on the share sheet of every other app, right-click a link you never opened, one shortcut to swallow every tab in the window, and your own @read.place email address where a model keeps the articles and skip the ads and unsubscribe links.
Uploading a Pocket export with no account: untick the rubbish, sign in at the last step, and up to 2,000 links land with your ticks intact.AI in my CI, not just my editor: 6 Claude workflows (code review, auto-applying review feedback, CI-failure fixing, conflict fixing) with more than 50,000 runs between them, plus a 30B vision model on a Mac in my office that stares at UI frames from CI for the broken layouts a pixel diff can’t see.I made the project Open Source so you can see how I do it: https://readplace.com/view/github.com/Readplace/readplace.comGet Fayner Brack’s stories in your inboxJoin Medium for free to get updates from this writer.Remember me for faster sign inHere are the “DevOps” metrics:99.9% uptime (CloudWatch, Feb to Sep, insert your real number)No outage so far. Bugs happened, none took the system down or hit all users.Commits go straight to production in ~1–10m (sometimes 20m when it invalidates the nx cache).There have been hundreds of production deployments in 7 months. The Actions history in the repo is public, count them yourself. Oh, and did I tell you? I’m the only employee of the company. Also, I spent less than A$5k (Not U$5k, AUD 5k, do the math).No fancy agent system. No fancy SaaS that promises to simulate employees. Just me, a CLI, and my brain.So how the hell do you use AI?The best way to explain using the output of my /insights command:The loop I run every time1.