Skip to content
View Ianvdl's full-sized avatar
🐘
The local elephant tamer
🐘
The local elephant tamer

Highlights

  • Pro

Block or report Ianvdl

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Ianvdl/README.md

Ian van der Linde: PostgreSQL 🐘 • Linux 🐧 • Python 🐍

Ian's notes 💻 • Bluesky 🦋 • LinkedIn 🧳 • ORCiD 📝 • Shutterstock 📸 • [email protected] 📧

Note

I am currently based in the beautiful city of Utrecht, in the Netherlands 🇳🇱. If you'd like to get in touch, send me an email at [email protected], or connect/follow/message me on LinkedIn 🙂

About me

Hi, I’m Ian van der Linde (hence @Ianvdl and ivdl.co.za). I am a senior PostgreSQL engineer. In my current role, I am responsible for running PostgreSQL 24/7 for downtime-sensitive applications in high availability, and working on automation and CI/CD for infrastructure using Puppet and Ansible, and performance monitoring and tuning using a custom PostgreSQL extension and PowerBI.

Previously, I was responsible for full stack Python/Django software development (including all aspects of HTML/CSS/JS on the frontend), high performance PostgreSQL database administration and Linux system administration (on-premises in the form of bare-metal and containerised applications, and Microsoft Azure cloud services). I also worked with colleagues to establish patent analysis as a key function of the team.

I am also a certified Linux systems administrator and software developer with experience in automation through version control (Git and SVN), orchestration (Rundeck and Ansible) and configuration management (Puppet), programming mainly in C# with ASP.NET and Python with Django. I have also worked in a high performance computing environment in all areas of hardware and software installation and configuration.

I have specialised experience in DSpace repositories, EZProxy configuration and Open Journal System (OJS) administration and debugging.

I have a further interest in machine learning, and completed my master’s degree on the topic of sentiment analysis.

Read some of my work

PostgreSQL

Pretending to be PostgreSQL: Part one - the server handshake

Pretending to be PostgreSQL: Part two – responding to queries

The infinitely patient vacuum – a case study of what happens when the PostgreSQL VACUUM never completes

A room with a view of the PostgreSQL autovacuum

Estimating the disk space needed for a VACUUM FULL on PostgreSQL

Achieving a 100x speedup of DELETEs on PostgreSQL

PostgreSQL streaming replication characteristics on UNLOGGED tables

A quickstart guide to CloudNativePG on Ubuntu and Mac OS

Data science

What do Norway and Namibia have in common?

Web development

Demystifying HTTP with Telnet

Using the Django _meta API to write generalisable code within the confines of the ORM

Finding the database for a Django model class and instance

Extending Django templating to create dynamic, nested templates

Constructing an automated workflow based on the Django manage.py inspectdb command

Mac OS

Essential, open source Mac apps

Fixing “Waiting to upload” for iCloud in Mac OS Finder

How to add an iCloud shortcut to your Mac home folder

Windows

A look back at some older 16-bit shareware games for Windows

Ian's github stats

Other experience and tooling

Ian van der Linde profile views

Pinned Loading

  1. patstat-to-postgresql patstat-to-postgresql Public

    Based on altay-oz/load_patstat and simplified

    Shell 7 3

  2. go-accumulo go-accumulo Public

    Thrift generated Golang bindings for Apache Accumulo

    5 1

  3. csv-counter csv-counter Public

    A simple script to count the number of records in a given list of CSV files. This is useful for verification after database loads as it takes into account newlines inside quoted strings, something …

    Python 2

  4. Monitoring MegaRAID using Telegraf Monitoring MegaRAID using Telegraf
    1
    # Documented at https://ivdl.co.za/2023/09/12/monitoring-megaraid-arrays-using-telegraf-and-megaraidsas-status-on-linux/
    2
    # Covers megaraidsas-status and megacli
    3
    # Modifications to sudoers file required - documented above
    4
    [[inputs.exec]]
    5
      commands = ["bash -c 'sudo megaraidsas-status | grep RAID | grep -q -v degraded && echo true || echo false'"]
  5. edb-ansible edb-ansible Public archive

    Forked from EnterpriseDB/edb-ansible

    Ansible code for deploying EDB Postgres database clusters and related products.

    Python