Making my Claude Code setup company-agnostic
Splitting my global Claude Code instructions into a public layer I track in dotfiles and a private layer that never leaves the machine, seeded automatically at bootstrap.
Splitting my global Claude Code instructions into a public layer I track in dotfiles and a private layer that never leaves the machine, seeded automatically at bootstrap.
How three developers sharing one Snowflake dev environment turned into three isolated sandboxes, built on Dagster OSS without touching the existing managed setup.
How I gave every branch its own throwaway Snowflake schema so local dbt and Dagster development stops colliding with shared dev environments.
A technical breakdown of how I migrated a WordPress site to a fast, cost-effective static site using AI, GitHub Pages, and Cloudflare.
How I replaced brittle Python request scripts with a modern, fast, and cheap local data stack using dlt, DuckDB, and dbt.
How I completely automated the provisioning of my new laptop using a structured dotfiles repository, Homebrew, and AI agents.
You can use a JSON file as input for the strategy matrix by using the following as the workflow file inside .github/workflows/main.yml:
name: main
on: push
jobs:
configure:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: Checkout to repository
uses: actions/checkout@v3
- name: Set matrix data
id: set-matrix
run: echo "matrix=$(jq -c . < ./config.json)" >> $GITHUB_OUTPUT
print:
runs-on: ubuntu-latest
needs: configure
strategy:
matrix: ${{ fromJson(needs.configure.outputs.matrix) }}
steps:
- run: echo ${{ matrix.name }}
where the configuration should be written with the include key explicitly in the root folder in config.json:
{
"include": [
{
"name": "Mario"
},
{
"name": "Luigi"
}
]
}
To test this locally I have used act by simply running act in the root directory of the repository.
Installing Spark on your local machine is always a challenge. For future reference I wrote down the steps to make Spark 3.3.1 work on my MacBook.
This notebook describes an experiment to get to know Great Expectations better. In the approach below we will use the core API rather than the configuration option for the expectations.
The idea for this project is to finally use Pythonista on my phone. Every time I hit the Share Menu I see the option to Run a Pythonista script but I never had the opportunity (or imagination) to actually use it. Since I was already building a Dictionary app as part of a VueJS/FastAPI/Postgres project to get familiar with FastAPI I thought it would be interesting to use my phone to add words to the database. In addition to adding words to the database the Pythonista script will also query a dictionary API to add the definition to the table as well.