Moneyball for Hiring: Stop Wasting Time and Money

2025-08-09

This post critiques current inefficient hiring processes that waste the time and resources of both applicants and companies. The author argues that traditional coding interviews (LeetCode style) fail to effectively distinguish excellent programmers from imposters and neglect the holistic capabilities of software engineers. A better approach focuses on practical work skills, such as code review, architecture design, and work sample evaluation, while emphasizing teamwork and individual style. The author suggests combining code review with live discussion of work samples and scheduling meetings between candidates and their future managers to improve hiring efficiency and accuracy. The ultimate goal is to find long-term suitable employees rather than short-term candidates.

Read more
Development interviewing

The Optimization Challenges of Low-Level Languages and the Future of Polyglot Programming

2025-07-27

A recurring problem in modern “low-level” languages is the difficulty in optimization due to their disconnect from hardware. The author uses Haskell and Futhark as examples, highlighting the advantages of functional languages in optimization. Their restrictive design and referential transparency allow compilers more freedom to optimize. However, some scenarios still require low-level operations, such as Rust's `unsafe` blocks. The article ultimately advocates for a polyglot programming paradigm, building meta-languages to let developers easily choose the right tool for the job, such as inline Futhark or Datalog, ultimately improving overall performance and addressing optimization challenges.

Read more
Development

The Programmer's Prison: Escaping the Trap of Bloated Software Tools

2025-07-14

This article explores the dilemma of bloated software tools: to avoid user churn, tools constantly expand their functionality, ultimately becoming cumbersome. The author proposes several solutions: limiting tool growth (impractical), decreasing switching costs (through backward compatibility and standardization), leveraging FFI (Foreign Function Interface) and IPC (Inter-Process Communication). Unix shells, using IPC, allow tool composition, but data flow is unidirectional and lacks structure. PowerShell and NuShell introduce structured data, but interoperability and version stability remain issues. RPC (Remote Procedure Call) offers a structured interface but requires extensive code modification. The author concludes that programs themselves are prisons, restricting data flow and interoperability, and teases a follow-up post exploring escape strategies.

Read more
Development Tool Interoperability

Goodbye Tedious Workflows: My tmux-Powered Dev Setup

2025-06-23

This post details a highly efficient development workflow built around tmux. The author uses clever tmux configuration and scripting to directly open files on a remote server, seamlessly jump between panes, and switch effortlessly between files—all without local clones. The post walks through the configuration, including regular expressions and scripts, and compares alternatives. The motivation stemmed from frustrations with VSCode's lag and keybinding conflicts. While complex to set up, the author argues the efficiency gains outweigh the cost.

Read more
Development remote development