41554 blogs · [ { "id": "01a08789-c2db-71fd-9e3e-15049b965f6d", "title": "Open Source libraries are evolving into reference implementations", "url": "https://jacobtomlinson.dev/posts/2026/open-source-libraries-are-evolving-into-reference-implementations/", "published_at": "2026-08-11T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-15049c72b443", "title": "Giving Agents Minimal Tools", "url": "https://jacobtomlinson.dev/posts/2026/giving-agents-minimal-tools/", "published_at": "2026-06-24T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-15049d41be19", "title": "Documenting your software libraries for agents", "url": "https://jacobtomlinson.dev/posts/2026/documenting-your-software-libraries-for-agents/", "published_at": "2026-06-17T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-15049da0355b", "title": "Documenting your open source projects for machines", "url": "https://jacobtomlinson.dev/talks/2026-06-07-pydata-london-documenting-your-open-source-projects-for-machines/", "published_at": "2026-06-07T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-15049e3ec448", "title": "Why taking notes still matters", "url": "https://jacobtomlinson.dev/posts/2026/why-taking-notes-still-matters/", "published_at": "2026-05-11T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-15049edde9ae", "title": "Swimming Challenges 2026", "url": "https://jacobtomlinson.dev/swimming/", "published_at": "2026-05-01T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-15049fd9a995", "title": "Guiding your contributor's agents to better behaviours", "url": "https://jacobtomlinson.dev/posts/2026/guiding-your-contributors-agents-to-better-behaviours/", "published_at": "2026-02-19T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-1504a079569f", "title": "Backporting fixes to older releases on Conda Forge", "url": "https://jacobtomlinson.dev/posts/2026/backporting-fixes-to-older-releases-on-conda-forge/", "published_at": "2026-01-28T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-1504a170fcc0", "title": "Python package managers: uv vs pixi?", "url": "https://jacobtomlinson.dev/posts/2025/python-package-managers-uv-vs-pixi/", "published_at": "2025-11-18T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-1504a21a821c", "title": "Revisiting old contributions for Hacktoberfest", "url": "https://jacobtomlinson.dev/posts/2025/revisiting-old-contributions-for-hacktoberfest/", "published_at": "2025-10-01T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-1504a2562dcf", "title": "The Majority Of Your Users", "url": "https://jacobtomlinson.dev/posts/2025/the-majority-of-your-users/", "published_at": "2025-09-30T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-1504a353b098", "title": "EffVer - Version your code by the effort required to upgrade", "url": "https://jacobtomlinson.dev/talks/2025-08-21-euroscipy-effver/", "published_at": "2025-08-21T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-1504a3d7f780", "title": "Teaching Python with GPUs: Empowering educators to share knowledge that uses GPUs", "url": "https://jacobtomlinson.dev/talks/2025-07-11-scipy-teaching-python-with-gpus/", "published_at": "2025-07-11T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-1504a4c7f864", "title": "EffVer - Version your code by the effort required to upgrade", "url": "https://jacobtomlinson.dev/talks/2025-07-09-scipy-effver/", "published_at": "2025-07-09T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-1504a5562a1b", "title": "GPU Accelerated Python", "url": "https://jacobtomlinson.dev/talks/2025-06-06-pydata-london-gpu-accelerated-python/", "published_at": "2025-06-06T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-1504a620d74e", "title": "Intro to Kubernetes: 10 Years On", "url": "https://jacobtomlinson.dev/talks/2025-05-16-tech-exeter-kubernetes-10-years-on/", "published_at": "2025-05-15T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-1504a6813b08", "title": "Generating useful titles for automated PRs in GitHub Actions", "url": "https://jacobtomlinson.dev/posts/2025/generating-useful-titles-for-automated-prs-in-github-actions/", "published_at": "2025-04-29T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-1504a6d68ea7", "title": "Why don't my markdown titles work sometimes?", "url": "https://jacobtomlinson.dev/posts/2025/why-dont-my-markdown-titles-work-sometimes/", "published_at": "2025-03-14T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-1504a7acf1d0", "title": "100 Days of Coreutils", "url": "https://jacobtomlinson.dev/blog/100-days-of-coreutils/", "published_at": "2025-03-05T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-1504a897f087", "title": "Using multiple config files with kubectl and other Kubernetes tools", "url": "https://jacobtomlinson.dev/posts/2025/using-multiple-config-files-with-kubectl-and-other-kubernetes-tools/", "published_at": "2025-02-27T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-1504a93debc0", "title": "An introduction to GPU programming in Python", "url": "https://jacobtomlinson.dev/talks/2025-02-13-google-student-developer-club-exeter-python-gpu/", "published_at": "2025-02-13T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-1504a9cb5bbe", "title": "Who Builds the PyData Ecosystem?", "url": "https://jacobtomlinson.dev/talks/2025-01-29-pydata-exeter-how-the-pydata-ecosystem-is-built/", "published_at": "2025-01-27T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-1504aa13c04d", "title": "Most stale bots are anti-user and anti-contributor, but they don't have to be", "url": "https://jacobtomlinson.dev/posts/2024/most-stale-bots-are-anti-user-and-anti-contributor-but-they-dont-have-to-be/", "published_at": "2024-12-05T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-1504aaa12d42", "title": "GPU Development in Python 101", "url": "https://jacobtomlinson.dev/talks/2024-12-04-pydata-global-gpu-development-in-python-101/", "published_at": "2024-12-04T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-1504ab8996d5", "title": "The art of wrangling your GPU Python environments", "url": "https://jacobtomlinson.dev/talks/2024-12-04-pydata-global-the-art-of-wrangling-your-gpu-python-environments/", "published_at": "2024-12-04T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-1504abe8bfee", "title": "Getting science done with accelerated Python computing platforms", "url": "https://jacobtomlinson.dev/talks/2024-11-14-noc-getting-science-done-with-accelerated-python-computing-platforms/", "published_at": "2024-11-14T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-1504ace1d6df", "title": "Dask on HPC in 2024", "url": "https://jacobtomlinson.dev/talks/2024-11-12-cnes-pangeo-dask-on-hpc-in-2024/", "published_at": "2024-11-12T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-1504ad34d0b5", "title": "GPU Acceleration in the PyData community", "url": "https://jacobtomlinson.dev/talks/2024-11-12-cnes-pangeo-gpu-acceleration-in-the-pydata-community/", "published_at": "2024-11-12T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-1504ad5f4ac3", "title": "EffVer", "url": "https://jacobtomlinson.dev/talks/2024-11-08-pydata-nyc-effver/", "published_at": "2024-11-08T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-1504adf00f87", "title": "GPU Accelerated Python", "url": "https://jacobtomlinson.dev/talks/2024-11-06-pydata-nyc-gpu-accelerated-python/", "published_at": "2024-11-06T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-1504ae8744af", "title": "Accelerating Python on HPC with Dask", "url": "https://jacobtomlinson.dev/talks/2024-08-29-euroscipy-accelerating-python-on-hpc-with-dask/", "published_at": "2024-08-29T00:00:00+00:00" }, { "id": "01a08789-c2db-71fd-9e3e-1504ae9c2bd5", "title": "EffVer", "url": "https://jacobtomlinson.dev/talks/2024-08-28-euroscipy-effver/", "published_at": "2024-08-28T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2c3187efa", "title": "Zero Code Change GPU Acceleration", "url": "https://jacobtomlinson.dev/talks/2024-08-28-euroscipy-zero-code-change-gpu-acceleration/", "published_at": "2024-08-28T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2c3f14956", "title": "GPU Development in Python 101", "url": "https://jacobtomlinson.dev/talks/2024-07-09-europython-gpu-development-in-python-101/", "published_at": "2024-07-09T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2c4593f01", "title": "GPU Development in Python 101", "url": "https://jacobtomlinson.dev/talks/2024-06-14-pydata-london-gpu-development-in-python-101/", "published_at": "2024-06-14T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2c53edd00", "title": "Building a career in Open Source Software", "url": "https://jacobtomlinson.dev/talks/2024-05-07-building-a-career-in-open-source-software/", "published_at": "2024-05-07T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2c565f5cd", "title": "Python version epochs are broken", "url": "https://jacobtomlinson.dev/posts/2024/python-version-epochs-are-broken/", "published_at": "2024-05-01T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2c6573729", "title": "Creating GitHub Releases automatically on tags", "url": "https://jacobtomlinson.dev/posts/2024/creating-github-releases-automatically-on-tags/", "published_at": "2024-04-19T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2c71e7b5c", "title": "Connect With Experts: RAPIDS Cloud Deployment", "url": "https://jacobtomlinson.dev/talks/2024-03-21-gtc-cwe-rapids-cloud-deployment/", "published_at": "2024-03-21T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2c7a7554b", "title": "Reducing the Cost of your Data Science Workloads on the Cloud", "url": "https://jacobtomlinson.dev/talks/2024-03-19-gtc-reducing-the-cost-of-your-data-science-workloads-on-the-cloud/", "published_at": "2024-03-19T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2c822e7c0", "title": "A beginner's guide to managing Kubernetes resources in Python with kr8s", "url": "https://jacobtomlinson.dev/posts/2024/a-beginners-guide-to-managing-kubernetes-resources-in-python-with-kr8s/", "published_at": "2024-03-11T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2c868c481", "title": "Dask on Databricks", "url": "https://jacobtomlinson.dev/talks/2024-02-15-dask-demo-day-dask-on-databricks/", "published_at": "2024-02-15T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2c90943c9", "title": "Running Dask on Databricks", "url": "https://jacobtomlinson.dev/posts/2024/running-dask-on-databricks/", "published_at": "2024-02-15T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2c914b0b1", "title": "cudf.pandas: the Zero Code Change GPU Accelerator for pandas", "url": "https://jacobtomlinson.dev/talks/2024-02-07-cudf-pandas-the-zero-code-change-gpu-accelerator-for-pandas/", "published_at": "2024-02-07T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2c921c17d", "title": "Running Dask workloads on multiple cluster backends with zero code changes using dask-ctl", "url": "https://jacobtomlinson.dev/posts/2024/running-dask-workloads-on-multiple-cluster-backends-with-zero-code-changes-using-dask-ctl/", "published_at": "2024-01-25T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2c9665d89", "title": "EffVer: Version your code by the effort required to upgrade", "url": "https://jacobtomlinson.dev/effver/", "published_at": "2024-01-15T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2ca61eaa7", "title": "How to highlight lines in a Hugo code block", "url": "https://jacobtomlinson.dev/posts/2024/how-to-highlight-lines-in-a-hugo-code-block/", "published_at": "2024-01-11T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2cab9871d", "title": "My Bio", "url": "https://jacobtomlinson.dev/about/", "published_at": "2024-01-11T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2cb0fa59d", "title": "How to get typer to show help by default", "url": "https://jacobtomlinson.dev/posts/2024/how-to-get-typer-to-show-help-by-default/", "published_at": "2024-01-10T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2cb45d6b9", "title": "GitHub streaks and work/life balance", "url": "https://jacobtomlinson.dev/posts/2024/github-streaks-and-work/life-balance/", "published_at": "2024-01-02T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2cb4b699b", "title": "Accelerating fuzzy document deduplication to improve LLM training with RAPIDS and Dask", "url": "https://jacobtomlinson.dev/talks/2023-12-08-accelerating-fuzzy-document-deduplication-to-improve-llm-training-with-rapids-and-dask/", "published_at": "2023-12-08T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2cbff1f24", "title": "When to rebuild things that already exist", "url": "https://jacobtomlinson.dev/talks/2023-09-24-pycon-uk-when-to-rebuild-things-that-already-exist/", "published_at": "2023-09-24T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2cc040130", "title": "Scaling the PyData Ecosystem with Dask", "url": "https://jacobtomlinson.dev/talks/2023-09-23-pycon-uk-scaling-the-pydata-ecosystem-with-dask/", "published_at": "2023-09-23T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2cce94898", "title": "Comparison of kr8s vs other Python libraries for Kubernetes", "url": "https://jacobtomlinson.dev/posts/2023/comparison-of-kr8s-vs-other-python-libraries-for-kubernetes/", "published_at": "2023-09-04T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2cdbd8281", "title": "The challenge of updating an aging blog", "url": "https://jacobtomlinson.dev/posts/2023/the-challenge-of-updating-an-aging-blog/", "published_at": "2023-08-23T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2ceb83a1e", "title": "Deploying multi-GPU workloads on Kubernetes in Python", "url": "https://jacobtomlinson.dev/talks/2023-08-17-euroscipy-multi-gpu-workloads-kubernetes-python/", "published_at": "2023-08-17T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2cfa042a6", "title": "How I fixed my UniFi Devices intermittently showing as offline", "url": "https://jacobtomlinson.dev/posts/2023/how-i-fixed-my-unifi-devices-intermittently-showing-as-offline/", "published_at": "2023-08-03T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2d028c3ec", "title": "Livestream notes: Replacing aiohttp with httpx in kr8s", "url": "https://jacobtomlinson.dev/posts/2023/livestream-notes-replacing-aiohttp-with-httpx-in-kr8s/", "published_at": "2023-07-04T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2d126b263", "title": "Introducing kr8s, a new Kubernetes client library for Python inspired by kubectl", "url": "https://jacobtomlinson.dev/posts/2023/introducing-kr8s-a-new-kubernetes-client-library-for-python-inspired-by-kubectl/", "published_at": "2023-06-19T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2d218828f", "title": "Avoid indirection in tests at all costs", "url": "https://jacobtomlinson.dev/posts/2023/avoid-indirection-in-tests-at-all-costs/", "published_at": "2023-05-25T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2d2abace6", "title": "Mini demos", "url": "https://jacobtomlinson.dev/posts/2023/mini-demos/", "published_at": "2023-05-17T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2d2b8b26f", "title": "Debugging Data Science workflows at scale", "url": "https://jacobtomlinson.dev/posts/2023/debugging-data-science-workflows-at-scale/", "published_at": "2023-05-12T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2d3450f04", "title": "Dask on Kubernetes Overview", "url": "https://jacobtomlinson.dev/talks/2023-03-16-k8s-batch-sig-dask-on-kubernetes/", "published_at": "2023-03-16T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2d39e9e27", "title": "Running Jupyter in your Dask Kubernetes cluster", "url": "https://jacobtomlinson.dev/posts/2023/running-jupyter-in-your-dask-kubernetes-cluster/", "published_at": "2023-03-10T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2d460951c", "title": "Being intentional with container terminology", "url": "https://jacobtomlinson.dev/posts/2023/being-intentional-with-container-terminology/", "published_at": "2023-02-09T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2d534cea4", "title": "Oversubscribing GPUs in Kubernetes", "url": "https://jacobtomlinson.dev/posts/2023/oversubscribing-gpus-in-kubernetes/", "published_at": "2023-02-07T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2d5bf33d2", "title": "Deploying multi-GPU workloads on Kubernetes in Python", "url": "https://jacobtomlinson.dev/talks/2023-02-02-pydatadc-multi-gpu-workloads-kubernetes-python/", "published_at": "2023-02-02T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2d645722b", "title": "Quick and dirty way to pre-pull container images on Kubernetes", "url": "https://jacobtomlinson.dev/posts/2023/quick-and-dirty-way-to-pre-pull-container-images-on-kubernetes/", "published_at": "2023-02-02T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2d68a5dfe", "title": "Debugging Sphinx extensions in VSCode", "url": "https://jacobtomlinson.dev/posts/2023/debugging-sphinx-extensions-in-vscode/", "published_at": "2023-01-24T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2d7644e24", "title": "Sometimes I regret using CalVer", "url": "https://jacobtomlinson.dev/posts/2023/sometimes-i-regret-using-calver/", "published_at": "2023-01-16T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2d8165a8c", "title": "Issue 6: Documentation and diagrams", "url": "https://jacobtomlinson.dev/newsletter/2022-10-28-docs-and-diagrams/", "published_at": "2022-10-28T16:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2d9122f7e", "title": "Dask Kuberenetes Operator Demo", "url": "https://jacobtomlinson.dev/talks/2022-10-27-dask-demo-kubernetes-operator/", "published_at": "2022-10-27T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2d9ff4354", "title": "Issue 5: Collaborating in Germany", "url": "https://jacobtomlinson.dev/newsletter/2022-10-14-offsite-in-germany/", "published_at": "2022-10-14T16:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2daad6d68", "title": "Issue 4: Last minute talk rewrites", "url": "https://jacobtomlinson.dev/newsletter/2022-09-30-last-minute-talk-rewrites/", "published_at": "2022-09-30T16:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2dab0cad3", "title": "Dask overview", "url": "https://jacobtomlinson.dev/talks/2022-09-29-stanford-legion-dask-overview/", "published_at": "2022-09-29T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2db51f29a", "title": "Issue 3: How much CI is too much CI?", "url": "https://jacobtomlinson.dev/newsletter/2022-09-23-how-much-ci-is-too-much-ci/", "published_at": "2022-09-23T16:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2dba28017", "title": "Narrative driven development", "url": "https://jacobtomlinson.dev/posts/2022/narrative-driven-development/", "published_at": "2022-09-12T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2dc68bdf1", "title": "Issue 2: Kubeflow, Dracula and more", "url": "https://jacobtomlinson.dev/newsletter/2022-09-09-kubeflow-and-kubernetes/", "published_at": "2022-09-09T16:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2dca2eb43", "title": "Issue 1: Five things each week", "url": "https://jacobtomlinson.dev/newsletter/2022-09-02-five-things-each-week/", "published_at": "2022-09-02T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2dd92ee86", "title": "Accelerating ETL on KubeFlow with RAPIDS", "url": "https://jacobtomlinson.dev/posts/2022/accelerating-etl-on-kubeflow-with-rapids/", "published_at": "2022-08-30T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2de297b9f", "title": "How to check your NVIDIA driver and CUDA version in Kubernetes", "url": "https://jacobtomlinson.dev/posts/2022/how-to-check-your-nvidia-driver-and-cuda-version-in-kubernetes/", "published_at": "2022-08-12T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2de799fd5", "title": "Using Dask on KubeFlow with the Dask Kubernetes Operator", "url": "https://jacobtomlinson.dev/posts/2022/using-dask-on-kubeflow-with-the-dask-kubernetes-operator/", "published_at": "2022-07-27T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2df4579b0", "title": "Don't prematurely squash/rebase and force push your PRs", "url": "https://jacobtomlinson.dev/posts/2022/dont-prematurely-squash/rebase-and-force-push-your-prs/", "published_at": "2022-07-26T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2df5b7cd9", "title": "Introducing Container Canary", "url": "https://jacobtomlinson.dev/talks/2022-07-14-scipy-lightning-container-canary/", "published_at": "2022-07-14T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2dffc8fd3", "title": "Commenting on Pull Requests with GitHub Actions", "url": "https://jacobtomlinson.dev/posts/2022/commenting-on-pull-requests-with-github-actions/", "published_at": "2022-07-12T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2e0c4db04", "title": "GPU development with Python 101", "url": "https://jacobtomlinson.dev/talks/2022-07-12-scipy-gpu-tutorial/", "published_at": "2022-07-12T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2e18e3df7", "title": "Dask Tutorial: Scaling the PyData Ecosystem", "url": "https://jacobtomlinson.dev/talks/2022-07-11-scipy-dask-tutorial/", "published_at": "2022-07-11T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2e1f6d81a", "title": "The secret to making code contributions that stand the test of time", "url": "https://jacobtomlinson.dev/posts/2022/the-secret-to-making-code-contributions-that-stand-the-test-of-time/", "published_at": "2022-07-05T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2e2c6c8cd", "title": "Parallelizing Your ETL with Dask on KubeFlow", "url": "https://jacobtomlinson.dev/talks/2022-06-29-geekle-data-science-summit-dask-on-kubeflow/", "published_at": "2022-06-29T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2e2e0a612", "title": "GPU programming with Python", "url": "https://jacobtomlinson.dev/talks/2022-06-28-cern-accelerator-python-gpu-python.md/", "published_at": "2022-06-28T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2e31c09c2", "title": "GPU Development with Python 101", "url": "https://jacobtomlinson.dev/talks/2022-06-15-odsc-gpu-python-101-tutorial.md/", "published_at": "2022-06-15T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2e3e8b5a7", "title": "Parallelizing Your ETL with Dask on KubeFlow", "url": "https://jacobtomlinson.dev/talks/2022-06-08-mlops-world-toronto-dask-on-kubeflow/", "published_at": "2022-06-08T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2e4db43c4", "title": "GPU accelerating your computation in Python", "url": "https://jacobtomlinson.dev/talks/2022-05-25-egu22-distributing-your-array-gpu-computation/", "published_at": "2022-05-25T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2e4f8b2fc", "title": "How to set environment variables on your Dask workers", "url": "https://jacobtomlinson.dev/posts/2022/how-to-set-environment-variables-on-your-dask-workers/", "published_at": "2022-05-05T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2e5d1acc9", "title": "Golang block until interrupt with ctrl+c", "url": "https://jacobtomlinson.dev/posts/2022/golang-block-until-interrupt-with-ctrl-c/", "published_at": "2022-03-21T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2e5d54163", "title": "Goodbye Docker Desktop for Mac, Hello Colima", "url": "https://jacobtomlinson.dev/posts/2022/goodbye-docker-desktop-for-mac-hello-colima/", "published_at": "2022-01-31T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2e614f10e", "title": "Docker Desktop for Mac alternatives for developers", "url": "https://jacobtomlinson.dev/posts/2022/docker-desktop-for-mac-alternatives-for-developers/", "published_at": "2022-01-28T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2e6c4b851", "title": "Running Kubeflow inside Kind with GPU support", "url": "https://jacobtomlinson.dev/posts/2022/running-kubeflow-inside-kind-with-gpu-support/", "published_at": "2022-01-27T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2e79b99ee", "title": "Quick hack: Adding GPU support to kind", "url": "https://jacobtomlinson.dev/posts/2022/quick-hack-adding-gpu-support-to-kind/", "published_at": "2022-01-25T00:00:00+00:00" }, { "id": "01a08789-c2dc-705d-aa48-d6e2e833d5f9", "title": "Don't be that open-source user, don't be me", "url": "https://jacobtomlinson.dev/posts/2022/dont-be-that-open-source-user-dont-be-me/", "published_at": "2022-01-17T00:00:00+00:00" } ] posts Claim your blog
Back to jacobtomlinson.dev
Blog · corpus.blog/blogs/jacobtomlinson.dev/posts

jacobtomlinson.dev

jacobtomlinson.dev

2026

2025

2024

2023

2022