absorb.md

Tobi Lütke

Chronological feed of everything captured from Tobi Lütke.

Tobi Lütke envisions Art Deco revival driven by robotic affordability in public works

Tobi Lütke, CEO of Shopify, suggests that the aesthetic of Art Deco, exemplified by the Hoover Dam, could be revitalized in modern public projects. He posits that advancements in robotics could significantly reduce the cost of implementing such intricate designs, thereby making them economically viable again. This perspective implies a future where advanced automation enables a return to historically elaborate architectural styles in infrastructure.

AI Reflexivity and Optimization Potential

AI is increasingly being applied reflexively, suggesting a growing trend towards its use as a first-resort solution. This reflexive application, even when it involves taking "shortcuts" that degrade initial quality, can quickly yield significant performance improvements and generate novel, valuable ideas through iterative refinement. This indicates a strong potential for AI to act as a rapid optimization and ideation tool in engineering contexts.

LiquidIL: Optimizing Ruby-based Liquid Template Execution via Intermediate Language Compilation

LiquidIL is a high-performance Liquid template engine that compiles templates to optimized Ruby via an Intermediate Language (IL). This approach significantly enhances performance by avoiding interpretation, leveraging multi-level compilation (Liquid → Ruby → native machine code via YJIT), and applying extensive compile-time and runtime optimizations like constant folding, dead code elimination, and zero-allocation hot paths. The core innovation lies in transforming Liquid templates into YJIT-friendly Ruby with native control flow, thereby eliminating interpreter overhead and enabling effective machine code generation.

Amux: Agentic Tmux for AI-Driven Development

Amux is a wrapper around tmux that enables persistent, named panels for running commands in the background, specifically designed for AI agents. It provides a robust run-and-tail workflow with byte-offset continuation, ensuring no output loss even with command timeouts. This architecture facilitates reliable execution and monitoring of long-running tasks within an agentic development environment by separating session management from the user's personal tmux.

Tobi Lütke Advises AI Devs on M1/M2 Optimization

Tobi Lütke, CEO of Shopify, suggests that AI developers should prioritize optimizing their models for Apple M1/M2 architectures with 8GB of unified memory. This implies a need for efficient model design or quantization techniques to run effectively on these resource-constrained but increasingly popular local devices. The advice points towards an opportunity for AI to become more accessible and less reliant on cloud infrastructure.

qmd 2.0 Shifts to Library-First Architecture for Enhanced Integration

qmd 2.0 transitions the project to a library-first architecture with a stable interface to simplify integration. By refactoring the CLI, MCP, and HTTP interfaces to depend on this core library, the project reduces redundancy and simplifies the overall codebase.

Try: A CLI Tool for Managing Ephemeral Dev Workspaces

Try is a command-line interface tool that streamlines the organization and navigation of experimental development directories. It addresses the common problem of scattered, unmanaged temporary projects by providing a centralized system with fuzzy search, smart sorting based on recency, and automatic date-prefixed directory creation. It is implemented as a single Ruby file with no external dependencies.

Demand for OpenClaw Solutions Beyond Tech Sector

There is an emerging demand for "OpenClaw" solutions from non-technical users, indicating a potential market expansion beyond the traditional tech demographic. Current methods of deployment, such as virtual machines, are proving cumbersome, suggesting a need for more scalable and user-friendly alternatives like multi-tenant setups or alternative "Claw" technologies. This highlights a gap in current offerings for broader, less technical adoption.

Autonomous AI Agents Outperform Human ML Researchers in Model Optimization

An autonomous AI agent, leveraging a self-contained research project similar to Andrej Karpathy's "autoresearch" concept, successfully optimized a query-expansion model. It achieved a 19% score improvement on a 0.8B parameter model in 8 hours and 37 experiments, outperforming a previous 1.6B parameter model. This demonstrates the potential for AI agents to accelerate machine learning research and development by autonomously iterating on training code and hyperparameters.

QMD Update Enhances AI Query Capabilities and Performance

The QMD search tool has received a significant update, moving from version 1.0.6 to 1.1.5 in three weeks, incorporating over 20 community pull requests. Key improvements include advanced multi-line document querying for AI query expansion, an "intent" parameter for disambiguating search context across five stages (expansion, reranking, chunk selection, snippets), and performance optimizations such as GPU initialization and reranking deduplication. These enhancements streamline AI-driven information retrieval and improve search accuracy.

QMD: Enhancing AI Coding with Local Semantic Search

QMD, a local semantic search engine developed by Tobi Lütke, addresses the challenge of maintaining context and memory in AI coding sessions, particularly with tools like Claude Code. By indexing Obsidian vaults, QMD enables efficient and relevant information retrieval, overcoming the limitations of traditional grep-based searches and improving token efficiency. This integration allows AI models to access and utilize a developer's full context from the outset of a session, significantly enhancing productivity and decision recall.

