The Curious Engineer

All blogs / Python

Jacob Tomlinson

jacobtomlinson.dev

Building RAPIDS and Dask at NVIDIA. Tinker with Opsdroid in my spare time. he/him.

PythonDevOps / SRE / infrastructureAI / MLPerformance / optimization

Posts
274 from 1 Jan 2001 to 20 Oct 2026
Posting
monthly (11 in the last year)
Kind
personal blog
Feed
https://jacobtomlinson.dev/feed.xml

2026 10

  1. AI as an accessibility layer
  2. Writing blog posts while walking the dog
  3. Open Source libraries are evolving into reference implementations
  4. Giving Agents Minimal Tools
  5. Documenting your software libraries for agents
  6. Documenting your open source projects for machines
  7. Why taking notes still matters
  8. Swimming Challenges 2026
  9. Guiding your contributor's agents to better behaviours
  10. Backporting fixes to older releases on Conda Forge

2025 14

  1. Python package managers: uv vs pixi?
  2. Revisiting old contributions for Hacktoberfest
  3. The Majority Of Your Users
  4. EffVer - Version your code by the effort required to upgrade
  5. Teaching Python with GPUs: Empowering educators to share knowledge that uses GPUs
  6. EffVer - Version your code by the effort required to upgrade
  7. GPU Accelerated Python
  8. Intro to Kubernetes: 10 Years On
  9. Generating useful titles for automated PRs in GitHub Actions
  10. Why don't my markdown titles work sometimes?
  11. 100 Days of Coreutils
  12. Using multiple config files with kubectl and other Kubernetes tools
  13. An introduction to GPU programming in Python
  14. Who Builds the PyData Ecosystem?

2024 28

  1. Most stale bots are anti-user and anti-contributor, but they don't have to be
  2. GPU Development in Python 101
  3. The art of wrangling your GPU Python environments
  4. Getting science done with accelerated Python computing platforms
  5. Dask on HPC in 2024
  6. GPU Acceleration in the PyData community
  7. 2024 11 08 pydata nyc effver
  8. GPU Accelerated Python
  9. Accelerating Python on HPC with Dask
  10. 2024 08 28 euroscipy effver
  11. Zero Code Change GPU Acceleration
  12. GPU Development in Python 101
  13. GPU Development in Python 101
  14. Building a career in Open Source Software
  15. Python version epochs are broken
  16. Creating GitHub Releases automatically on tags
  17. Connect With Experts: RAPIDS Cloud Deployment
  18. Reducing the Cost of your Data Science Workloads on the Cloud
  19. A beginner's guide to managing Kubernetes resources in Python with kr8s
  20. Dask on Databricks
  21. Running Dask on Databricks
  22. cudf.pandas: the Zero Code Change GPU Accelerator for pandas
  23. Running Dask workloads on multiple cluster backends with zero code changes using dask-ctl
  24. EffVer: Version your code by the effort required to upgrade
  25. How to highlight lines in a Hugo code block
  26. My Bio
  27. How to get typer to show help by default
  28. GitHub streaks and work/life balance

2023 20

  1. Accelerating fuzzy document deduplication to improve LLM training with RAPIDS and Dask
  2. When to rebuild things that already exist
  3. Scaling the PyData Ecosystem with Dask
  4. Comparison of kr8s vs other Python libraries for Kubernetes
  5. The challenge of updating an aging blog
  6. Deploying multi-GPU workloads on Kubernetes in Python
  7. How I fixed my UniFi Devices intermittently showing as offline
  8. Livestream notes: Replacing aiohttp with httpx in kr8s
  9. Introducing kr8s, a new Kubernetes client library for Python inspired by kubectl
  10. Avoid indirection in tests at all costs
  11. Mini demos
  12. Debugging Data Science workflows at scale
  13. Dask on Kubernetes Overview
  14. Running Jupyter in your Dask Kubernetes cluster
  15. Being intentional with container terminology
  16. Oversubscribing GPUs in Kubernetes
  17. Deploying multi-GPU workloads on Kubernetes in Python
  18. Quick and dirty way to pre-pull container images on Kubernetes
  19. Debugging Sphinx extensions in VSCode
  20. Sometimes I regret using CalVer

