# Filipe Fortes > Personal website for Filipe Fortes, a software engineer living in Miami ## Articles - [2026 Personal Tech Stack](https://fortes.com/2026/personal-tech-stack/index.md): My yearly tradition no one sane cares about - [Custom Kids' Podcasts With NotebookLM](https://fortes.com/2025/kids-podcasts-with-notebooklm/index.md): Using NotebookLM to create personalized podcasts for kids - [2024 Personal Tech Stack](https://fortes.com/2024/personal-tech-stack/index.md): An on-spectrum overview of the tools and services I use regularly - [Hierarchical Tags in Hugo](https://fortes.com/2023/hierarchical-tags-in-hugo/index.md): Making your posts a dessert topping *and* a floor wax - [Using FZF in a Deno Script](https://fortes.com/2023/using-fzf-in-deno-scripts/index.md): Piping to FZF, with extra steps - [Debugging Hugo via meta tags](https://fortes.com/2023/hugo-debug-meta-tags/index.md): Start using your `` when working - [Make Git better with FZF](https://fortes.com/2022/make-git-better-with-fzf/index.md): How to look like a cool movie hacker while using Git - [Extracting FitBit Weight Data](https://fortes.com/2022/extracting-fitbit-weight-data/index.md): Stealing your history back from FitBit, minus the janky interpolated values - [Letterbox Blur with ImageMagick](https://fortes.com/2021/letterbox-blur-with-imagemagick/index.md): Putting round pegs into square image holes - [Scripting Photo Collages with ImageMagick](https://fortes.com/2021/image-collage-via-imagemagick/index.md): Automating something I don't even do anymore - [Getting Debian to send emails that actually get delivered](https://fortes.com/2020/debian-configure-email-sending/index.md): Making sure your algorithmic love letters don't get lost - [Linux disk encryption with LUKS and LVM](https://fortes.com/2020/linux-disk-encryption-luks-and-lvm/index.md): An unreasonable number of steps to get reasonable disk security on Linux - [Working From Everywhere](https://fortes.com/2019/working-from-home-green-screen/index.md): How to make your co-workers think you're working from Mordor - [Merging piped `stdin` with command-line arguments within Bash](https://fortes.com/2019/bash-script-args-and-stdin/index.md): How to avoid using `xargs` at all costs - [Mixing React and DOM events](https://fortes.com/2018/react-and-dom-events/index.md): Figuring out why your foot got blown off after you inadvertently shot it - [Using Rclone and MergerFS together across drives](https://fortes.com/2018/rclone-and-mergerfs/index.md): Create an encrypted drive pool in a hundred steps or less - [One Good Tweet](https://fortes.com/2017/one-good-tweet/index.md): I'm a one-hit wonder on Twitter; this is life with a marginally-popular tweet - [Using Language Servers in Neovim](https://fortes.com/2017/language-server-neovim/index.md): Adding IDE-like features into Neovim via the Language Server Protocol - [Coda](https://fortes.com/2017/coda/index.md): Talking about what I've been working on for the last three years. - [Command-line photo geotagging](https://fortes.com/2017/command-line-photo-geotagging/index.md): Using Google location data in order to geotag photographs from a camera via the command-line - [Adventures in command-line photo organization](https://fortes.com/2015/command-line-photo-organization/index.md): Some terminal commands used to tame a poorly-organized set of photographs before uploading to Google Photos - [Updated Pareto Browser Filter](https://fortes.com/2014/pareto-filter-update/index.md): Which browsers cause 80% of the development pain in 2014? Dropping support for older browsers makes development much simpler. - [Talking Treesaver](https://fortes.com/2011/talking-treesaver/index.md) - [Treesaver on The Big Web Show](https://fortes.com/2011/treesaver-on-the-big-web-show/index.md) - [The Pareto Browser Filter](https://fortes.com/2011/the-pareto-browser-filter/index.md): Drop support for problematic browsers with 20% share in order to vastly simplify development - [Treesaver Open Source Release](https://fortes.com/2011/treesaver-open-source-release/index.md) - [Treesaver gets Scobleized](https://fortes.com/2010/treesaver-gets-scobleized/index.md) - [Introducing Treesaver](https://fortes.com/2010/introducing-treesaver/index.md) - [Soft Hyphenator](https://fortes.com/2010/soft-hyphenator/index.md) - [jMetronome: Using jQuery to keep typographic rhythm](https://fortes.com/2008/jmetronome-using-jquery-to-keep-typographic-rhythm/index.md) - [Introducing the Dynamic Layout Library](https://fortes.com/2008/introducing-the-dynamic-layout-library/index.md) - [Font Rendering Across Rich Platforms](https://fortes.com/2007/font-rendering-across-rich-platforms/index.md) - [The Sad State of Online Advertising](https://fortes.com/2007/the-sad-state-of-online-advertising/index.md) - [Video and Screenshots from the Mix Panel](https://fortes.com/2007/video-and-screenshots-from-the-mix-panel/index.md) - [Creating WPF Text Layouts is Hard](https://fortes.com/2007/creating-wpf-text-layouts-is-hard/index.md) - [So Long](https://fortes.com/2006/so-long/index.md) - [Stylistic Alternates](https://fortes.com/2005/stylistic-alternates/index.md) - [A Tale of Two Transforms](https://fortes.com/2005/layout-vs-render-transforms/index.md) - [Contextual Alternates](https://fortes.com/2005/contextual-alternates/index.md) - [Enabling Ligatures in Avalon](https://fortes.com/2005/enabling-ligatures-in-avalon/index.md) - [Custom Layouts in Avalon](https://fortes.com/2003/custom-layouts-in-avalon/index.md) - [Why Vectors?](https://fortes.com/2003/why-vectors/index.md) ## Links ## Pages - [Filipe Fortes](https://fortes.com/filipe/index.md) - [Now](https://fortes.com/now/index.md)