Context Engineering as Core to Company Leadership and Agentic AI

Company leadership is reframed as internal context engineering, a skill increasingly vital with the rise of agentic AI. Early tech founders, accustomed to this operational paradigm, are well-positioned for this shift.

Onix: Bridging Bundler and Nix for Hermetic Ruby Gem Builds

Onix provides a solution for creating hermetic Ruby gem builds by integrating Bundler's dependency resolution with Nix's hermetic build capabilities. It processes a Gemfile.lock to generate Nix derivations, enabling reproducible and cacheable builds for Ruby projects. The tool emphasizes the use of system libraries from nixpkgs and content-addressed store paths for efficient caching and parallel builds.

try-cli: A C-based CLI for Ephemeral Project Management

try-cli is a command-line utility written in C that provides an organized yet flexible way to manage experimental project directories. It addresses the common issue of scattered "test" directories by centralizing them into a single, searchable location. The tool features fuzzy search, smart sorting based on recent usage, automatic date-prefixed directory creation, and git repository cloning, all within a native, dependency-free binary for high performance.

macOS Audio Priority Bar for Streamlined Device Management

The Audio Priority Bar is a native macOS application designed to automate audio device switching based on user-defined priorities. It streamlines the management of speakers, headphones, and microphones by enabling automatic transitions to higher-priority connected devices while offering manual override capabilities and remembering previously connected devices. The application integrates directly into the macOS menu bar, providing quick access to volume control and mode switching.

Tobi Lütke on Shopify: Empowering Entrepreneurs and the Future of AI in Commerce

Tobi Lütke, co-founder and CEO of Shopify, discusses the platform's role in democratizing entrepreneurship by simplifying online business creation. He highlights the philosophical underpinnings of Shopify, emphasizing entrepreneurship as a virtuous cycle of self-expression and value creation. Lütke also shares his optimistic perspective on AI, viewing it as a powerful tool that will further empower individuals and small businesses, making entrepreneurship more accessible than ever before.

Tobi Lütke: The Entrepreneurial Mindset and Shopify's Growth

Tobi Lütke, CEO of Shopify, discusses his unique approach to business, emphasizing continuous learning, challenging assumptions, and solving fundamental problems. He highlights the importance of fostering an entrepreneurial spirit and a growth mindset within his company, even in the face of significant challenges. Lütke advocates for stripping away inefficiencies and focusing on core value creation, drawing from his personal experiences and the evolution of Shopify.

Tobi Lütke Verifies GitHub Ownership via Keybase PGP Signature

Tobi Lütke claims identity linkage between GitHub username 'tobi' and Keybase profile 'tobi' using a PGP-signed proof object. The proof includes key fingerprint 7D83 588B B379 6236 C5E1 E2FB 05AC 86DA DD36 CAA2, a JSON body specifying the web service binding, and an embedded PGP signature verifiable on keybase.io. Ownership is demonstrated by publishing the signed gist on GitHub, enabling public auditability via Keybase CLI tools.

Ruby Keyword Arguments Are 9x Slower Than Positional Arguments, Hash Arguments 4x Slower

Benchmark by Shopify CTO Tobi Lütke compares Ruby method calls with positional arguments, keyword arguments, and hash arguments over 1 million iterations. Positional arguments complete in 0.176s real time, hash arguments in 0.795s, and keyword arguments in 1.677s. Keyword syntax imposes the highest performance penalty, exceeding even explicit hash unpacking.

Go MySQL Driver Fails to Scan DATETIME into time.Time

Tobi Lütke's 2012 Gist demonstrates a scanning error in Go's database/sql with the go-mysql-driver when querying a MySQL DATETIME column into a time.Time variable. The driver returns []uint8 instead of a scannable time.Time, causing "unsupported Scan pair" error. This highlights early limitations in Go MySQL driver type conversion for temporal data.

Tobi Lütke's Simple Ruby Class for Graceful Periodic Task Scheduling

Forever is a lightweight Ruby class that schedules recurring tasks via Thread.new loops checking elapsed time against a timespan, executing blocks only when due. It supports multiple independent timers through an array of threads and blocks on all joins in run() until an external INT signal sets $done. Handles clean shutdown via global trap("INT") { $done = true }, with 1-second sleep granularity for low CPU usage.

JavaScript Utility for Precise Date Range Selectors in Reporting