2022 30

  1. Issue 6: Documentation and diagrams
  2. Dask Kuberenetes Operator Demo
  3. Issue 5: Collaborating in Germany
  4. Issue 4: Last minute talk rewrites
  5. Dask overview
  6. Issue 3: How much CI is too much CI?
  7. Narrative driven development
  8. Issue 2: Kubeflow, Dracula and more
  9. Issue 1: Five things each week
  10. Accelerating ETL on KubeFlow with RAPIDS
  11. How to check your NVIDIA driver and CUDA version in Kubernetes
  12. Using Dask on KubeFlow with the Dask Kubernetes Operator
  13. Don't prematurely squash/rebase and force push your PRs
  14. Introducing Container Canary
  15. Commenting on Pull Requests with GitHub Actions
  16. GPU development with Python 101
  17. Dask Tutorial: Scaling the PyData Ecosystem
  18. The secret to making code contributions that stand the test of time
  19. Parallelizing Your ETL with Dask on KubeFlow
  20. GPU programming with Python
  21. GPU Development with Python 101
  22. Parallelizing Your ETL with Dask on KubeFlow
  23. GPU accelerating your computation in Python
  24. How to set environment variables on your Dask workers
  25. Golang block until interrupt with ctrl+c
  26. Goodbye Docker Desktop for Mac, Hello Colima
  27. Docker Desktop for Mac alternatives for developers
  28. Running Kubeflow inside Kind with GPU support
  29. Quick hack: Adding GPU support to kind
  30. Don't be that open-source user, don't be me

2021 26

  1. GPU code in Python
  2. GPU development with Python 101
  3. GPU development with Python 101 (extended)
  4. What is RAPIDS?
  5. Branding your open source Python package
  6. What is the difference between Dask and RAPIDS?
  7. The evolution of a Dask Distributed user
  8. Managing cluster lifecycle with dask-ctl
  9. Dask on Kubernetes
  10. Deploying Dask Distributed
  11. Building a contributor community for your open source project
  12. Communicating with your open source community
  13. Building a user community for your open source project
  14. Documenting Python projects with Sphinx and Read the Docs
  15. Monitoring Dask + RAPIDS with Prometheus + Grafana
  16. Intro to distributed computing on GPUs with Dask in Python
  17. Automating releases of Python packages with GitHub Actions
  18. Testing and Continuous Integration for Python packages with GitHub Actions
  19. How to use an Xbox 360 controller with OS X El Capitan
  20. Awaitable Objects and Async Context Managers in Python
  21. Xbox 360 controller with Yosemite
  22. Test driven development in Python
  23. Testing your Python package
  24. High Throughput Computing with Dask: Intro Tutorial
  25. Documenting your Python code
  26. How to interactively debug GitHub Actions with netcat

2020 15

  1. How to check out the default git branch
  2. Intro to GPU Development in Python
  3. Leveraging the Hacktoberfest community
  4. Running Dask tutorials
  5. The current state of distributed Dask clusters
  6. Dask Maintainers Update
  7. How to use OBS Studio with Zoom, Hangouts, Teams and more on macOS
  8. Intro to Dask Tutorial
  9. How to enable SSH on Binder
  10. Publishing open source Python packages on GitHub, PyPI and Conda Forge
  11. Native Cloud Deployment with Dask-Cloudprovider
  12. RAPIDS - Open GPU Data Science
  13. Versioning and formatting your Python code
  14. Testing static sites with Lighthouse CI and GitHub Actions
  15. Creating an open source Python project from scratch

2019 19

  1. Twenty Nineteen Roundup
  2. 5 Tips to help you ace your internship and entry-level job interviews
  3. Creating GitHub Actions in Python
  4. Creating GitHub Actions in Go
  5. How to run Jupyter Lab at startup on macOS
  6. How to create a Helm chart repository with Chartpress, Travis CI, GitHub Pages and Jekyll
  7. How to merge Kubernetes kubectl config files
  8. The three types of fun
  9. Why your profile picture is important
  10. Cleaning up conda environments
  11. Setting up GPU Data Science Environments for Hackathons
  12. A history of science on the cloud at the Met Office
  13. Switching to Hugo
  14. Hypothetical datasets
  15. Met Office Informatics Lab Overview
  16. Intro to Earth Information Workshop
  17. Cloud agnostic distributed data analysis with Pangeo
  18. Containers Why and How to Use Them
  19. My pragmatic workshop format

2018 11

  1. Containers and orchestration 101 - Docker, Kubernetes and Helm
  2. Pangeo Principles
  3. Debugging Kubernetes PVCs
  4. Opsdroid
  5. Met Office Informatics Lab Overview
  6. Using Xiaomi door/window sensors as light switches
  7. Exploring Dask and Distributed on AWS Lambda
  8. Rise of the Bots
  9. Helping Balloons Navigate the Weather: Alibaba Tianchi Award Presentation
  10. Instant access to auto-scaling personal Python clusters
  11. Accessing S3 from FUSE

