Welcome! Type "help" for available commands.
$
Loading terminal interface...

~/blog

28 articles

Reflections on Engineering Cleaner Back-ends

Reflections on Engineering Cleaner Back-ends

backendarchitecturespring bootclean architecturerefactoring

Why I stopped adding layers — DTOs, ports, mappers, use-case objects — and let one strictly-typed data class own the boundary instead.

November 9, 2025
How to Secure Environment Variables for LLMs, MCPs, and AI Tools Using 1Password or Doppler

How to Secure Environment Variables for LLMs, MCPs, and AI Tools Using 1Password or Doppler

security1passworddopplermcpai

Stop hardcoding API keys in MCP configs and AI tool settings. Learn how to use 1Password CLI or Doppler to inject secrets just-in-time for Claude, Cursor, Continue, and other AI coding assistants.

September 25, 2025
Claude Code Output Styles: Explanatory, Learning, and Custom Options

Claude Code Output Styles: Explanatory, Learning, and Custom Options

aiclaude codeoutput styleslearningcustom styles

An implementation guide to Claude Code's /output-style, the built‑in Explanatory and Learning modes (with to-do prompts), and creating reusable custom styles with /output-style:new.

August 22, 2025
Make a DigitalOcean Space Public by Default (ACLs and Bucket Policies)

Make a DigitalOcean Space Public by Default (ACLs and Bucket Policies)

digitaloceans3object storageaws-clis3cmd

If your Spaces policy or access-log commands return 403, you’re probably using a limited (per-bucket) key. Use a full-access key, then choose ACLs or a bucket policy for public reads.

July 20, 2025
Claude Code: Automatic Linting, Error Analysis, & Custom Commands

Claude Code: Automatic Linting, Error Analysis, & Custom Commands

aiclaude codelintingerror analysisslash commands

How to use Claude Code's error analysis slash-commands and create your own linting commands to automate repetitive CLI tasks.

June 16, 2025
How to Add a Symlink (From One) File (To Another)

How to Add a Symlink (From One) File (To Another)

symlinkfilesgitzshbash

Learn how to create a symlink from one file to another in macOS (zsh), Linux (bash), and Windows (cmd), including to cleanup the dreaded AGENTS.md variations.

June 15, 2025
Automated Sitemap Submissions: Bing & Google Guide

Automated Sitemap Submissions: Bing & Google Guide

sitemapseogooglebingindexnow

Configure a Node.js/TypeScript application to automatically submit sitemaps to Bing (IndexNow) and Google Search Console using service account credentials, with error handling and development mode awareness.

June 3, 2025
Vercel Blob vs Hetzner vs DigitalOcean vs AWS S3: Object Storage Showdown

Vercel Blob vs Hetzner vs DigitalOcean vs AWS S3: Object Storage Showdown

vercelawscloudstoragehetznerdigitalocean

Comparing Vercel Blob's new general availability pricing and features against Hetzner Object Storage, DigitalOcean Spaces, and traditional AWS S3 to help you choose the right object storage solution.

May 23, 2025
Anthropic's Claude 4 Announced: New AI Capabilities for Coding, Agents, and Claude Code in VS Code / IntelliJ

Anthropic's Claude 4 Announced: New AI Capabilities for Coding, Agents, and Claude Code in VS Code / IntelliJ

aiclaudeanthropicllmcodingai-agents

Anthropic launches Claude Opus 4 and Sonnet 4, setting new benchmarks for coding, reasoning, and AI agents with extended thinking capabilities and improved tool use.

May 22, 2025
Google's Jules AI Agent: Autonomous Coding and Environment Setup Guide

Google's Jules AI Agent: Autonomous Coding and Environment Setup Guide

aigooglejulespackage-managerspnpm

A hands-on look at Google's Jules AI coding agent, its capabilities, and how to configure your development environment for full autonomous abilities in Jules.

May 21, 2025
Java, Maven, & Gradle: OS Setup & Project-Level Usage

Java, Maven, & Gradle: OS Setup & Project-Level Usage

javajdkmavengradlebuild-tools

Install Java, Maven, Gradle at OS & project levels. Learn common commands for consistent builds & development workflows.

May 17, 2025
Setting Up a Modern Spring Boot Web Server with REST API & Web Content (2025 Guide)

Setting Up a Modern Spring Boot Web Server with REST API & Web Content (2025 Guide)

spring bootjavamavenintellij idearest api

How to create a Spring Boot application with RESTful APIs and static web content using Maven and IntelliJ IDEA in modern Java.

May 12, 2025
Kickstarting a Modern Django Project (using UV) in 2025

Kickstarting a Modern Django Project (using UV) in 2025

djangopythonvscodeintellijpycharm

