41554 blogs · [ { "id": "01a0878f-0095-7287-9112-08c8b7dcef7d", "title": "Delivery vs Engineering", "url": "https://www.joeltok.com/posts/2025-07-delivery-vs-engineering.md/", "published_at": "2025-07-28T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8b84136f9", "title": "An Everything-as-code answer to ThoughtWorks' Tech Radar", "url": "https://www.joeltok.com/posts/2025-05-everything-as-code-tech-radar-with-markdown/", "published_at": "2025-05-19T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8b85a385a", "title": "Using the NX Web Plugin to Scaffold a Static HTML Site", "url": "https://www.joeltok.com/posts/2024-05-nx-static-vanilla-site/", "published_at": "2024-05-25T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8b94a6779", "title": "The Benefits of a Component Library, for Non-Technical Readers", "url": "https://www.joeltok.com/posts/2024-05-benefits-component-libraries-non-technical/", "published_at": "2024-05-13T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8b96325b8", "title": "Solar-powered Lights – Do They Really Pay For Themselves?", "url": "https://www.joeltok.com/posts/2024-04-solar-powered-lights-calculations/", "published_at": "2024-04-27T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8ba2ae4d6", "title": "A Guide to Understanding Unfamiliar Nx Plugins", "url": "https://www.joeltok.com/posts/2024-04-nx-understanding-a-plugin/", "published_at": "2024-04-14T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8baf03e42", "title": "Does an off-peak Battery Make Sense for Me?", "url": "https://www.joeltok.com/posts/2024-04-off-peak-battery-feasibility/", "published_at": "2024-04-08T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8bb02426a", "title": "How to Search for a File by its Name in VS Code", "url": "https://www.joeltok.com/posts/2024-04-search-file-in-vscode/", "published_at": "2024-04-07T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8bb4b1228", "title": "Nx is a Standardisation Tool", "url": "https://www.joeltok.com/posts/2024-03-nx-is-a-standardisation-tool/", "published_at": "2024-03-17T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8bbf50cba", "title": "Understanding Power Density", "url": "https://www.joeltok.com/posts/2024-03-power-density-and-other-quadrants/", "published_at": "2024-03-04T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8bc353b87", "title": "Setting HTML Standards Compliant Boolean Attributes with different Frameworks", "url": "https://www.joeltok.com/posts/2024-03-html-compliant-booleans-in-different-frameworks/", "published_at": "2024-03-02T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8bca672d6", "title": "Exposing Lit Element Attribute and Properties for Outside Use", "url": "https://www.joeltok.com/posts/2024-02-wc-lit-element-exposing-attributes-and-properties/", "published_at": "2024-02-24T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8bd6cc4e9", "title": "Vanilla Web Components from Scratch – A Dive", "url": "https://www.joeltok.com/posts/2024-02-wc-basics-vanilla-from-scratch-a-dive/", "published_at": "2024-02-22T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8be41c28f", "title": "Water Tank Battery Numbers – Capacity, Effiency and other Key Metrics", "url": "https://www.joeltok.com/posts/2024-02-explore-water-tank-battery/", "published_at": "2024-02-18T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8bea925a8", "title": "Dart – Implementing a Factory Constructor for an Abstract Class", "url": "https://www.joeltok.com/posts/2023-03-dart-abstract-class-factory-method/", "published_at": "2023-03-15T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8bed8208a", "title": "How to conceptualise electricity in battery systems", "url": "https://www.joeltok.com/posts/2022-11-conceptualise-electricity-battery-systems/", "published_at": "2022-11-17T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8beef7d1d", "title": "A Practical Guide to Calculating Battery Capacity", "url": "https://www.joeltok.com/posts/2022-10-actual-battery-capacity/", "published_at": "2022-10-20T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8bf4abfe6", "title": "Python 3 – Dependency Reproducibility between Environments", "url": "https://www.joeltok.com/posts/2022-10-python-dependency-reproducibility/", "published_at": "2022-10-14T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8bfee7715", "title": "Debugging Docker", "url": "https://www.joeltok.com/posts/2022-09-debugging-docker/", "published_at": "2022-09-01T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8c0ea829c", "title": "React Hook Form – Blur on submit", "url": "https://www.joeltok.com/posts/2022-07-unfocus-input-react-hook-form/", "published_at": "2022-07-19T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8c157af36", "title": "Hiking Mount Disappointment", "url": "https://www.joeltok.com/posts/2022-06-mount-disappointment-hike/", "published_at": "2022-06-29T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8c16e9ac3", "title": "Introducing Quackcheck!", "url": "https://www.joeltok.com/posts/2022-06-introducing-quackcheck/", "published_at": "2022-06-23T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8c1d7b77f", "title": "Can I Retire – Part 3: Optimising Income", "url": "https://www.joeltok.com/posts/2022-05-can-i-retire-part-3/", "published_at": "2022-05-09T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8c1e6e0c9", "title": "Can I Retire – Part 2: Optimising Expenses", "url": "https://www.joeltok.com/posts/2022-04-can-i-retire-part-2/", "published_at": "2022-04-05T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8c203d854", "title": "Can I Retire – Part 1: A Simple Spreadsheet", "url": "https://www.joeltok.com/posts/2022-04-can-i-retire-part-1/", "published_at": "2022-04-04T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8c2d2b5cb", "title": "Camunda – Service Task Benchmarks", "url": "https://www.joeltok.com/posts/2021-11-camunda-service-task-benchmarks/", "published_at": "2021-11-21T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8c385f1b6", "title": "LocalStack with Gitlab CI", "url": "https://www.joeltok.com/posts/2021-09-localstack-with-gitlab-ci/", "published_at": "2021-09-09T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8c406c753", "title": "Memory Optimisation – Python DataFrames vs Lists and Dictionaries (JSON-like)", "url": "https://www.joeltok.com/posts/2021-06-memory-dataframes-vs-json-like/", "published_at": "2021-06-07T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8c4f3eb96", "title": "How to Save, Load and Use ML Models in Metaflow", "url": "https://www.joeltok.com/posts/2021-04-use-ml-models-metaflow/", "published_at": "2021-04-15T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8c5eb2b92", "title": "Building an Event Bus in Python with asyncio", "url": "https://www.joeltok.com/posts/2021-03-building-an-event-bus-in-python/", "published_at": "2021-03-15T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8c6398983", "title": "Python 3 — Run async function synchronously", "url": "https://www.joeltok.com/posts/2021-02-python-async-sync/", "published_at": "2021-02-15T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8c6d3ff91", "title": "Chatbot Conversation Engines — Different Approaches", "url": "https://www.joeltok.com/posts/2021-01-chatbot-conversation-engines/", "published_at": "2021-01-29T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8c6d50b10", "title": "One Host, Multiple Vue Apps", "url": "https://www.joeltok.com/posts/2020-12-multiple-vue-apps-same-proxy/", "published_at": "2020-12-29T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8c79ac719", "title": "Flutter Desktop — a Hello World App for Linux, MacOS and Windows", "url": "https://www.joeltok.com/posts/2020-11-flutter-desktop-hello-world/", "published_at": "2020-11-08T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8c87ff1ae", "title": "Python3 asyncio – create_task errors fail silently", "url": "https://www.joeltok.com/posts/2020-10-python-asyncio-create-task-fails-silently/", "published_at": "2020-10-12T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8c915fca5", "title": "Flutter Camera - An Example with Detailed Explanations and Pitfalls", "url": "https://www.joeltok.com/posts/2020-10-flutter-camera-example/", "published_at": "2020-10-06T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8c9e52dee", "title": "Performance Benchmarking: Pandas DataFrame vs Python List of Dictionaries", "url": "https://www.joeltok.com/posts/2020-05-dataframe-vs-list-of-dictionaries/", "published_at": "2020-05-31T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8c9f420fd", "title": "Converting F.relu() to nn.ReLU() in PyTorch", "url": "https://www.joeltok.com/posts/2020-04-pytorch-f-relu-to-nn-relu/", "published_at": "2020-04-28T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8ca241c21", "title": "Your boss is your client", "url": "https://www.joeltok.com/posts/2019-08-your-boss-is-your-client/", "published_at": "2019-08-23T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8caae8e58", "title": "Chatbots: Reducing the chatbot conversation design feedback loop by 99%", "url": "https://www.joeltok.com/posts/2019-03-reducing-conversation-design-loop/", "published_at": "2019-03-03T00:00:00+00:00" }, { "id": "01a0878f-0095-7287-9112-08c8cb2c5c33", "title": null, "url": "https://www.joeltok.com/posts/2025-05-developer-productivity-at-scale.md/", "published_at": null }, { "id": "01a0878f-0095-7287-9112-08c8cb4f4070", "title": null, "url": "https://www.joeltok.com/tech-stack/", "published_at": null }, { "id": "01a0878f-0095-7287-9112-08c8cbb0f391", "title": "About", "url": "https://www.joeltok.com/about/", "published_at": null }, { "id": "01a0878f-0095-7287-9112-08c8cc0284f9", "title": "Contact", "url": "https://www.joeltok.com/contact/", "published_at": null }, { "id": "01a0878f-0095-7287-9112-08c8ccac54d8", "title": "My Software Delivery Framework", "url": "https://www.joeltok.com/software-delivery-framework/", "published_at": null }, { "id": "01a0878f-0095-7287-9112-08c8cce6587d", "title": "What am I up to now?", "url": "https://www.joeltok.com/now/", "published_at": null } ] posts Claim your blog
Back to joeltok.com
Blog · corpus.blog/blogs/joeltok.com/posts

joeltok.com

joeltok.com

2025

2024

2023

2022

2021

2020

2019

Undated