2017 20

  1. ChatOps - Automation via chat
  2. The Power of Big Data
  3. Scaling Clusters to Thousands of Servers in the Cloud
  4. Deploying opsdroid using ZEIT
  5. Autoscaling Distributed Compute With Dask Kubernetes and AWS
  6. Article in Computer Weekly
  7. Interactive Big Data Analysis With Jupyter, Dask and more
  8. Adaptive Dask clusters on Kubernetes and AWS
  9. Making Environmental Science and Data Beautiful and Useful
  10. Asyncio in Depth
  11. Generate git release notes automatically
  12. How to create a seal only token for Hashicorp Vault
  13. RITA 2017 Innovation Award
  14. Empowering Environmental Science With Open Tools and Data
  15. Monitoring scalable infrastructure
  16. Using Jupyter notebooks for SysAdmin, CloudOps and DevOps workflows.
  17. Moving large volumes of data to S3
  18. Index.json
  19. Apple Airport Express Repair
  20. Building Telegraf for 32bit FreeBSD

2016 17

  1. Cloud Utilisation in the Sciences
  2. Processing Environmental Big Data in the Browser for Science
  3. SVG Animations
  4. Build games for iOS 10 with Xcode 8 and Game Maker Studio 1.4
  5. A game on the perception of symbols
  6. Running Telegraf inside a docker container
  7. Getting started with VMwares ESXi/vSphere API in Python
  8. Cracking Enigma with Go
  9. A note on AWS disk performance testing
  10. Interactive Docker containers
  11. Running a Docker container
  12. Killing Containers to Make Weather Beautiful
  13. What is Docker?
  14. How to use an Xbox 360 controller with OS X El Capitan
  15. MacBook Rebuild
  16. Pretty git logs with `git lg`
  17. Fixing the SSH roaming vulnerability (CVE-2016-0777)

2015 15

  1. Twenty Fifteen Roundup
  2. Thoughts on Star Wars: The Force Awakens
  3. A Raspberry Pi Docker Cluster
  4. Intro to Kubernetes
  5. Building with Kubernetes
  6. Quick Tip - git delete merged branches
  7. Quick Tip - em vs rem
  8. govspeak: An open source markup language
  9. Lab School: Docker
  10. Updating flightradar24 with a Raspberry Pi
  11. Collaborative article corrections in Jekyll
  12. Simple reading speed estimate in Jekyll
  13. Test your Jekyll blog with Travis CI
  14. Bullet Journaling in 2015
  15. How to install and configure inadyn on CentOS 6

2014 21

  1. How to install VMware Tools on Centos 6 with yum
  2. Twenty Fourteen Roundup
  3. Run OpenVPN on non-standard port with SELinux and Centos 6
  4. How to easy_install and pip through a proxy
  5. How to install the vSphere 5.5 Client on Windows 8
  6. Simple HTML Redirect
  7. How I value media and entertainment
  8. How to use an Xbox 360 controller with OS X Yosemite
  9. Learn How to Build Cool Things With Weather Data in Python
  10. What is semalt and why are they in my analytics?
  11. How to stop Google from scanning my site
  12. Amazon S3: s3cmd put ([Errno 32] Broken pipe)
  13. How to install OS X Yosemite Developer Preview Beta in Virtualbox
  14. How to use text expansion in OS X 10.9 Mavericks
  15. How to make screen recordings in OS X Mavericks 10.9
  16. NASA Space Apps Challenge 2014 Roundup
  17. How to prepare for a hackathon
  18. Python script: Recursively remove empty folders/directories
  19. Should I buy a cheap upgraded/reformatted SDHC micro SD card on eBay?
  20. Convert tweet hashtags, at-tags and urls to links with PHP and Regular Expressions
  21. Fixing VirtualBox verr_supdrv_component_not_found when selecting bridged networking on OS X 10.9

2013 10

  1. Google Charts IE7 IE8 Issue: Date formatting problem
  2. Mac OS X Terminal Theme: Piperita
  3. Bootcamp Windows 7 on a 2011 MacBook Pro without a SuperDrive
  4. Fixing "ERROR: Error 35: error:14077458:SSL routines:SSL23_GET_SERVER_HELLO: reason(1112)"
  5. Sort top command by cpu usage and set to default in OS X
  6. Why is there no space in the MySQL password parameter?
  7. Using the AddThis Share Buttons wordpress plugin in a custom theme
  8. Convincing Paypal Phishing Email
  9. Has Stack Overflow been hijacked?
  10. SSH without a password on OS X with ssh-copy-id

2012 7

  1. Album Review: Muse 2nd Law
  2. Using background-position and sprite sheets to stop icon hover flicker
  3. Incorrect Gmail password when using exchange on iPhone
  4. How to query a database with AJAX and display as a tooltip
  5. Download Festival 2012 Timetable
  6. Shrinking SQL logs
  7. The lesser known browser war

2011 1

  1. Apple game center hacks

2010 4

  1. Additional HDD Philosphy
  2. Guide to repairing TFT monitor scratches
  3. Ubuntu setup 2010
  4. Back to Ubuntu

2001 6

  1. Calendar
  2. Euroscipy 2025
  3. Confirmed
  4. Subscribed
  5. Unsubscribed
  6. Cookies