Undeterministic flaky builds are one of the most annoying things in software engineering 💢. It also sounded like a fun name for a engineering blog 👨‍💻. This website contains thoughts and struggles in the path to create meaningful engineering processes, useful products and websites 💡.

This is software engineering blog from Onni Hakala, a seasoned product minded software engineer with a decade of experience about writing code and few years on leading teams of engineers.

You can learn more about me here.

Latest from the Blog

Helping Claude Code to find undocumented APIs from the code

Helping Claude Code to find undocumented APIs from the code

Claude Code kept saying my DuckDB extension was impossible to create. GitHits MCP saved the day—it searches real code instead of docs, finally helping Claude find the undocumented C++ APIs I needed.

AIClaude CodeDocumentationDuckDB
Storing only the changed rows with Ducklake

Storing only the changed rows with Ducklake

Tips for using ANTI JOIN and EXCEPT in DuckDB to write only changed data in Ducklake.

DatasetsDuckDB
Tagging useful information in OpenStreetMap

Tagging useful information in OpenStreetMap

OpenStreetMap contains plenty of useful data, which can be used freely by anyone. Here's a short introduction and a few useful examples to help you find family-, laptop-, or dog-friendly places. Hopefully, this motivates you to start contributing too! 🗺️

DatasetsLifestyleOSS
Debug like a champion

Debug like a champion

This guest post by Juhis⁠⁠ discusses five key tips for effective software debugging.

Software Development
Using MacOS Screen Time data to create work hour reports

Using MacOS Screen Time data to create work hour reports

Using MacOS Screentime, Duckdb and SQL to keep track of working hours

LifehackMacOSTime Management
Data engineering to find domains pointing to certain CNAMEs

Data engineering to find domains pointing to certain CNAMEs

Using Merklemap DNS database and duckdb to reverse lookup popular CNAME values. Parquet is very powerful format on storing large quantities of data. We learn importance of ordering and compression as well.

DNSDatasetsDuckDB
Multiple options of storing SSH keys in hardware

Multiple options of storing SSH keys in hardware

Tutorial on using hardware backed SSH keys from multiple physical devices on MacOS. Learn how to use secure ways to store your keys and how to have backups of them too.

DevOpsMacOSSSHServers
My mobile internet setup and physical eSIM cards

My mobile internet setup and physical eSIM cards

My mobile internet setup using GLX-3000 router, Peplink 42G antenna and EIOTClub eSIM card adapter to use cheap eSIM providers on the go.

Mobile InternetTravel
Creating wrappers for Windows exe files using Homebrew and Wine

Creating wrappers for Windows exe files using Homebrew and Wine

Tutorial for creating MacOS Homebrew Casks for software originally intended for Windows only. This example will show how I created a MacOS wrapper for car diagnostics software FORScan. You will learn how to automate the process of running Windows apps on macOS with Wine integration and USB device handling.

MacOSOSSSoftware Development
How to watch TikTok videos without TikTok account with Proxitok & Finicky

How to watch TikTok videos without TikTok account with Proxitok & Finicky

Learn how to watch TikTok videos without an account on MacOS by using Proxitok proxies and automatically rewriting TikTok links with Finicky.

LifehackMacOSTIL
How to add 3 million real companies to your empty Cloudflare D1 database?

How to add 3 million real companies to your empty Cloudflare D1 database?

These are the steps how I added 3 million real companies to my empty database. CrunchBase has amazing free dataset which I converted to SQL using duckdb & sqlite3 and uploaded to Cloudflare D1 database with wrangler.

DatasetsSaaSStartups
How to avoid sending duplicate emails to customers

How to avoid sending duplicate emails to customers

Read about my embarrassing incident where due to a coding error, customers received the same email 32 times. You can avoid this issue by using idempotent emails.

EmailMarketingStartups
Backup your MacOS keyboard shortcuts from command line

Backup your MacOS keyboard shortcuts from command line

MacOS keyboard shortcuts can be backed up and imported using the defaults command line interface. This can be done for all shortcuts or for individual ones. The defaults command can also be used to find other keyboard shortcuts. However, the documentation for defaults is lacking, making it difficult to use.

MacOSSoftware DevelopmentTIL
Guide for purchasing custom domains

Guide for purchasing custom domains

Detailed guide on finding, purchasing, transfering and using Custom domains for cheap. We explore free alternatives as well and talk about automating things with domains too. I will share why NameCheap and Cloudflare are my top choices for a domain registrars.

Brand valueLaunching productsWeb Dev
Stop scheduling meetings manually

Stop scheduling meetings manually

Scheduling tools like Calendly or Cal.com can streamline manual meeting coordination. Cal.com is amazing for its open-source nature and generous free tier. The author shares their positive experience with Cal.com, underscoring its ability to save time and improve productivity.

ConsultingOSSTime Management
Built-in workaround for applications hiding under the MacBook Pro notch

Built-in workaround for applications hiding under the MacBook Pro notch

Annoyed by the notch on the new MacBook Pro models? There's a built-in workaround! Adjust menu bar spacing with simple Terminal commands, no extra software needed. Say goodbye to hidden menu items behind the notch!

LifehackMacOSTIL
How to get a logo for your website without design skills?

How to get a logo for your website without design skills?

To get a logo for your website without design skills, you can use paid options like LogoAI, Fiverr Logo Maker, or hire cheap designers directly from Fiverr. Free alternatives include using royalty-free logos from Freepik.com and converting them to SVG.

Brand valueLaunching productsWeb Dev
Creating a tech blog which I actually enjoy writing

Creating a tech blog which I actually enjoy writing

The author shares his ten-year journey of developing tech blogs, starting with WordPress, exploring Static Site Generators (SSGs) such as Jekyll and Hugo, and eventually ending using Notion as a Content Management System (CMS).

Blog EngineStatic Site GeneratorWeb Dev
Using Chrome through SSH tunnel and SOCKS5 proxy in MacOS

Using Chrome through SSH tunnel and SOCKS5 proxy in MacOS

Instructions on how to proxy Chrome requests through an SSH tunnel using a SOCKS5 proxy on MacOS, allowing access to remote web services and changing the visible IP address.

MacOSProxySOCKS5SSHServersTILWeb Dev
How to manage remote server users with Ansible

How to manage remote server users with Ansible

This post shows an powerful example of how to do user access management for admin/developer user accounts for medium to big sized web agencies. Managing users efficiently and securely in big company usually includes a clunky process like LDAP. Today I will show you how to use git and ansible instead.

AnsibleDevOpsSSHServers