41554 blogs · [ { "id": "01a087b7-e4cb-7076-8c66-e3080815ec08", "title": "One Gem", "url": "https://olickel.com/sg61", "published_at": "2026-08-10T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e30808c323f1", "title": "Reviewing pair programming with AI as a flow", "url": "https://olickel.com/reviewing-pair-programming-with-ai-as-a-flow", "published_at": "2025-06-09T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e3080953db2b", "title": "Everything I'll forget about Evals", "url": "https://olickel.com/everything-about-evals", "published_at": "2025-05-06T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e30809a8ea5b", "title": "Announcing Southbridge", "url": "https://olickel.com/southbridge", "published_at": "2025-01-05T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e3080a965cf1", "title": "2024: A monomyth", "url": "https://olickel.com/2024-year-in-review", "published_at": "2024-12-31T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e3080aa6b808", "title": "2024: 나의 영웅서사", "url": "https://olickel.com/2024-yir-4.5", "published_at": "2024-12-31T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e3080b1f9b19", "title": "The rich man's guide to RAG", "url": "https://olickel.com/rich-mans-guide-to-rag", "published_at": "2024-10-18T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e3080bbf238c", "title": "A guide to hiring in AI", "url": "https://olickel.com/hiring-guide-for-AI", "published_at": "2024-08-19T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e3080bc99036", "title": "Workhorse models and racehorse models", "url": "https://olickel.com/selecting-llms-workhorses-and-racehorses", "published_at": "2024-08-05T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e3080c127f81", "title": "Real results from a month of running an AI network", "url": "https://olickel.com/rakis-st1", "published_at": "2024-07-17T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e3080c1c22df", "title": "Building a Rakis", "url": "https://olickel.com/introducing-rakis", "published_at": "2024-06-18T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e3080c26139b", "title": "Better RAG 3: The text is your friend", "url": "https://olickel.com/retrieval-augmented-research-3-use-the-whole-brain", "published_at": "2024-03-14T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e3080cef6799", "title": "Better RAG 2: Single-shot is not good enough", "url": "https://olickel.com/retrieval-augmented-research-2-walking", "published_at": "2024-03-13T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e3080d8351b1", "title": "Running Kuzco in Docker and WSL2", "url": "https://olickel.com/kuzco-quickstart", "published_at": "2024-03-12T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e3080ded9f51", "title": "Better RAG 1: Basics", "url": "https://olickel.com/retrieval-augmented-research-1-basics", "published_at": "2024-03-12T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e3080e8c8b6f", "title": "How will matrix multiplication kill my company?", "url": "https://olickel.com/defensibility-in-ai", "published_at": "2024-02-04T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e3080f4c61a6", "title": "The Story of WalkingRAG", "url": "https://olickel.com/the-story-of-walkingrag", "published_at": "2024-02-01T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e3080f56c2ee", "title": "2023: Showing up and growing backwards", "url": "https://olickel.com/2023-year-in-review", "published_at": "2023-12-28T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e308101b07a6", "title": "Compiling language models for use on the browser", "url": "https://olickel.com/compile-llms-to-wasm", "published_at": "2023-11-10T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e30810438bf9", "title": "Making writing easier with AI", "url": "https://olickel.com/writing-with-ai", "published_at": "2023-11-01T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e3081077951a", "title": "The biggest problem in shipping is plain English", "url": "https://olickel.com/large-language-models-ai-shipping", "published_at": "2023-10-30T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e30810bce15e", "title": "What do we make that people want?", "url": "https://olickel.com/what-do-people-want", "published_at": "2023-09-13T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e30810ee7ad3", "title": "Everything I'll forget about prompting LLMs", "url": "https://olickel.com/everything-i-know-about-prompting-llms", "published_at": "2023-09-07T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e30811729370", "title": "Inherited duct tape is what slows our systems down", "url": "https://olickel.com/inherited-duct-tape", "published_at": "2023-07-01T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e30812481c82", "title": "Object-Oriented Large Language Modelling", "url": "https://olickel.com/object-oriented-large-language-models", "published_at": "2023-04-15T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e308125a01c6", "title": "Solving carpal tunnel with Whisper, GPT-4 and llama.cpp", "url": "https://olickel.com/rsi-gpt-whisper", "published_at": "2023-03-18T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e308125a2303", "title": "Good-enough-compression for shipping routes", "url": "https://olickel.com/shipping-route-compression", "published_at": "2023-03-16T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e30812772c49", "title": "Learning to unyieldingly compromise", "url": "https://olickel.com/end-to-end-encryption-greywing", "published_at": "2023-03-14T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e30812b74542", "title": "2022 Year In Review", "url": "https://olickel.com/2022-year-in-review", "published_at": "2022-12-31T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e3081348c596", "title": "Exercising doing nothing at all", "url": "https://olickel.com/do-nothing", "published_at": "2022-12-30T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e30813d10782", "title": "What it took to do a crew change in a single click", "url": "https://olickel.com/one-click-crew-changes-ai-corrective-interfaces", "published_at": "2022-12-19T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e30814c5d78c", "title": "Product Lifecycle Lifecycle at Greywing", "url": "https://olickel.com/product-management-greywing", "published_at": "2022-11-04T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e30815466762", "title": "Telegraph your movies and your products", "url": "https://olickel.com/telegraphing-movies-applications", "published_at": "2022-10-20T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e30815bb0e93", "title": "Why there aren't many software firms in shipping", "url": "https://olickel.com/zero-to-one-maritime", "published_at": "2022-10-11T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e308165dc9da", "title": "Algorithms are bad for the aspirational self", "url": "https://olickel.com/algorithms-and-the-aspirational-self", "published_at": "2022-07-06T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e308173dffca", "title": "A recommendation engine for blog posts", "url": "https://olickel.com/recommendation-engine-for-blog-posts", "published_at": "2022-02-01T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e30818295aee", "title": "Losing products to button syndrome", "url": "https://olickel.com/button-syndrome", "published_at": "2022-01-11T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e30818678c20", "title": "What a year it has been", "url": "https://olickel.com/2021-year-in-review", "published_at": "2021-12-31T00:00:00+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e30818c642fc", "title": "Schema on write is better to live by", "url": "https://olickel.com/schema-on-write-is-better-to-live-by", "published_at": "2021-08-21T03:57:44+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e30818c64835", "title": "Rent, Deposits, and the failure of the repeated game", "url": "https://olickel.com/rent-deposits-and-the-failure-of-the-repeated-game", "published_at": "2021-08-14T21:24:21+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e30818e55fdc", "title": "Provenance", "url": "https://olickel.com/provenance", "published_at": "2021-02-21T01:51:24+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e308190e84de", "title": "The two innovations of Hashmasks", "url": "https://olickel.com/the-two-innovations-of-hashmasks", "published_at": "2021-02-13T21:12:27+00:00" }, { "id": "01a087b7-e4cb-7076-8c66-e3081a0bddc8", "title": "Facebook, please stop killing good products", "url": "https://olickel.com/facebook-please-stop-killing-good-products", "published_at": "2021-01-26T00:59:22+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e44466b84f1", "title": "What I learned in 2020", "url": "https://olickel.com/what-i-learned-in-2020", "published_at": "2020-12-31T21:29:05+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e4447071012", "title": "Why I still can't stop using Chrome", "url": "https://olickel.com/ux-examples", "published_at": "2020-12-11T21:34:25+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e44478f66f3", "title": "Benchmarking battery life on an Ubuntu machine", "url": "https://olickel.com/benchmarking-the-battery-on-an-ubuntu-machine", "published_at": "2020-11-29T17:47:52+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e4447bc0046", "title": "Subqueries and CTEs: an example of query optimization in Postgres", "url": "https://olickel.com/subqueries-and-ctes-an-example-of-query-optimization-in-postgres", "published_at": "2020-10-08T22:34:37+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e444812a841", "title": "Moving out of MacOS: Making Linux habitable", "url": "https://olickel.com/moving-out-of-macos-making-linux-habitable", "published_at": "2020-08-09T20:51:06+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e4448d6570a", "title": "Serving complex geospatial queries in real-time", "url": "https://olickel.com/large-geospatial-queries-and-optimizations-for-maritime", "published_at": "2020-07-29T20:49:08+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e44493e976b", "title": "Flow Energy and Residual Energy", "url": "https://olickel.com/flow-energy-and-residual-energy", "published_at": "2020-07-20T23:04:48+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e4449d479c0", "title": "A million imprisoned: Getting stranded seafarers home", "url": "https://olickel.com/one-million-mariners", "published_at": "2020-05-27T17:48:15+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e444a420dc5", "title": "Home cooked apps", "url": "https://olickel.com/my-home-cooked-meals", "published_at": "2020-02-16T21:12:49+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e444af67ebc", "title": "Raising seed capital in Singapore: A postmortem", "url": "https://olickel.com/raising-seed-capital-in-singapore-a-postmortem", "published_at": "2020-01-31T17:44:21+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e444b7aeecb", "title": "Macgyvering a li-ion charger", "url": "https://olickel.com/macgyvering-a-li-ion-charger", "published_at": "2019-12-07T21:33:57+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e444c5d8d01", "title": "Sharding the Interval Queue: Implementation", "url": "https://olickel.com/sharding-the-interval-queue-implementation", "published_at": "2019-12-05T00:45:27+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e444caf46b2", "title": "Sharding the interval queue: Theory", "url": "https://olickel.com/sharding-the-interval-queue-theory", "published_at": "2019-12-04T18:56:33+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e444d0fb3e2", "title": "Adding requeuing to Async Interval Queue", "url": "https://olickel.com/adding-requeuing-to-async-queue", "published_at": "2019-12-01T21:58:06+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e444d96700c", "title": "Async Interval Queue", "url": "https://olickel.com/async-queue", "published_at": "2019-11-24T20:16:08+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e444dca7b58", "title": "Engineering at Greywing: Taming Complexity", "url": "https://olickel.com/engineering-at-greywing-1", "published_at": "2019-09-27T23:38:46+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e444e428f6b", "title": "Intentions and Program Mind-Meld Frustrations", "url": "https://olickel.com/intentions-and-program-mind-meld-frustrations", "published_at": "2019-09-08T00:45:31+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e444e8b213a", "title": "We are moving to Go", "url": "https://olickel.com/were-moving-to-go", "published_at": "2019-06-12T18:31:06+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e444efb425b", "title": "Juventus: Glucose worries in Chiang Mai and the beginning of the biggest brownie point scheme ever", "url": "https://olickel.com/glucose-monitoring-a-story-of-papers-reverse-engineering-and-the-last-10", "published_at": "2019-03-03T18:45:15+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e444f63c50a", "title": "Debugging Node.js in Production: Anatomy of a bug hunt", "url": "https://olickel.com/debugging-node-in-production-anatomy-of-a-bug-hunt", "published_at": "2019-02-02T02:51:03+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e444f86f47b", "title": "Beauty to an Artificial Intelligence", "url": "https://olickel.com/quality-to-an-artificial-intelligence", "published_at": "2019-01-01T00:00:00+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e444f910865", "title": "Dead Money: The problem at the heart of crypto", "url": "https://olickel.com/dead-money-the-problem-at-the-heart-of-crypto", "published_at": "2018-09-05T00:07:54+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e4450223b2b", "title": "Converse: An easy sentiment analysis library for Messenger", "url": "https://olickel.com/converse-an-easy-sentiment-analysis-library-for-messenger", "published_at": "2018-07-20T20:09:03+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e4450db306d", "title": "Development across platforms with Docker", "url": "https://olickel.com/making-cross-platform-development-easy-and-hard-with-docker", "published_at": "2018-01-05T02:25:28+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e445137b1e6", "title": "Building an Arc Reactor", "url": "https://olickel.com/building-an-arc-reactor", "published_at": "2017-10-22T03:32:40+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e4451ad61d1", "title": "Investing in Crypto: A Personal Guide", "url": "https://olickel.com/investing-in-crypto-a-personal-guide", "published_at": "2017-10-21T16:43:00+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e4452473abb", "title": "Goosebumps: Realizing Extrasensory Perception", "url": "https://olickel.com/goosebumps-towards-building-a-new-sense", "published_at": "2017-10-01T09:50:57+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e4453328906", "title": "Talk: Singularity and The Blockchain", "url": "https://olickel.com/talk-singularity-and-the-blockchain", "published_at": "2017-09-20T05:37:05+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e4453c54ca1", "title": "Update on Oyente", "url": "https://olickel.com/oyente-update", "published_at": "2017-09-01T20:23:52+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e44541f5463", "title": "Optimizing Neural Nets in Python from Scratch", "url": "https://olickel.com/optimizing-neural-nets-in-python-from-scratch-part-1", "published_at": "2016-04-13T22:26:17+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e4454397c88", "title": "Automating Git Commits", "url": "https://olickel.com/automating-git-commits", "published_at": "2016-03-11T20:39:37+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e44545f2bdd", "title": "Decapitating Raspberry Pis with nomohead", "url": "https://olickel.com/decapitating-raspberry-pis-with-nomohead", "published_at": "2016-02-11T05:24:08+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e44554f4ebc", "title": "Ride-sharing on the Blockchain", "url": "https://olickel.com/ethereum-and-uber-building-a-decentralized-ride-sharing-platform-on-the-blockchain", "published_at": "2016-01-30T20:39:37+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e4455a61a2c", "title": "Winter '15 Trip Logs", "url": "https://olickel.com/winter-15-trip-logs", "published_at": "2015-12-25T19:27:44+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e4455cdeb18", "title": "Tracking Word Documents with Git", "url": "https://olickel.com/tracking-word-documents-with-git", "published_at": "2015-10-25T05:03:02+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e44567a1b3e", "title": "An IoT system for construction worker safety", "url": "https://olickel.com/using-the-internet-of-things-for-measuring-worker-safety", "published_at": "2015-10-11T02:24:55+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e44572bcdd0", "title": "Implementing a Lucas-Kanade tracker from scratch", "url": "https://olickel.com/implementing-a-lucas-kanade-tracker-from-scratch", "published_at": "2015-10-05T22:11:19+00:00" }, { "id": "01a087b7-e4cd-7148-977a-0e4458019ddb", "title": "About me", "url": "https://olickel.com/about-me", "published_at": "1994-09-09T00:00:00+00:00" } ] posts Claim your blog
Back to olickel.com
Blog · corpus.blog/blogs/olickel.com/posts

olickel.com

olickel.com

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016

2015

1994