How to start a Django project with modern templates, SaaS core features, SQL database integration, and popular IDE tooling.

May 7, 2025
Creating UML Diagrams in IntelliJ IDEA, PyCharm, and WebStorm

Creating UML Diagrams in IntelliJ IDEA, PyCharm, and WebStorm

umlintellijpycharmwebstormdiagrams

A guide to generating and using UML class diagrams in JetBrains IDEs like IntelliJ IDEA (Ultimate), PyCharm (Professional), and WebStorm, covering features, limitations, and language support.

May 6, 2025
How much does Techstars invest? Techstars' current and historical investment terms for startups

How much does Techstars invest? Techstars' current and historical investment terms for startups

techstarsstartupinvestingSAFEaccelerator

A look at how Techstars' deal terms have changed, from the early days to the current $220k offer.

April 28, 2025
How to setup the Java SDK and use JavaFX with macOS/Windows

How to setup the Java SDK and use JavaFX with macOS/Windows

macosjavazshintellijenvironment variables

A modern guide to setting up Java development with JavaFX on macOS and Windows using IntelliJ IDEA or VS Code. While setting `JAVA_HOME` is still useful for some tools like Maven and Gradle, many modern Java environments have reduced reliance on it. This guide includes integration with Scene Builder and modern IDEs.

April 8, 2025
Building an Interactive Terminal in Next.js

Building an Interactive Terminal in Next.js

nextjsreacttypescripthooksstate management

Building a simulated terminal UI with macOS-like window controls in Next.js, focusing on global state management and hydration patterns.

April 7, 2025
Adding a GitHub Contribution Graph to Next.js

Adding a GitHub Contribution Graph to Next.js

nextjsgithubgraphqlapireact

How to add a GitHub contribution graph to your Next.js site using GitHub's GraphQL API, with server-side caching.

April 2, 2025
Filey - Flag Deprecated Files: A Simple VSCode Extension for Cleaner Codebases

Filey - Flag Deprecated Files: A Simple VSCode Extension for Cleaner Codebases

vscodeextensiondeveloper-toolsproductivitycode-quality

How I solved my own problem of tracking deprecated files in large codebases with a lightweight VSCode extension that visually flags files marked with @deprecated tags.

March 24, 2025
How I Host My Apps: How to Deploy in 2025

How I Host My Apps: How to Deploy in 2025

devopsdockercloudstartups

The hosting setup I use for aVenture.vc, plus why you shouldn't waste time with complex cloud services when starting out.

February 10, 2025
How to automatically use Warp Terminal's Subshells with "Warpify"

How to automatically use Warp Terminal's Subshells with "Warpify"

terminalCLItechnology

Set up automatic subshells in Warp Terminal with a custom Warpify configuration

December 31, 2024
Greetings from the 2024 Next.js Conference in San Francisco

Greetings from the 2024 Next.js Conference in San Francisco

nextjsvercelconferencesan-francisco

Quick highlights from Next.js Conf 2024 in SF, including chats with Sahil Lavingia, Theo Browne, and Rahul Sonwalkar, plus winning a mechanical keyboard at the hackathon!

October 24, 2024
Setting Up a New PC / Server with Pop!_OS 22.04

Setting Up a New PC / Server with Pop!_OS 22.04

linuxpop-osservertutorialchecklist

A detailed checklist for setting up a PC / server with Pop!_OS 22.04, from BIOS configuration to essential tools installation

September 25, 2024
New Virtual Machine Server Setup Checklist

New Virtual Machine Server Setup Checklist

serverlinuxdockersecuritytutorial

A detailed guide to setting up a new Linux virtual machine server, from initial updates to security hardening

August 30, 2024
Proximity Bias: The Hidden Trap in Venture Capital

Proximity Bias: The Hidden Trap in Venture Capital

investingventure-capitalstartups

A critical look at how proximity bias affects venture capital investment decisions and what investors can do about it.

November 6, 2023
A Poem on AngelList and Venture Capital Investing

A Poem on AngelList and Venture Capital Investing

investingangellistfintech

A poem on the perils and promises of venture capital investing on AngelList's platform.

October 11, 2023
Portugal Golden Visa Fund Returns

Portugal Golden Visa Fund Returns

investingportugalgolden-visa

A compilation of return data for private funds in Portugal's Golden Visa investment program.

August 21, 2023
Box Spreads and Cash Yield Tax Efficiency

Box Spreads and Cash Yield Tax Efficiency

investingETFtax-efficiencyfinance

An analysis of the new box spread ETF BOXX, including its yield equivalency after tax and alternative options.

August 1, 2023
Home
CV
ExperienceEducation
ProjectsBookmarksInvestmentsContactBlog
X (Twitter)GitHub
X (Twitter)LinkedInGitHubDiscord