{"version":"https:\/\/jsonfeed.org\/version\/1.1","title":"Nano's Random Ramblings","language":"en","description":"My random thoughts on software and other things.","home_page_url":"https:\/\/fdp.io\/","feed_url":"\/feed.json","authors":[{"name":"Fernando Paredes","url":"mailto:nano@fdp.io"}],"items":[{"id":"friction-is-the-signal","title":"Friction is the signal","url":"https:\/\/fdp.io\/blog\/friction-is-the-signal","content_html":"<p>I built a tool to catalog the work I forget. The upkeep taught me why I forget it.<\/p><a href=\"https:\/\/fdp.io\/blog\/friction-is-the-signal\">Read more<\/a>","date_published":"2026-06-05T18:29:06.081Z"},{"id":"knowing-enough","title":"Knowing Enough","url":"https:\/\/fdp.io\/blog\/knowing-enough","content_html":"<p>AI is leverage on what you already know. Don't trade away the thing that makes the leverage work.<\/p><a href=\"https:\/\/fdp.io\/blog\/knowing-enough\">Read more<\/a>","date_published":"2026-05-25T23:03:55.047Z"},{"id":"we-sped-up-the-part-that-wasnt-slow","title":"We Sped Up The Part That Wasn't Slow","url":"https:\/\/fdp.io\/blog\/we-sped-up-the-part-that-wasnt-slow","content_html":"<p>AI accelerated individual engineering. The bottlenecks at the areas of intersection between orgs didn't move.<\/p><a href=\"https:\/\/fdp.io\/blog\/we-sped-up-the-part-that-wasnt-slow\">Read more<\/a>","date_published":"2026-05-18T14:51:41.613Z"},{"id":"what-i-hand-off","title":"What I Hand Off","url":"https:\/\/fdp.io\/blog\/what-i-hand-off","content_html":"<p>Trust but verify. The amount of verification depends on the stakes and how well I know the domain.<\/p><a href=\"https:\/\/fdp.io\/blog\/what-i-hand-off\">Read more<\/a>","date_published":"2026-05-13T20:30:00.000Z"},{"id":"the-friction-that-made-us-talk","title":"The Friction That Made Us Talk","url":"https:\/\/fdp.io\/blog\/the-friction-that-made-us-talk","content_html":"<p>Engineers want to solve their own problems, and AI made acting on that motivation cheap. Alignment used to happen before any code. Now it happens after the tools have shipped.<\/p><a href=\"https:\/\/fdp.io\/blog\/the-friction-that-made-us-talk\">Read more<\/a>","date_published":"2026-05-08T15:00:00.000Z"},{"id":"learn-your-tools","title":"Learn Your Tools","url":"https:\/\/fdp.io\/blog\/learn-your-tools","content_html":"<p>If you don't know how your tools work, you're guessing. Learn the seams.<\/p><a href=\"https:\/\/fdp.io\/blog\/learn-your-tools\">Read more<\/a>","date_published":"2026-05-04T19:30:00.000Z"},{"id":"speak-for-yourself","title":"Speak For Yourself","url":"https:\/\/fdp.io\/blog\/speak-for-yourself","content_html":"<p>Your screenshot is not an argument. Tell me what you think.<\/p><a href=\"https:\/\/fdp.io\/blog\/speak-for-yourself\">Read more<\/a>","date_published":"2026-05-01T21:55:00.000Z"},{"id":"stakeholders-have-stakeholders","title":"Your Stakeholders Have Stakeholders (And They All Want Different Things)","url":"https:\/\/fdp.io\/blog\/stakeholders-have-stakeholders","content_html":"<p>I had a plan to fix the Swift migration. I had executive buy-in. Engineers agreed it was a good idea. But this was COVID. Food delivery was exploding. And feature velocity was the only metric that mattered.<\/p><a href=\"https:\/\/fdp.io\/blog\/stakeholders-have-stakeholders\">Read more<\/a>","date_published":"2025-11-01T10:00:00.000Z"},{"id":"platform-engineering-archaeology","title":"Platform Engineering is Archaeology with Deadlines","url":"https:\/\/fdp.io\/blog\/platform-engineering-archaeology","content_html":"<p>I joined a company in 2019 to build a bank. COVID killed that project. I got moved to a food delivery app with 1.3 million lines of code, 750k still in Objective-C, and a Swift migration that had stalled for two years.<\/p><a href=\"https:\/\/fdp.io\/blog\/platform-engineering-archaeology\">Read more<\/a>","date_published":"2025-10-25T10:00:00.000Z"},{"id":"the-work-is-never-just-the-work\/showing-up-when-everything-sucks","title":"The Days You Show Up Anyway","url":"https:\/\/fdp.io\/blog\/the-work-is-never-just-the-work\/showing-up-when-everything-sucks","content_html":"<p>I used to think success was about crushing it on your best days. Turns out, the days that really matter are the ones where you barely want to get out of bed.<\/p><a href=\"https:\/\/fdp.io\/blog\/the-work-is-never-just-the-work\/showing-up-when-everything-sucks\">Read more<\/a>","date_published":"2025-10-21T02:09:14.000Z"},{"id":"explore-vs-execute-finding-your-mode","title":"Explore vs Execute: Finding Your Mode","url":"https:\/\/fdp.io\/blog\/explore-vs-execute-finding-your-mode","content_html":"<p>I've been thinking about how we switch between exploration and execution modes, both in startups and personal projects. Turns out, knowing which mode you're in changes everything.<\/p><a href=\"https:\/\/fdp.io\/blog\/explore-vs-execute-finding-your-mode\">Read more<\/a>","date_published":"2025-08-16T10:00:00.000Z"},{"id":"the-work-is-never-just-the-work","title":"Why Your \"Quick Fix\" Takes Two Weeks","url":"https:\/\/fdp.io\/blog\/the-work-is-never-just-the-work","content_html":"<p>Every developer knows that sinking feeling when a \"quick\" project becomes a multi-week saga. Turns out, there's a reason for that\u2014and it's not just bad estimates.<\/p><a href=\"https:\/\/fdp.io\/blog\/the-work-is-never-just-the-work\">Read more<\/a>","date_published":"2024-12-02T10:00:00.000Z"},{"id":"finishing-up-the-prusa-xl","title":"Finishing up the Prusa XL","url":"https:\/\/fdp.io\/blog\/finishing-up-the-prusa-xl","content_html":"<p>I originally pre-ordered the Prusa XL 5 head semi-assembled and received it in the beginning of the year. Looking at the expected build time, I started building it and quickly lost energy to finish it. It sat on the table for six months until I got a not-so-gentle push to finish it from my wife.<\/p><a href=\"https:\/\/fdp.io\/blog\/finishing-up-the-prusa-xl\">Read more<\/a>","date_published":"2024-11-28T17:55:55.079Z"},{"id":"everybody-codes-the-kingdom-of-algorithmia","title":"Everybody Codes: The Kingdom of Algorithmia","url":"https:\/\/fdp.io\/blog\/everybody-codes-the-kingdom-of-algorithmia","content_html":"<p>A new <a href=\"https:\/\/adventofcode.com\/\">Advent of Code<\/a> style coding puzzle was released this year and it's been so fun to play.<\/p><a href=\"https:\/\/fdp.io\/blog\/everybody-codes-the-kingdom-of-algorithmia\">Read more<\/a>","date_published":"2024-11-22T04:10:42.475Z"},{"id":"upgrading-to-an-m4-max","title":"Upgrading to an M4 Max","url":"https:\/\/fdp.io\/blog\/upgrading-to-an-m4-max","content_html":"<p>Apple announced their new MacBooks with M4 processors. I picked up a new MacBook Pro 14\" with an M4 Max processor to replace my 2021 MacBook Pro with an M1 Pro.<\/p><a href=\"https:\/\/fdp.io\/blog\/upgrading-to-an-m4-max\">Read more<\/a>","date_published":"2024-11-12T01:38:41.828Z"},{"id":"2024-10-13-major-uses-page-overhaul","title":"Major \/uses Page Overhaul","url":"https:\/\/fdp.io\/blog\/2024-10-13-major-uses-page-overhaul","content_html":"<p>I've been tinkering away on my \/uses page and it's time for a grand reveal. I've made significant changes since it was first posted.<\/p><a href=\"https:\/\/fdp.io\/blog\/2024-10-13-major-uses-page-overhaul\">Read more<\/a>","date_published":"2024-10-14T03:20:55.555Z"},{"id":"2024-10-10-site-changelog-fresh-looks-and-funky-features","title":"Site Changelog: Fresh Looks and Funky Features!","url":"https:\/\/fdp.io\/blog\/2024-10-10-site-changelog-fresh-looks-and-funky-features","content_html":"<p>I've been busy behind the scenes, sprucing things up on my site, and I can't wait to share the latest and greatest updates with you all.<\/p><a href=\"https:\/\/fdp.io\/blog\/2024-10-10-site-changelog-fresh-looks-and-funky-features\">Read more<\/a>","date_published":"2024-10-11T01:00:06.554Z"},{"id":"2024-10-08-choosing-a-font","title":"Choosing A Font","url":"https:\/\/fdp.io\/blog\/2024-10-08-choosing-a-font","content_html":"<p>As part of the redesign, I wanted to choose new fonts. For prose, I wanted something legible with high readability. For code, I wanted a compact width.<\/p><a href=\"https:\/\/fdp.io\/blog\/2024-10-08-choosing-a-font\">Read more<\/a>","date_published":"2024-10-08T01:16:33.136Z"},{"id":"2024-09-06-css-theming-in-2024","title":"CSS Theming in 2024","url":"https:\/\/fdp.io\/blog\/2024-09-06-css-theming-in-2024","content_html":"<p>Updating the blog's theming to use new CSS techniques, avoiding flash-of-unstyled-content, and handling OS-level dark\/light preferences. <\/p><a href=\"https:\/\/fdp.io\/blog\/2024-09-06-css-theming-in-2024\">Read more<\/a>","date_published":"2024-09-06T01:16:59.701Z"},{"id":"2024-09-02-under-major-construction","title":"Under Major Construction","url":"https:\/\/fdp.io\/blog\/2024-09-02-under-major-construction","content_html":"<p>This site is currently under major construction. I'm modernizing and touching up everything in the toolchain, while maintaining all legacy links and features.\n<\/p><a href=\"https:\/\/fdp.io\/blog\/2024-09-02-under-major-construction\">Read more<\/a>","date_published":"2024-09-02T17:32:00.509Z"},{"id":"2020-07-01-2020-what-a-year","title":"2020 - What A Year","url":"https:\/\/fdp.io\/blog\/2020-07-01-2020-what-a-year","content_html":"<p>We are officially halfway through 2020 and boy has it been a wild ride.<\/p><a href=\"https:\/\/fdp.io\/blog\/2020-07-01-2020-what-a-year\">Read more<\/a>","date_published":"2020-07-01T14:00:00.000Z"},{"id":"2020-01-21-show-me-what-you-got","title":"Show Me What You Got","url":"https:\/\/fdp.io\/blog\/2020-01-21-show-me-what-you-got","content_html":"<p>See the hardware and software I use daily<\/p><a href=\"https:\/\/fdp.io\/blog\/2020-01-21-show-me-what-you-got\">Read more<\/a>","date_published":"2020-01-21T11:12:00.000Z"},{"id":"2018-04-14-50-things-that-made-the-modern-economy","title":"50 Things That Made the Modern Economy","url":"https:\/\/fdp.io\/blog\/2018-04-14-50-things-that-made-the-modern-economy","content_html":"<p>An interesting podcast I liked about how the modern economy came to be.<\/p><a href=\"https:\/\/fdp.io\/blog\/2018-04-14-50-things-that-made-the-modern-economy\">Read more<\/a>","date_published":"2018-04-14T18:00:00.000Z"},{"id":"2018-03-22-supporting-compactmap-in-swift-4","title":"Supporting compactMap in Swift 4","url":"https:\/\/fdp.io\/blog\/2018-03-22-supporting-compactmap-in-swift-4","content_html":"<p>Define an extension on <code>Sequence<\/code> to make <code>compactMap<\/code> backwards compatible.<\/p><a href=\"https:\/\/fdp.io\/blog\/2018-03-22-supporting-compactmap-in-swift-4\">Read more<\/a>","date_published":"2018-03-22T19:50:00.000Z"},{"id":"2018-03-18-active-compilation-conditions-for-xcode","title":"Active Compilation Conditions for Xcode","url":"https:\/\/fdp.io\/blog\/2018-03-18-active-compilation-conditions-for-xcode","content_html":"<p>Pass flags to your iOS App without prepending <kbd>-D<\/kbd><\/p><a href=\"https:\/\/fdp.io\/blog\/2018-03-18-active-compilation-conditions-for-xcode\">Read more<\/a>","date_published":"2018-03-18T19:30:00.000Z"},{"id":"2018-03-11-the-comment-comeback","title":"The Comment Comeback","url":"https:\/\/fdp.io\/blog\/2018-03-11-the-comment-comeback","content_html":"<p>Adding comments via utteranc.es<\/p><a href=\"https:\/\/fdp.io\/blog\/2018-03-11-the-comment-comeback\">Read more<\/a>","date_published":"2018-03-11T12:18:00.000Z"},{"id":"2018-01-18-setting-up-absolute-paths-in-create-react-app","title":"Setting Up Absolute Paths in create-react-app","url":"https:\/\/fdp.io\/blog\/2018-01-18-setting-up-absolute-paths-in-create-react-app","content_html":"<p>Avoid using relative imports via <code>import {} from '..\/..\/..\/components<\/code> with CRA.<\/p><a href=\"https:\/\/fdp.io\/blog\/2018-01-18-setting-up-absolute-paths-in-create-react-app\">Read more<\/a>","date_published":"2018-01-18T00:00:00.000Z"},{"id":"2017-05-29-release-alfred-pods-workflow","title":"Release: Alfred Pods Workflow","url":"https:\/\/fdp.io\/blog\/2017-05-29-release-alfred-pods-workflow","content_html":"<p>Search CocoaPods and copy <code>pod 'Pod'<\/code> to your clipboard with Alfred<\/p><a href=\"https:\/\/fdp.io\/blog\/2017-05-29-release-alfred-pods-workflow\">Read more<\/a>","date_published":"2017-05-29T14:30:00.000Z"},{"id":"2017-03-22-persisting-last-visited-url-in-android-webview","title":"Persisting the Last Visited URL in an Android WebView","url":"https:\/\/fdp.io\/blog\/2017-03-22-persisting-last-visited-url-in-android-webview","content_html":"<p>Where I use Kotlin to load the last visited URL<\/p><a href=\"https:\/\/fdp.io\/blog\/2017-03-22-persisting-last-visited-url-in-android-webview\">Read more<\/a>","date_published":"2017-03-22T16:20:00.000Z"},{"id":"2017-03-12-using-citext-with-knex-js","title":"Using CITEXT With Knex.js","url":"https:\/\/fdp.io\/blog\/2017-03-12-using-citext-with-knex-js","content_html":"<p>Using the CITEXT PostgreSQL data type with Knex.js<\/p><a href=\"https:\/\/fdp.io\/blog\/2017-03-12-using-citext-with-knex-js\">Read more<\/a>","date_published":"2017-03-12T17:00:00.000Z"},{"id":"2017-03-04-setup-phoenix-router-with-a-spa","title":"Setup Phoenix Router with a Single Page App","url":"https:\/\/fdp.io\/blog\/2017-03-04-setup-phoenix-router-with-a-spa","content_html":"<p>Allow SPA routers to handle your frontend routes.<\/p><a href=\"https:\/\/fdp.io\/blog\/2017-03-04-setup-phoenix-router-with-a-spa\">Read more<\/a>","date_published":"2017-03-04T20:19:00.000Z"},{"id":"2016-12-25-atom-plugins-for-elm","title":"Atom Plugins for Elm","url":"https:\/\/fdp.io\/blog\/2016-12-25-atom-plugins-for-elm","content_html":"<p>I've gotten back into using Elm for a pet project of mine. Here are some of the plugins I found most useful for Atom.<\/p><a href=\"https:\/\/fdp.io\/blog\/2016-12-25-atom-plugins-for-elm\">Read more<\/a>","date_published":"2016-12-25T00:00:00.000Z"},{"id":"2016-11-21-es6-using-set-for-unique-arrays","title":"ES6: Using Set For Unique Arrays","url":"https:\/\/fdp.io\/blog\/2016-11-21-es6-using-set-for-unique-arrays","content_html":"<p>A quick way to get an array of unique values<\/p><a href=\"https:\/\/fdp.io\/blog\/2016-11-21-es6-using-set-for-unique-arrays\">Read more<\/a>","date_published":"2016-11-21T00:00:00.000Z"},{"id":"2016-11-20-adding-a-user-to-an-existing-gpg-key","title":"Adding A User To An Existing GPG key","url":"https:\/\/fdp.io\/blog\/2016-11-20-adding-a-user-to-an-existing-gpg-key","content_html":"<p>Where I fix commits that were signed but unverified in Github.<\/p><a href=\"https:\/\/fdp.io\/blog\/2016-11-20-adding-a-user-to-an-existing-gpg-key\">Read more<\/a>","date_published":"2016-11-20T00:00:00.000Z"},{"id":"2016-11-08-theming-via-css-properties","title":"Theming Via CSS Properties","url":"https:\/\/fdp.io\/blog\/2016-11-08-theming-via-css-properties","content_html":"<p>Where I talk about adding a new feature to my blog where you can switch between a Night and Day theme.<\/p><a href=\"https:\/\/fdp.io\/blog\/2016-11-08-theming-via-css-properties\">Read more<\/a>","date_published":"2016-11-08T00:00:00.000Z"},{"id":"2016-10-13-fix-nokogiri-v1-6-8-1-installation-failure-on-macos-sierra","title":"Fix Nokogiri v1.6.8.1 Installation Failure on macOS Sierra","url":"https:\/\/fdp.io\/blog\/2016-10-13-fix-nokogiri-v1-6-8-1-installation-failure-on-macos-sierra","content_html":"<p>A fix for nokogiri 1.6.8.1 on macOS Sierra by updating libxml2<\/p><a href=\"https:\/\/fdp.io\/blog\/2016-10-13-fix-nokogiri-v1-6-8-1-installation-failure-on-macos-sierra\">Read more<\/a>","date_published":"2016-10-13T00:00:00.000Z"},{"id":"2016-09-21-macos-sierra-hang-on-react-native-init","title":"macOS Sierra: Hang on React Native Init","url":"https:\/\/fdp.io\/blog\/2016-09-21-macos-sierra-hang-on-react-native-init","content_html":"<p>A fix for hangs that occur on <code>react-native init<\/code> on macOS Sierra.<\/p><a href=\"https:\/\/fdp.io\/blog\/2016-09-21-macos-sierra-hang-on-react-native-init\">Read more<\/a>","date_published":"2016-09-21T00:00:00.000Z"},{"id":"2016-09-02-migration-to-jekyll","title":"Migration to Jekyll","url":"https:\/\/fdp.io\/blog\/2016-09-02-migration-to-jekyll","content_html":"<p>My experience transitioning from Octopress 2.0 to Jekyll 3<\/p><a href=\"https:\/\/fdp.io\/blog\/2016-09-02-migration-to-jekyll\">Read more<\/a>","date_published":"2016-09-02T00:00:00.000Z"},{"id":"2013-09-15-rails-4-easily-add-reference-to-migration","title":"Rails 4: Easily Add Reference to Migration","url":"https:\/\/fdp.io\/blog\/2013-09-15-rails-4-easily-add-reference-to-migration","content_html":"<p>A look into Rails 4's <code>add_reference<\/code><\/p><a href=\"https:\/\/fdp.io\/blog\/2013-09-15-rails-4-easily-add-reference-to-migration\">Read more<\/a>","date_published":"2013-09-15T19:29:00.000Z"},{"id":"2013-09-01-how-to-view-open-connections-on-files","title":"How to view open connections on files","url":"https:\/\/fdp.io\/blog\/2013-09-01-how-to-view-open-connections-on-files","content_html":"<p>Use <code>lsof<\/code> to learn what your processes use behind the scenes<\/p><a href=\"https:\/\/fdp.io\/blog\/2013-09-01-how-to-view-open-connections-on-files\">Read more<\/a>","date_published":"2013-09-01T20:01:00.000Z"},{"id":"2013-08-04-make-iterm-2-work-with-mac-osx-movement-keyboard-shortcuts","title":"Make iTerm 2 work with Mac OSX movement keyboard shortcuts","url":"https:\/\/fdp.io\/blog\/2013-08-04-make-iterm-2-work-with-mac-osx-movement-keyboard-shortcuts","content_html":"<p>Add support to iTerm2 for &#8997; and &#8984; modifiers to move between words<\/p><a href=\"https:\/\/fdp.io\/blog\/2013-08-04-make-iterm-2-work-with-mac-osx-movement-keyboard-shortcuts\">Read more<\/a>","date_published":"2013-08-04T12:17:00.000Z"},{"id":"2013-07-06-devops-for-ruby-part-2-using-nginx-to-host-rails-applications","title":"DevOps for Ruby Part 2 - Using Nginx to Host Rails Applications","url":"https:\/\/fdp.io\/blog\/2013-07-06-devops-for-ruby-part-2-using-nginx-to-host-rails-applications","content_html":"<p>Continue setting up Rails to use Nginx on a VPS<\/p><a href=\"https:\/\/fdp.io\/blog\/2013-07-06-devops-for-ruby-part-2-using-nginx-to-host-rails-applications\">Read more<\/a>","date_published":"2013-07-06T19:26:00.000Z"},{"id":"2013-06-23-devops-for-ruby-part-1-vps-and-ubuntu-installation","title":"DevOps for Ruby Part 1: VPS & Ubuntu Installation","url":"https:\/\/fdp.io\/blog\/2013-06-23-devops-for-ruby-part-1-vps-and-ubuntu-installation","content_html":"<p>Tutorial on how to move your Rails project to a VPS<\/p><a href=\"https:\/\/fdp.io\/blog\/2013-06-23-devops-for-ruby-part-1-vps-and-ubuntu-installation\">Read more<\/a>","date_published":"2013-06-23T21:53:00.000Z"},{"id":"2013-05-23-setup-postgresql-for-rails-on-a-mac","title":"Setup PostgreSQL for Rails on a Mac","url":"https:\/\/fdp.io\/blog\/2013-05-23-setup-postgresql-for-rails-on-a-mac","content_html":"<p>Learn how to setup PostgreSQL on a Mac via CLI or an application<\/p><a href=\"https:\/\/fdp.io\/blog\/2013-05-23-setup-postgresql-for-rails-on-a-mac\">Read more<\/a>","date_published":"2013-05-23T14:57:00.000Z"},{"id":"2013-04-26-venture-into-tmux","title":"Venture into tmux","url":"https:\/\/fdp.io\/blog\/2013-04-26-venture-into-tmux","content_html":"<p>A look into how to install and use tmux<\/p><a href=\"https:\/\/fdp.io\/blog\/2013-04-26-venture-into-tmux\">Read more<\/a>","date_published":"2013-05-06T09:00:00.000Z"},{"id":"2013-04-12-extremely-useful-git-commands","title":"Amending git commits","url":"https:\/\/fdp.io\/blog\/2013-04-12-extremely-useful-git-commands","content_html":"<p>Learn how to amend your git commits with a simple fix<\/p><a href=\"https:\/\/fdp.io\/blog\/2013-04-12-extremely-useful-git-commands\">Read more<\/a>","date_published":"2013-04-12T08:11:00.000Z"}]}