This CoffeeScript function generates start and end timestamps for common reporting periods like Yesterday, Last 7 days, This Week, Last Week, This Month, and Last Month. It resets the current date to midnight, computes boundaries using millisecond offsets for days, and derives month starts/ends by manipulating day-of-month offsets. The output is an object mapping period names to [start, end] timestamp arrays, enabling quick access to standardized timespans.

Minimal JSONP Client via Dynamic Script Injection

Provides a concise JavaScript implementation of JSONP using dynamic script element insertion to bypass same-origin policy for cross-domain API calls. Generates unique callback names, appends them to the request URL, defines global callback handlers that process responses and self-cleanup, then fetches and logs recent tweets from Twitter. Demonstrates practical usage with Twitter's user_timeline endpoint returning JSON arrays processed via forEach.

JavaScript for-loop closures capture shared variable reference, not snapshot values

In JavaScript, functions created inside a for loop share the same lexical scope for the loop variable `c`, so all closures reference its final value rather than individual iterations. This behavior occurs because JavaScript has function-level scope, not block-level, causing unexpected outputs when invoking the functions. Fixes include using `forEach`, `map`, or shadowing the variable inside each closure with `var c = ary[i]`, though traditional loops may be faster for performance-critical code.

Redis-Based Hierarchical Stats Aggregation for Shopify Shops

Tobi Lütke prototypes a lightweight stats server using Redis for Shopify, aggregating metrics like hits, visits, and traffic in time-based keys from year down to hour granularity per shop. The incr method supports counters across hierarchies and optional set collections for unique items like referrers or search terms. Usage tracks request objects, new sessions, and categorizes traffic sources via a mock Request object.

Tobi Lütke's Ruby Wrapper for SmartMTA SendLabs REST API

Tobi Lütke published a minimal Ruby class, SmartMta, leveraging HTTParty to interact with SmartMTA's SendLabs REST API. The sole method, add_sender, posts an email address to the /senders endpoint using an API key for authentication. It raises an error unless the API returns 'OK', enforcing strict success validation.

ActiveMerchant Extension Enables PayPal Express Recurring Payments via NVP API

Tobi Lütke's GitHub Gist provides a Ruby module extending ActiveMerchant with PaypalExpressRecurringNvGateway for handling recurring payments using PayPal's Express Checkout NVP API. It supports key operations like setting up billing agreements, creating/managing recurring profiles, updating details, and billing outstanding amounts with options for trials, shipping, taxes, and failure handling. The implementation leverages PaypalNvCommonAPI and includes both live and sandbox redirect URLs for seamless integration into Rails applications.

RSpec Mock Error Exposes Private pretty_print Call in Money Gem Allocation Test

Tobi Lütke's GitHub Gist captures a failing RSpec test in money_spec.rb for the Money gem's allocate method. The test expects Money.ca_dollar(0.05).allocate([1]) to return [Money.ca_dollar(0.05)], verifying currency preservation across interest parties. Failure stems from a private method `pretty_print` invoked on an RSpec::Mocks::ErrorGenerator instance, likely during inspection or output formatting.

Ruby JSON Gem Serializes Time Objects as Strings Before Core Mixins Loaded

In REE 1.8.7, requiring 'json' allows Time.now.to_json to produce a string representation, which JSON.parse deserializes back to String rather than Time. Loading the 'json/add/core' mixin afterward fixes deserialization to restore Time objects. This reveals JSON's core extensions for native types like Time are not automatically included on initial require.

Minimal JavaScript Test Framework with Inline Execution

Tobi Lütke's Gist presents a compact, self-contained JavaScript test runner that executes in a browser environment. It defines a TestCase constructor that iterates over an object of test functions, invoking assertions like assertEqual and assertNotEqual, which track success and failure counts via console and document output. The example demonstrates one passing and one failing test, printing real-time progress dots and 'f's before a final summary.

Early Shopify Product Listing Controller Optimizes Pagination and Multi-Format Responses with Eager Loading

This Ruby on Rails controller action fetches paginated products for a shop using dynamic includes and conditions from params. It computes total count separately for pagination, applies fixed sorting by title and vendor, and preloads associations like images, variants, and options based on response format. Supports HTML (with vendors/types), XML, JSON, and CSV exports, demonstrating efficient querying and format-specific optimizations in pre-ActiveRecord 3 era.

Rails Accelerated Belongs-To Optimizes Common Association Lookups via Current Scope Caching

Tobi Lütke's accelerate.rb defines an accelerated_belongs_to method that dynamically generates an optimized belongs_to association for Rails models. It requires the associated class to implement a 'current' class method, then aliases the original association and redefines it to return the cached 'current' instance if its ID matches the foreign key, avoiding redundant database queries. This pattern accelerates frequent lookups of the "current" related record, such as the active shop or user in a session.