<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Evan Tahler</title>
        <link>https://www.evantahler.com/</link>
        <description>Evan Tahler — software engineer, leader, writer. Head of Engineering at Arcade.dev, creator of Actionhero, Keryx, and more.</description>
        <lastBuildDate>Fri, 01 May 2026 08:18:12 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>Evan Tahler</title>
            <url>https://www.evantahler.com/images/dog.png</url>
            <link>https://www.evantahler.com/</link>
        </image>
        <copyright>Copyright © 2026 Evan Tahler</copyright>
        <atom:link href="https://www.evantahler.com/feed.xml" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[Building Software for Humans and Agents]]></title>
            <link>https://www.evantahler.com/blog/post/2026-05-01-software-for-humans-and-agents</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2026-05-01-software-for-humans-and-agents</guid>
            <pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[I've been building a library and a framework in parallel, and the same design constraint keeps showing up in both: every piece of software now has two audiences, humans and agents. Here's what that changes — for libraries, and for frameworks.]]></description>
            <author>Evan Tahler</author>
            <category>engineering</category>
            <category>typescript</category>
            <category>ai</category>
            <category>open-source</category>
            <enclosure url="https://www.evantahler.com/images/posts/2026-05-01-software-for-humans-and-agents/image.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Announcing Keryx: A Full-Stack TypeScript Framework for APIs and MCP Servers]]></title>
            <link>https://www.evantahler.com/blog/post/2026-03-13-announcing-keryx</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2026-03-13-announcing-keryx</guid>
            <pubDate>Fri, 13 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[After 14 years of building Actionhero, I built a new framework from scratch. Keryx lets you write one Action class and deploy it across HTTP, WebSocket, CLI, background tasks, and MCP — all with the same validation and middleware.]]></description>
            <author>Evan Tahler</author>
            <category>engineering</category>
            <category>typescript</category>
            <category>node.js</category>
            <category>ai</category>
            <category>open-source</category>
            <enclosure url="https://www.evantahler.com/images/posts/2026-03-13-announcing-keryx/image.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[curl for MCP: Why Coding Agents Are Happier Using the CLI]]></title>
            <link>https://www.evantahler.com/blog/post/2026-03-13-curl-for-mcp</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2026-03-13-curl-for-mcp</guid>
            <pubDate>Fri, 13 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[We're building increasingly complex integrations to connect coding agents to MCP servers. But these agents already know how to use the CLI. So why are we teaching them a new interface?]]></description>
            <author>Evan Tahler</author>
            <category>engineering</category>
            <category>ai</category>
            <enclosure url="https://www.evantahler.com/images/posts/2026-03-13-curl-for-mcp/image1.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Designing SQL Tools for AI Agents]]></title>
            <link>https://www.evantahler.com/blog/post/2025-07-23-designing-sql-tools-for-ai-agents</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2025-07-23-designing-sql-tools-for-ai-agents</guid>
            <pubDate>Wed, 23 Jul 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Build production SQL tools for LLM agents with proper auth, least-privilege access, and injection protection. PostgreSQL examples included.]]></description>
            <author>Evan Tahler</author>
            <category>engineering</category>
            <category>ai</category>
            <enclosure url="https://www.evantahler.com/images/posts/2025-07-23-designing-sql-tools-for-ai-agents/additional-workflow.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[The Components of an AI Context Pipeline]]></title>
            <link>https://www.evantahler.com/blog/post/2025-01-15-the-components-of-an-ai-data-pipeline</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2025-01-15-the-components-of-an-ai-data-pipeline</guid>
            <pubDate>Wed, 15 Jan 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[The ELT/ETL for AI]]></description>
            <author>Evan Tahler</author>
            <category>engineering</category>
            <category>airbyte</category>
            <category>data-engineering</category>
            <category>ai</category>
            <enclosure url="https://www.evantahler.com/images/posts/2025-01-15-the-components-of-an-ai-data-pipeline/image-1.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Permissions for AI Use Cases]]></title>
            <link>https://www.evantahler.com/blog/post/2025-01-14-permissions-for-ai-use-cases</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2025-01-14-permissions-for-ai-use-cases</guid>
            <pubDate>Tue, 14 Jan 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[AI can see too much if you aren't careful]]></description>
            <author>Evan Tahler</author>
            <category>engineering</category>
            <category>airbyte</category>
            <category>data-engineering</category>
            <category>ai</category>
            <enclosure url="https://www.evantahler.com/images/posts/2025-01-14-permissions-for-ai-use-cases/image-1.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Choose a Database with Hybrid Vector Search for your AI Applications]]></title>
            <link>https://www.evantahler.com/blog/post/2024-10-31-choose-a-database-with-hybrid-vector-search-for-your-ai-applications</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2024-10-31-choose-a-database-with-hybrid-vector-search-for-your-ai-applications</guid>
            <pubDate>Thu, 31 Oct 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[RAG needs a database]]></description>
            <author>Evan Tahler</author>
            <category>engineering</category>
            <category>airbyte</category>
            <category>data-engineering</category>
            <category>ai</category>
            <enclosure url="https://www.evantahler.com/images/posts/2024-10-31-choose-a-database-with-hybrid-vector-search-for-your-ai-applications/image-1.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Cost-Conscious Advanced ELT Strategies for Data Deduplication]]></title>
            <link>https://www.evantahler.com/blog/post/2024-04-17-cost-conscious-elt-strategies</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2024-04-17-cost-conscious-elt-strategies</guid>
            <pubDate>Wed, 17 Apr 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Saving money while moving data]]></description>
            <author>Evan Tahler</author>
            <category>engineering</category>
            <category>airbyte</category>
            <category>data-engineering</category>
            <enclosure url="https://www.evantahler.com/images/posts/2024-04-17-cost-conscious-elt-strategies/image-1.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Announcing Record Change History: Increasing Resilience Against Problematic Rows]]></title>
            <link>https://www.evantahler.com/blog/post/2024-04-04-announcing-record-change-history</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2024-04-04-announcing-record-change-history</guid>
            <pubDate>Thu, 04 Apr 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Don't stop syncing just because your data is bad.]]></description>
            <author>Evan Tahler</author>
            <category>engineering</category>
            <category>airbyte</category>
            <category>data-engineering</category>
            <enclosure url="https://www.evantahler.com/images/posts/2024-04-04-announcing-record-change-history/image-1.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Introducing Airbyte Destinations V2 - Typing & Deduping]]></title>
            <link>https://www.evantahler.com/blog/post/2023-08-29-introducing-airbyte-destinations-v2</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2023-08-29-introducing-airbyte-destinations-v2</guid>
            <pubDate>Tue, 29 Aug 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Making Database destinations faster better, and stronger]]></description>
            <author>Evan Tahler</author>
            <category>engineering</category>
            <category>airbyte</category>
            <category>data-engineering</category>
            <enclosure url="https://www.evantahler.com/images/posts/2023-08-29-introducing-airbyte-destinations-v2/image-1.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Airbyte Checkpointing: Ensuring Uninterrupted Data Syncs]]></title>
            <link>https://www.evantahler.com/blog/post/2023-06-01-airbyte-checkpointing</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2023-06-01-airbyte-checkpointing</guid>
            <pubDate>Thu, 01 Jun 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Airbyte Checkpointing: Ensuring Uninterrupted Data Syncs]]></description>
            <author>Evan Tahler</author>
            <category>engineering</category>
            <category>airbyte</category>
            <category>data-engineering</category>
            <enclosure url="https://www.evantahler.com/images/posts/2023-06-01-airbyte-checkpointing/image.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Upgrading our Community Pull Requests Experience]]></title>
            <link>https://www.evantahler.com/blog/post/2023-04-28-upgrading-community-prs</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2023-04-28-upgrading-community-prs</guid>
            <pubDate>Fri, 28 Apr 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Getting the Airbyte Community involved]]></description>
            <author>Evan Tahler</author>
            <category>engineering</category>
            <category>airbyte</category>
            <enclosure url="https://www.evantahler.com/images/posts/2023-04-28-upgrading-community-prs/image.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Accelerating Alpha Connectors to Airbyte Cloud: 57 New Connectors Ready For Takeoff]]></title>
            <link>https://www.evantahler.com/blog/post/2023-03-01-accelerating-alpha-connectors-to-airbyte-cloud</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2023-03-01-accelerating-alpha-connectors-to-airbyte-cloud</guid>
            <pubDate>Wed, 01 Mar 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Releasing 57 Connectors to Airbyte Cloud]]></description>
            <author>Evan Tahler</author>
            <category>engineering</category>
            <category>airbyte</category>
            <enclosure url="https://www.evantahler.com/images/posts/2023-03-01-accelerating-alpha-connectors-to-airbyte-cloud/image.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[The Road to GA: Understanding Airbyte Connector Release Stages]]></title>
            <link>https://www.evantahler.com/blog/post/2023-01-19-airbyte-connector-release-stages</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2023-01-19-airbyte-connector-release-stages</guid>
            <pubDate>Thu, 19 Jan 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Airbyte Connector Release Stages]]></description>
            <author>Evan Tahler</author>
            <category>engineering</category>
            <category>airbyte</category>
            <enclosure url="https://www.evantahler.com/images/posts/2023-01-19-airbyte-connector-release-stages/image.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Architecture Notes: 2022 CFT]]></title>
            <link>https://www.evantahler.com/blog/post/2023-01-03-architecture-notes-2022-ctf</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2023-01-03-architecture-notes-2022-ctf</guid>
            <pubDate>Tue, 03 Jan 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[How I solved the Architecture Notes 2022 Capture the Flag Puzzles]]></description>
            <author>Evan Tahler</author>
            <category>engineering</category>
            <enclosure url="https://www.evantahler.com/images/posts/2023-01-03-architecture-notes-2022-ctf/ctf.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[How to Build Software Products Faster by Thinking Like a Data Engineer]]></title>
            <link>https://www.evantahler.com/blog/post/2022-12-19-build-software-products-faster-by-thinking-like-a-data-engineer</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2022-12-19-build-software-products-faster-by-thinking-like-a-data-engineer</guid>
            <pubDate>Mon, 19 Dec 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Things I learned at Airbyte]]></description>
            <author>Evan Tahler</author>
            <category>airbyte</category>
            <category>engineering</category>
            <enclosure url="https://www.evantahler.com/images/posts/2022-12-19-build-software-products-faster-by-thinking-like-a-data-engineer/image.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[TypeScript Types from Class Properties]]></title>
            <link>https://www.evantahler.com/blog/post/2022-01-06-typescript-types-from-class-properties</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2022-01-06-typescript-types-from-class-properties</guid>
            <pubDate>Thu, 06 Jan 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Use TypeScript to compute types from complex Objects]]></description>
            <author>Evan Tahler</author>
            <category>grouparoo</category>
            <category>actionhero</category>
            <category>node.js</category>
            <category>typescript</category>
            <category>engineering</category>
            <enclosure url="https://www.evantahler.com/images/posts/2022-01-06-typescript-types-from-class-properties/220106-ts-types.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Running a Node app on both IPv4 and IPv6]]></title>
            <link>https://www.evantahler.com/blog/post/2021-08-16-node-js-and-ipv6</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2021-08-16-node-js-and-ipv6</guid>
            <pubDate>Mon, 16 Aug 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[Grouparoo can speak IPv4 and IPv6 - Here's how we did it.]]></description>
            <author>Evan Tahler</author>
            <category>engineering</category>
            <category>grouparoo</category>
            <category>node.js</category>
            <enclosure url="https://www.evantahler.com/images/posts/2021-08-16-node-js-and-ipv6/sylvain-gllm-X4dBqRUzO2U-unsplash.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Heroku Slack Notifications]]></title>
            <link>https://www.evantahler.com/blog/post/2021-06-11-heroku-slack-notifications</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2021-06-11-heroku-slack-notifications</guid>
            <pubDate>Fri, 11 Jun 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[Get a Slack notification when your Heroku App Deploys!]]></description>
            <author>Evan Tahler</author>
            <category>devops</category>
            <category>grouparoo</category>
            <category>voom</category>
            <enclosure url="https://www.evantahler.com/images/posts/2021-06-11-heroku-slack-notifications/slack.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Bundle and Distribute Next.js Sites via NPM]]></title>
            <link>https://www.evantahler.com/blog/post/2021-06-03-distributing-nextjs-via-npm</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2021-06-03-distributing-nextjs-via-npm</guid>
            <pubDate>Thu, 03 Jun 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[Or, how to make your NPM packages 300mb smaller with this one strange trick!]]></description>
            <author>Evan Tahler</author>
            <category>engineering</category>
            <category>grouparoo</category>
            <category>frontend</category>
            <category>node.js</category>
            <enclosure url="https://www.evantahler.com/images/posts/2021-06-03-distributing-nextjs-via-npm/210603-npm-nextjs.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Why are database columns 191 characters?]]></title>
            <link>https://www.evantahler.com/blog/post/2021-05-14-varchar-191</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2021-05-14-varchar-191</guid>
            <pubDate>Fri, 14 May 2021 00:00:00 GMT</pubDate>
            <author>Evan Tahler</author>
            <category>engineering</category>
            <category>grouparoo</category>
            <enclosure url="https://www.evantahler.com/images/posts/2021-05-14-varchar-191/210515-varchar191.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Don't Do Background Jobs on Google Cloud Run]]></title>
            <link>https://www.evantahler.com/blog/post/2021-04-13-google-cloud-run-no-background-job</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2021-04-13-google-cloud-run-no-background-job</guid>
            <pubDate>Tue, 13 Apr 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[Google Cloud Run is a great platform as a service, but not for background jobs]]></description>
            <author>Evan Tahler</author>
            <category>engineering</category>
            <category>grouparoo</category>
        </item>
        <item>
            <title><![CDATA[Don’t use Underscores in your HTTP Headers ]]></title>
            <link>https://www.evantahler.com/blog/post/2021-03-17-dont-use-underscores-in-http-headers</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2021-03-17-dont-use-underscores-in-http-headers</guid>
            <pubDate>Wed, 17 Mar 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[Don't use underscores in your HTTP headers... at least according to AWS and Nginx!]]></description>
            <author>Evan Tahler</author>
            <category>engineering</category>
            <category>grouparoo</category>
            <enclosure url="https://www.evantahler.com/images/posts/2021-03-17-dont-use-underscores-in-http-headers/header.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[SQL Dialect differences in Sequelize]]></title>
            <link>https://www.evantahler.com/blog/post/2021-03-04-sql-dialect-differences</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2021-03-04-sql-dialect-differences</guid>
            <pubDate>Thu, 04 Mar 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[Grouparoo works with both SQLite and Postgres databases.  This post shares what we've learned about the differences.]]></description>
            <author>Evan Tahler</author>
            <category>grouparoo</category>
            <category>node.js</category>
            <category>typescript</category>
            <category>engineering</category>
            <enclosure url="https://www.evantahler.com/images/posts/2021-03-04-sql-dialect-differences/210303-databases.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Gifit: Turn Screen Recordings into GIFs]]></title>
            <link>https://www.evantahler.com/blog/post/2021-02-12-gifit</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2021-02-12-gifit</guid>
            <pubDate>Fri, 12 Feb 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[With open source tools, you can easily share and embed your screen recordings]]></description>
            <author>Evan Tahler</author>
            <category>engineering</category>
            <category>grouparoo</category>
            <enclosure url="https://www.evantahler.com/images/posts/2021-02-12-gifit/screenshot.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Defer Transaction Side-Effects in Node.js]]></title>
            <link>https://www.evantahler.com/blog/post/2021-01-21-defering-side-effects-in-node</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2021-01-21-defering-side-effects-in-node</guid>
            <pubDate>Thu, 21 Jan 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[Using AsyncHooks, you can collect side-effects within a database transaction and only run them if the transaction succeeds]]></description>
            <author>Evan Tahler</author>
            <category>grouparoo</category>
            <category>node.js</category>
            <category>typescript</category>
            <category>engineering</category>
            <enclosure url="https://www.evantahler.com/images/posts/2021-01-21-defering-side-effects-in-node/laptop.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Developing Grouparoo on macOS Big Sur]]></title>
            <link>https://www.evantahler.com/blog/post/2020-11-13-developing-grouparoo-on-macos-big-sur</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2020-11-13-developing-grouparoo-on-macos-big-sur</guid>
            <pubDate>Fri, 13 Nov 2020 00:00:00 GMT</pubDate>
            <description><![CDATA[Learn how to run a Typescript app on macOS Big Sur. Find out more.]]></description>
            <author>Evan Tahler</author>
            <category>grouparoo</category>
            <category>engineering</category>
            <enclosure url="https://www.evantahler.com/images/posts/2020-11-13-developing-grouparoo-on-macos-big-sur/big-sur.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Fullstack Typescript - Create an API]]></title>
            <link>https://www.evantahler.com/blog/post/2020-10-16-typescript-frontend-backend</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2020-10-16-typescript-frontend-backend</guid>
            <pubDate>Fri, 16 Oct 2020 00:00:00 GMT</pubDate>
            <description><![CDATA[Use Typescript to more tightly couple your React apps to your API]]></description>
            <author>Evan Tahler</author>
            <category>grouparoo</category>
            <category>node.js</category>
            <category>frontend</category>
            <category>typescript</category>
            <category>engineering</category>
            <enclosure url="https://www.evantahler.com/images/posts/2020-10-16-typescript-frontend-backend/keyboard.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Save your High Water Marks as Strings]]></title>
            <link>https://www.evantahler.com/blog/post/2020-09-14-save-your-high-water-marks-as-strings</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2020-09-14-save-your-high-water-marks-as-strings</guid>
            <pubDate>Mon, 14 Sep 2020 00:00:00 GMT</pubDate>
            <description><![CDATA[Asking the database to return the High Water Mark as a string prevents a number of bugs.]]></description>
            <author>Evan Tahler</author>
            <category>engineering</category>
            <category>grouparoo</category>
            <enclosure url="https://www.evantahler.com/images/posts/2020-09-14-save-your-high-water-marks-as-strings/database.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Sharing Code in Next.JS Apps with Plugins]]></title>
            <link>https://www.evantahler.com/blog/post/2020-07-23-nextjs-plugins</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2020-07-23-nextjs-plugins</guid>
            <pubDate>Thu, 23 Jul 2020 00:00:00 GMT</pubDate>
            <description><![CDATA[How does Grouparoo use Next.js to load pages and components from plugins to modify our web user interface?]]></description>
            <author>Evan Tahler</author>
            <category>grouparoo</category>
            <category>node.js</category>
            <category>frontend</category>
            <category>engineering</category>
            <enclosure url="https://www.evantahler.com/images/posts/2020-07-23-nextjs-plugins/computer-and-fern.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Pull the Data you Actually Want]]></title>
            <link>https://www.evantahler.com/blog/post/2020-05-22-pull-the-data-you-actually-want</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2020-05-22-pull-the-data-you-actually-want</guid>
            <pubDate>Fri, 22 May 2020 00:00:00 GMT</pubDate>
            <description><![CDATA[Streaming event data becomes costly and less useful over time. Reverse ETL solves these problems.]]></description>
            <author>Evan Tahler</author>
            <category>grouparoo</category>
            <category>engineering</category>
            <enclosure url="https://www.evantahler.com/images/posts/2020-05-22-pull-the-data-you-actually-want/doughnuts.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Continuous Deployment for NPM Packages]]></title>
            <link>https://www.evantahler.com/blog/post/2020-05-07-grouparoo-monorepo-deployment</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2020-05-07-grouparoo-monorepo-deployment</guid>
            <pubDate>Thu, 07 May 2020 00:00:00 GMT</pubDate>
            <description><![CDATA[Grouparoo leverages the Node.js and NPM ecosystems to manage distribution to our customers. Our open-source software is distributed via the public via NPM]]></description>
            <author>Evan Tahler</author>
            <category>grouparoo</category>
            <category>node.js</category>
            <category>typescript</category>
            <enclosure url="https://www.evantahler.com/images/posts/2020-05-07-grouparoo-monorepo-deployment/grouparoo-release-process.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[2020 Actionhero Developer Survey Results]]></title>
            <link>https://www.evantahler.com/blog/post/2020-03-01-actionhero-developer-survey-results</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2020-03-01-actionhero-developer-survey-results</guid>
            <pubDate>Sun, 01 Mar 2020 17:53:57 GMT</pubDate>
            <description><![CDATA[Thank you to everyone who took out 2020 developer survey — Here are the results. Also, the launch of Actionhero Office Hours!]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>engineering</category>
            <category>javascript</category>
            <category>node.js</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__xttMYnX__HSXA2VFjXiS__Tw.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Production Node Applications with Docker — 3 DevOps Tips for Shutting Down Properly]]></title>
            <link>https://www.evantahler.com/blog/post/2020-02-18-production-node-applications-with-docker</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2020-02-18-production-node-applications-with-docker</guid>
            <pubDate>Tue, 18 Feb 2020 04:11:19 GMT</pubDate>
            <description><![CDATA[Tips and tricks to shut down your docker applications properly.  No more lost data!]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>engineering</category>
            <category>javascript</category>
            <category>node.js</category>
            <category>devops</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__lOqD__NHM7gQY9Ax9TF4wZg.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Proxying free Heroku Dynos though Cloudflare to a custom domain]]></title>
            <link>https://www.evantahler.com/blog/post/2019-12-30-proxying-free-heroku-dynos-though-cloudflare-to-a-custom-domain</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2019-12-30-proxying-free-heroku-dynos-though-cloudflare-to-a-custom-domain</guid>
            <pubDate>Mon, 30 Dec 2019 16:59:31 GMT</pubDate>
            <description><![CDATA[The Actionhero project runs a number of websites for the community — documentation, sample apps, etc. We often rely on Heroku’s free…]]></description>
            <author>Evan Tahler</author>
            <category>devops</category>
            <category>javascript</category>
            <category>frontend</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__uL59CYZ1RV31uze3vgG2wQ.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Markdown in React and Custom Page Elements]]></title>
            <link>https://www.evantahler.com/blog/post/2019-12-02-markdown-in-react-and-custom-page-elements</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2019-12-02-markdown-in-react-and-custom-page-elements</guid>
            <pubDate>Mon, 02 Dec 2019 00:54:12 GMT</pubDate>
            <description><![CDATA[I recently moved the Actionhero tutorials from the Actionhero Docs site docs.actionherojs.com to the main Actionhero website…]]></description>
            <author>Evan Tahler</author>
            <category>frontend</category>
            <category>actionhero</category>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__iW7bsn__oLc__LD9HWaD__xbw.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Actions, Tasks, and Destructured Params- The Illustrated Actionhero Community QA]]></title>
            <link>https://www.evantahler.com/blog/post/2019-10-21-actions-tasks-and-destructured-params</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2019-10-21-actions-tasks-and-destructured-params</guid>
            <pubDate>Mon, 21 Oct 2019 16:23:42 GMT</pubDate>
            <description><![CDATA[Welcome to the fourth installment of The Illustrated Actionhero Community Q&A!]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>javascript</category>
            <category>node.js</category>
            <category>typescript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__phVzjPGTY__ky66bFEsDnEw.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Github Sponsorship]]></title>
            <link>https://www.evantahler.com/blog/post/2019-10-19-github-sponsorship</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2019-10-19-github-sponsorship</guid>
            <pubDate>Sat, 19 Oct 2019 00:51:03 GMT</pubDate>
            <description><![CDATA[My dream of working on Actionhero full time]]></description>
            <author>Evan Tahler</author>
            <category>open-source</category>
            <category>actionhero</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__CrF__V9wBPsZJBFMzr69gQA.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Online and Offline Sync — The Illustrated Actionhero Community Q&A]]></title>
            <link>https://www.evantahler.com/blog/post/2019-10-15-online-offline-sync</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2019-10-15-online-offline-sync</guid>
            <pubDate>Tue, 15 Oct 2019 16:57:43 GMT</pubDate>
            <description><![CDATA[Welcome to the third installment of The Illustrated Actionhero Community Q&A!]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>node.js</category>
            <category>javascript</category>
            <category>typescript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__G93TtL608iyLjBzns6aWyA.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Failing a Task —  The Illustrated Actionhero Community Q&A]]></title>
            <link>https://www.evantahler.com/blog/post/2019-10-07-failing-a-task</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2019-10-07-failing-a-task</guid>
            <pubDate>Mon, 07 Oct 2019 15:28:44 GMT</pubDate>
            <description><![CDATA[Welcome to the second installment of The Illustrated Actionhero Community Q&A!]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>node.js</category>
            <category>javascript</category>
            <category>typescript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__KMPhTzPQSR1js3sK__FZebw.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Actionhero for Real-time Games — The Illustrated Actionhero Community Q&A]]></title>
            <link>https://www.evantahler.com/blog/post/2019-09-30-actionhero-for-real-time-games</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2019-09-30-actionhero-for-real-time-games</guid>
            <pubDate>Mon, 30 Sep 2019 17:30:35 GMT</pubDate>
            <description><![CDATA[Introducing to the Actionhero Illustrated Community Q&A!]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>node.js</category>
            <category>javascript</category>
            <category>typescript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__fpDBDrYAMXpsSd7Ooykw6A.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Using Next.JS to build Static Dynamic Websites… and never pay for font-end hosting again!]]></title>
            <link>https://www.evantahler.com/blog/post/2019-09-13-using-next-js-for-static-sites</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2019-09-13-using-next-js-for-static-sites</guid>
            <pubDate>Fri, 13 Sep 2019 17:22:55 GMT</pubDate>
            <description><![CDATA[Use tools like Circle.Ci, Github, and Next.JS to host production-grade websites for free!]]></description>
            <author>Evan Tahler</author>
            <category>frontend</category>
            <category>javascript</category>
            <category>node.js</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__SWbmOATNSu__AnPWW__DKeLw.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Keep that VPN Connected (MacOS)]]></title>
            <link>https://www.evantahler.com/blog/post/2019-08-09-keep-that-vpn-connected-on-osx</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2019-08-09-keep-that-vpn-connected-on-osx</guid>
            <pubDate>Fri, 09 Aug 2019 21:15:40 GMT</pubDate>
            <description><![CDATA[I recently found myself traveling regularly, and I wanted to ensure that no matter when I opened my laptop, that my connection would be…]]></description>
            <author>Evan Tahler</author>
            <category>devops</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__8DMeHvOIF__nDLjL4TYrk9A.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[The Voom Software Engineering Interview Process]]></title>
            <link>https://www.evantahler.com/blog/post/2019-03-02-the-voom-software-engineering-interview-process</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2019-03-02-the-voom-software-engineering-interview-process</guid>
            <pubDate>Thu, 21 Mar 2019 00:03:45 GMT</pubDate>
            <description><![CDATA[Building an inclusive and efficient interview process for a pair-programming team]]></description>
            <author>Evan Tahler</author>
            <category>voom</category>
            <category>engineering</category>
            <category>career</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__9HNP1gUTyhHlUcbJBNYpgg.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Controlling your Magic Painting with your words]]></title>
            <link>https://www.evantahler.com/blog/post/2019-01-08-controlling-your-magic-painting-with-your-words</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2019-01-08-controlling-your-magic-painting-with-your-words</guid>
            <pubDate>Tue, 08 Jan 2019 03:44:49 GMT</pubDate>
            <description><![CDATA[Or, how to control your Meural Canvas with the API and connect it to all the things!]]></description>
            <author>Evan Tahler</author>
            <category>node.js</category>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__yLVPs76k5HvU5iULe45maw.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Repeat Rate: What are you Actually Measuring?]]></title>
            <link>https://www.evantahler.com/blog/post/2018-12-31-repeat-rate</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2018-12-31-repeat-rate</guid>
            <pubDate>Mon, 31 Dec 2018 18:46:35 GMT</pubDate>
            <description><![CDATA[Second-Order Measurements and your Product]]></description>
            <author>Evan Tahler</author>
            <category>product-management</category>
            <category>voom</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__XYGVsmFM9b0lnRDHJHfOyQ.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Data Science vs Analytics]]></title>
            <link>https://www.evantahler.com/blog/post/2018-11-01-data-science-vs-analytics</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2018-11-01-data-science-vs-analytics</guid>
            <pubDate>Thu, 01 Nov 2018 15:32:20 GMT</pubDate>
            <description><![CDATA[Data Science vs Analytics are two related disciplines in most startups. I’ve also heard a number of ways to describe the distinctions…]]></description>
            <author>Evan Tahler</author>
            <category>product-management</category>
            <category>data-engineering</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__1LI9TzwDU1l6IyJFBRcULw.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Tips for Building International Products and Companies]]></title>
            <link>https://www.evantahler.com/blog/post/2018-10-09-tips-for-building-international-products</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2018-10-09-tips-for-building-international-products</guid>
            <pubDate>Tue, 09 Oct 2018 01:07:17 GMT</pubDate>
            <description><![CDATA[Voom is an Airbus subsidiary working to make booking a helicopter as easy as booking a car… while we build out the infrastructure for the…]]></description>
            <author>Evan Tahler</author>
            <category>voom</category>
            <category>product-management</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__kPialmqAJFyZG3FCt1JC__A.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Customizable "Other" Option in Google Forms]]></title>
            <link>https://www.evantahler.com/blog/post/2018-06-22-customizable-other-option-in-google-forms</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2018-06-22-customizable-other-option-in-google-forms</guid>
            <pubDate>Fri, 22 Jun 2018 05:04:10 GMT</pubDate>
            <description><![CDATA[Hi Google!]]></description>
            <author>Evan Tahler</author>
            <category>product-management</category>
            <category>voom</category>
            <category>meta</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__3rOVI36gT6fubqDUaEflhw.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Testing javascript applications with Selenium, Async/Await, and Jest]]></title>
            <link>https://www.evantahler.com/blog/post/2018-03-28-testing-node-apps-with-selenium</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2018-03-28-testing-node-apps-with-selenium</guid>
            <pubDate>Wed, 28 Mar 2018 04:12:10 GMT</pubDate>
            <description><![CDATA[The last time I used Selenium, in 2015, I hated it. It was slow, brittle, and difficult to get working. These days, it can actually be fun!]]></description>
            <author>Evan Tahler</author>
            <category>node.js</category>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__r8lWHbH__mgWkl462lQsYuQ.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Goodbye Scoreboard Guru]]></title>
            <link>https://www.evantahler.com/blog/post/2018-01-04-goodbye-scoreboard-guru</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2018-01-04-goodbye-scoreboard-guru</guid>
            <pubDate>Thu, 04 Jan 2018 05:12:18 GMT</pubDate>
            <description><![CDATA[Feb 1 Scoreboard Guru shuts down]]></description>
            <author>Evan Tahler</author>
            <category>product-management</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__E6ZIx0OxnxDZ6dWw4o10og.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[ActionHero V18: Async/Await]]></title>
            <link>https://www.evantahler.com/blog/post/2017-10-07-actionhero-v18-async-await</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2017-10-07-actionhero-v18-async-await</guid>
            <pubDate>Sat, 07 Oct 2017 21:24:46 GMT</pubDate>
            <description><![CDATA[Today we’ve released ActionHero v18.0.0!]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>javascript</category>
            <category>typescript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__CLNbk1x5u__aC__tfhY5lR__w.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[CloudFlare and Server-Side React: Overzealous Optimization with Auto-Minify]]></title>
            <link>https://www.evantahler.com/blog/post/2017-08-14-cloudflare-and-ssr-react</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2017-08-14-cloudflare-and-ssr-react</guid>
            <pubDate>Mon, 14 Aug 2017 01:05:13 GMT</pubDate>
            <description><![CDATA[I spent a few hours today sorting out why a new React + Next.JS site was working great locally, but when deployed to production I was…]]></description>
            <author>Evan Tahler</author>
            <category>javascript</category>
            <category>frontend</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__a__JQaj2nymx62m1RjVuGFA.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Looking for a new ElasticDump Maintainer. It could be you!]]></title>
            <link>https://www.evantahler.com/blog/post/2017-06-09-elasticdump-maintinaer</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2017-06-09-elasticdump-maintinaer</guid>
            <pubDate>Fri, 09 Jun 2017 01:42:59 GMT</pubDate>
            <description><![CDATA[There often comes a time in an open-source project’s lifecycle when the original maintainer needs to move on. Today, that person is me, and…]]></description>
            <author>Evan Tahler</author>
            <category>javascript</category>
            <category>data-engineering</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__OopZJXTgMJhT1S0pBaGapQ.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Don't be a Jerk - The Open Source License]]></title>
            <link>https://www.evantahler.com/blog/post/2017-04-03-dont-be-a-jerk-oss</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2017-04-03-dont-be-a-jerk-oss</guid>
            <pubDate>Mon, 03 Apr 2017 18:09:02 GMT</pubDate>
            <description><![CDATA[A few years back, I was disappointed that so many open source licenses were opaque and hard to understand. So in 2011 I created a satirical license.]]></description>
            <author>Evan Tahler</author>
            <category>open-source</category>
            <category>career</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__K59NnX6vCMF8__MRPKcvScg.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Scoreboard Guru Initial Release]]></title>
            <link>https://www.evantahler.com/blog/post/2017-03-23-scoreboard-guru-initial-release</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2017-03-23-scoreboard-guru-initial-release</guid>
            <pubDate>Thu, 23 Mar 2017 03:35:46 GMT</pubDate>
            <description><![CDATA[I’m happy to announce the initial release of Scoreboard Guru!]]></description>
            <author>Evan Tahler</author>
            <category>product-management</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__W__ZjnVPX889X__uzE9GXMmg.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Why Choose Actionhero]]></title>
            <link>https://www.evantahler.com/blog/post/2017-02-28-why-choose-actionhero</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2017-02-28-why-choose-actionhero</guid>
            <pubDate>Tue, 28 Feb 2017 00:50:03 GMT</pubDate>
            <description><![CDATA[or: Actionhero is the Node.js server for when your project grows up]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>node.js</category>
            <category>typescript</category>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__FWU1OZyieAZc____WqiNXGrQ.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[On Ethical Ad-Supported Businesses]]></title>
            <link>https://www.evantahler.com/blog/post/2016-12-23-on-ethical-ad-supported-businesses</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2016-12-23-on-ethical-ad-supported-businesses</guid>
            <pubDate>Fri, 23 Dec 2016 19:59:19 GMT</pubDate>
            <description><![CDATA[Listen to this wonderful interview on KQED (NPR)’s "Forum" with Dr. Tim Wu On Advertising, Fake News and ‘Attention Harvesting’]]></description>
            <author>Evan Tahler</author>
            <category>product-management</category>
            <category>career</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__JjPI1__tSIP__7rv5N0p__v9g.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Actionhero + Standard.js]]></title>
            <link>https://www.evantahler.com/blog/post/2016-12-14-actionhero-and-standardjs</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2016-12-14-actionhero-and-standardjs</guid>
            <pubDate>Wed, 14 Dec 2016 01:06:40 GMT</pubDate>
            <description><![CDATA[I don’t want to talk about ESLint ever again. I don’t ever want to talk about "code style" ever again. I want to write code, and I want the…]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>node.js</category>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__QEsaQMJW6Ysa9HYNlV9XiA.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Deploying to Flynn from Travis.CI]]></title>
            <link>https://www.evantahler.com/blog/post/2016-10-29-deploying-from-flynn-to-travisci</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2016-10-29-deploying-from-flynn-to-travisci</guid>
            <pubDate>Sat, 29 Oct 2016 17:56:27 GMT</pubDate>
            <description><![CDATA[In my previous post, I shared some tips on creating a production Flynn cluster. If you don’t know, Flynn is a an open-source self-hosted…]]></description>
            <author>Evan Tahler</author>
            <category>devops</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__yZ45b6I1QGRBwWtQqNqBiA.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Productionizing Flynn and Hosting your Root Domain(s)]]></title>
            <link>https://www.evantahler.com/blog/post/2016-10-28-productionizing-flynn</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2016-10-28-productionizing-flynn</guid>
            <pubDate>Fri, 28 Oct 2016 18:55:25 GMT</pubDate>
            <description><![CDATA[Flynn is a an open-source self-hosted Heroku replacement… and it is great.]]></description>
            <author>Evan Tahler</author>
            <category>devops</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__k9__uGIssdqP4JtbdaGeYNQ.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[ActionHero v15.1.2: Security Release]]></title>
            <link>https://www.evantahler.com/blog/post/2016-10-28-actionhero-v5-1-2-security-release</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2016-10-28-actionhero-v5-1-2-security-release</guid>
            <pubDate>Fri, 28 Oct 2016 00:09:05 GMT</pubDate>
            <description><![CDATA[Today we released the first-ever security release for ActionHero.]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>node.js</category>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__HQAn3z05N__iwWd__Q__JEFlA.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[ActionHero and Node.JS v7]]></title>
            <link>https://www.evantahler.com/blog/post/2016-10-26-actionhero-nodejs-v7</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2016-10-26-actionhero-nodejs-v7</guid>
            <pubDate>Wed, 26 Oct 2016 17:41:10 GMT</pubDate>
            <description><![CDATA[Does ActionHero work with with the newly released Node.js v7?]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>node.js</category>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__1aBZOO8chVHmePbMxUTl0w.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Too many Chrome Tabs = Node.JS Server Crash]]></title>
            <link>https://www.evantahler.com/blog/post/2016-10-11-too-many-chrome-tabs</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2016-10-11-too-many-chrome-tabs</guid>
            <pubDate>Tue, 11 Oct 2016 23:48:18 GMT</pubDate>
            <description><![CDATA[Here’s a fun bug report:]]></description>
            <author>Evan Tahler</author>
            <category>node.js</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__QX3Wun3NN__374jHq__VsngA.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Ruby, Homebrew, and OSX Sierra Upgrades]]></title>
            <link>https://www.evantahler.com/blog/post/2016-09-22-ruby-homebrew-and-osx-sierra</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2016-09-22-ruby-homebrew-and-osx-sierra</guid>
            <pubDate>Thu, 22 Sep 2016 22:25:08 GMT</pubDate>
            <description><![CDATA[Say you are a developer and you recently updated to OSX Sierra…]]></description>
            <author>Evan Tahler</author>
            <category>ruby</category>
            <category>devops</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__nG5K39SYOMiqX9SHwn__3lg.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[ActionHero V15.0.0 and Release Cadence]]></title>
            <link>https://www.evantahler.com/blog/post/2016-08-07-actionhero-v15</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2016-08-07-actionhero-v15</guid>
            <pubDate>Sun, 07 Aug 2016 00:29:56 GMT</pubDate>
            <description><![CDATA[A quick note to say that ActionHero has reached version 15. You can read the full release notes here.]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>open-source</category>
            <category>javascript</category>
            <category>node.js</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__0QCxQAd2jc1P8__yHWNWIUQ.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Building and Testing ActionHero Plugins]]></title>
            <link>https://www.evantahler.com/blog/post/2016-07-25-building-and-testing-actionhero-plugins</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2016-07-25-building-and-testing-actionhero-plugins</guid>
            <pubDate>Mon, 25 Jul 2016 16:33:41 GMT</pubDate>
            <description><![CDATA[Over the past few months, I’ve been working on projects which grew to become ActionHero Plugins. ActionHero is a Node.js framework for…]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>node.js</category>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__eUn__TuOSlq__8Gx0hPGdK5Q.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Ansible, LetsEncrypt!, NGINX, and ActionHero]]></title>
            <link>https://www.evantahler.com/blog/post/2016-07-23-ansible-lets-encrypt-nginx-and-actionhero</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2016-07-23-ansible-lets-encrypt-nginx-and-actionhero</guid>
            <pubDate>Sat, 23 Jul 2016 17:55:42 GMT</pubDate>
            <description><![CDATA[If you don’t already know LetsEncrypt! is an awesome project which aims to bring free HTTPS certificate to every site on the web. HTTPS…]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>node.js</category>
            <category>javascript</category>
            <category>devops</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__bKxD__GvU2YDGkBdZNhVXcQ.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[ActionHero’s Resque UI]]></title>
            <link>https://www.evantahler.com/blog/post/2016-07-07-actionheros-resque-ui</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2016-07-07-actionheros-resque-ui</guid>
            <pubDate>Thu, 07 Jul 2016 23:10:37 GMT</pubDate>
            <description><![CDATA[Today I released a Resque UI for ActionHero, ah-resque-ui.]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>javascript</category>
            <category>node.js</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__CCa__6uFsJZQSWBlO4ajz8Q.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Actionhero v14 and a problem with recursive configuration]]></title>
            <link>https://www.evantahler.com/blog/post/2016-06-24-actionhero-v14-and-a-problem</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2016-06-24-actionhero-v14-and-a-problem</guid>
            <pubDate>Fri, 24 Jun 2016 20:55:23 GMT</pubDate>
            <description><![CDATA[Actionhero is now at version 14.0.1!]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>node.js</category>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__xINPKaOBDM40qfeSgBXyVQ.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[A memory leak in node (ActionHero)]]></title>
            <link>https://www.evantahler.com/blog/post/2016-05-28-a-memory-leak-in-node</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2016-05-28-a-memory-leak-in-node</guid>
            <pubDate>Sat, 28 May 2016 18:04:52 GMT</pubDate>
            <description><![CDATA[We recently found & solved a memory leak in ActionHero. If you use ActionHero to serve static assets, you should see a significant memory reduction!]]></description>
            <author>Evan Tahler</author>
            <category>node.js</category>
            <category>actionhero</category>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__OwDaBcU2IcB1SXCb7rfIsA.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Actionhero Community - Now on Slack]]></title>
            <link>https://www.evantahler.com/blog/post/2016-05-16-actionhero-community-on-slack</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2016-05-16-actionhero-community-on-slack</guid>
            <pubDate>Mon, 16 May 2016 04:06:56 GMT</pubDate>
            <description><![CDATA[This week the Actionhero Community moved from Gitter to Slack]]></description>
            <author>Evan Tahler</author>
            <category>open-source</category>
            <category>actionhero</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__myDepyzyDisjRxKGEbj6tA.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Good Old Games, Modern Resolutions, and Windows gaming on OSX]]></title>
            <link>https://www.evantahler.com/blog/post/2016-05-14-good-old-games-osx-resolution</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2016-05-14-good-old-games-osx-resolution</guid>
            <pubDate>Sat, 14 May 2016 21:04:29 GMT</pubDate>
            <description><![CDATA[I’ve been itching for some nostalgic games lately.]]></description>
            <author>Evan Tahler</author>
            <category>devops</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__EL__0uaqprD23nf__HtsqZFQ.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Background Tasks in Node.js: A survey with Redis.]]></title>
            <link>https://www.evantahler.com/blog/post/2016-05-11-background-tasks-in-nodejs-a-survey-with-redis</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2016-05-11-background-tasks-in-nodejs-a-survey-with-redis</guid>
            <pubDate>Wed, 11 May 2016 01:07:44 GMT</pubDate>
            <description><![CDATA[Today I gave a talk at RedisConf in San Francisco entitled: Background Tasks in Node.js: A survey with Redis.]]></description>
            <author>Evan Tahler</author>
            <category>node.js</category>
            <category>javascript</category>
            <category>devops</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__o4crV68ZzYEiJ__l9zgqmXQ.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[ActionHero + Tessel2]]></title>
            <link>https://www.evantahler.com/blog/post/2016-04-24-actionhero-and-tessel-2</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2016-04-24-actionhero-and-tessel-2</guid>
            <pubDate>Sun, 24 Apr 2016 19:33:09 GMT</pubDate>
            <description><![CDATA[I just received my Tessel 2 in the mail.]]></description>
            <author>Evan Tahler</author>
            <category>node.js</category>
            <category>actionhero</category>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__j5aWtCqFUgXrKSRbG3YuAQ.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[ElasticDump]]></title>
            <link>https://www.evantahler.com/blog/post/2014-01-06-elasticdump</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2014-01-06-elasticdump</guid>
            <pubDate>Fri, 22 Apr 2016 23:01:16 GMT</pubDate>
            <description><![CDATA[ElasticDump - The Node.js CLI tool for importing and exporting Elaticsearch data]]></description>
            <author>Evan Tahler</author>
            <category>data-engineering</category>
            <category>node.js</category>
            <category>javascript</category>
            <category>taskrabbit</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__OopZJXTgMJhT1S0pBaGapQ.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Forklift: Moving Big Databases Around in Ruby]]></title>
            <link>https://www.evantahler.com/blog/post/2013-04-14-forklift-moving-big-databases-around-in-ruby</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2013-04-14-forklift-moving-big-databases-around-in-ruby</guid>
            <pubDate>Fri, 22 Apr 2016 22:45:50 GMT</pubDate>
            <description><![CDATA[Moving Big Databases Around in Ruby]]></description>
            <author>Evan Tahler</author>
            <category>ruby</category>
            <category>data-engineering</category>
            <category>taskrabbit</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/0__T3e9y__efvaQCz99b.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[It has been so long]]></title>
            <link>https://www.evantahler.com/blog/post/2012-08-02-it-has-been-so-long</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-08-02-it-has-been-so-long</guid>
            <pubDate>Fri, 22 Apr 2016 22:18:17 GMT</pubDate>
            <description><![CDATA[I’ve been pretty bad at posting lately, but that’s not to say that I haven’t been busy!]]></description>
            <author>Evan Tahler</author>
            <category>meta</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__LzV__pBMrIVln2B0SicLS8Q.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[switchboard.chat]]></title>
            <link>https://www.evantahler.com/blog/post/2016-01-09-switchboard-chat</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2016-01-09-switchboard-chat</guid>
            <pubDate>Sat, 09 Jan 2016 00:00:00 GMT</pubDate>
            <description><![CDATA[Today I want to announce the beta of a new website I built, switchboard.chat]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>product-management</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__k7TOA8rMJW3wFmqxLyJsCw.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[ActionHero + Bootstrap + Angular + CORS + CSRF]]></title>
            <link>https://www.evantahler.com/blog/post/2015-10-15-actionhero-bootstrap-angular</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2015-10-15-actionhero-bootstrap-angular</guid>
            <pubDate>Thu, 15 Oct 2015 00:00:00 GMT</pubDate>
            <description><![CDATA[We’ve had a simple ActionHero demo site for a while now, which shows how easy it is to get started with the framework, but until now, we’ve…]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>node.js</category>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__ZkuR4ORDLsAn7UzhbEDA1g.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Ansible Tips and Tricks]]></title>
            <link>https://www.evantahler.com/blog/post/2015-07-14-ansible-tips-and-tricks</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2015-07-14-ansible-tips-and-tricks</guid>
            <pubDate>Tue, 14 Jul 2015 00:00:00 GMT</pubDate>
            <description><![CDATA[On Monday 2015–07–14 I gave a (remote) talk as the Pittsburgh Code & Supply Meetup entitled "TaskRabbit’s Ansible Tips & Tricks”.]]></description>
            <author>Evan Tahler</author>
            <category>devops</category>
            <category>speaking</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__w0iIGUfsxNXvUBKqrC__uSA.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Git Whereami]]></title>
            <link>https://www.evantahler.com/blog/post/2015-04-17-git-whereami</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2015-04-17-git-whereami</guid>
            <pubDate>Fri, 17 Apr 2015 00:00:00 GMT</pubDate>
            <description><![CDATA[I’ve been traveling a lot for work, and I thought it might be cool to somehow signal where I was physically when checking in code. I knew…]]></description>
            <author>Evan Tahler</author>
            <category>meta</category>
            <category>devops</category>
        </item>
        <item>
            <title><![CDATA[Ansible Static Dynamic Inventory]]></title>
            <link>https://www.evantahler.com/blog/post/2015-03-12-ansible-static-dynamic-inventory</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2015-03-12-ansible-static-dynamic-inventory</guid>
            <pubDate>Thu, 12 Mar 2015 00:00:00 GMT</pubDate>
            <description><![CDATA[Using Ansible with a Dynamic list of hosts]]></description>
            <author>Evan Tahler</author>
            <category>taskrabbit</category>
            <category>devops</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__MpJklbc7MeGNCgX3TvL1HQ.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Rebuilding Capistrano with Ansible]]></title>
            <link>https://www.evantahler.com/blog/post/2015-03-12-rebuilding-capistrano-with-ansible</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2015-03-12-rebuilding-capistrano-with-ansible</guid>
            <pubDate>Thu, 12 Mar 2015 00:00:00 GMT</pubDate>
            <description><![CDATA[Solid Ruby deployments with Ansbile]]></description>
            <author>Evan Tahler</author>
            <category>ruby</category>
            <category>devops</category>
            <category>taskrabbit</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__w0iIGUfsxNXvUBKqrC__uSA.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Background Tasks in Node]]></title>
            <link>https://www.evantahler.com/blog/post/2015-02-16-background-tasks-in-node</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2015-02-16-background-tasks-in-node</guid>
            <pubDate>Mon, 16 Feb 2015 00:00:00 GMT</pubDate>
            <description><![CDATA[On Thursday 2015–02–05 I gave a talk as the awesome SFNode Meetup entitled "Background Jobs for NodeJS".]]></description>
            <author>Evan Tahler</author>
            <category>speaking</category>
            <category>node.js</category>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/0__p6PmuaW4OvZfk7wd.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[ElasticSeach Production Notes: Part 2]]></title>
            <link>https://www.evantahler.com/blog/post/2015-01-07-elasticseach-production-notes-part-2</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2015-01-07-elasticseach-production-notes-part-2</guid>
            <pubDate>Wed, 07 Jan 2015 00:00:00 GMT</pubDate>
            <description><![CDATA[Fast and Stable Elasticsearch in production... again!]]></description>
            <author>Evan Tahler</author>
            <category>taskrabbit</category>
            <category>data-engineering</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/0__SnPDTeQgntuVKyK9.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Node for Not HTTP]]></title>
            <link>https://www.evantahler.com/blog/post/2014-12-07-node-for-not-http</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2014-12-07-node-for-not-http</guid>
            <pubDate>Sun, 07 Dec 2014 00:00:00 GMT</pubDate>
            <description><![CDATA[On Thursday 2014–12–04 I gave a talk as the SF Node.js Club entitled "Node for Not HTTP".]]></description>
            <author>Evan Tahler</author>
            <category>speaking</category>
            <category>node.js</category>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/0__GCSqPEgHzU4Qd__PH.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[StatusBot]]></title>
            <link>https://www.evantahler.com/blog/post/2014-08-27-statusbot</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2014-08-27-statusbot</guid>
            <pubDate>Wed, 27 Aug 2014 00:00:00 GMT</pubDate>
            <description><![CDATA[Keep track of your uptime with Statuspage.io and Node.js]]></description>
            <author>Evan Tahler</author>
            <category>node.js</category>
            <category>taskrabbit</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/0__DrCJJqCWSpAOEpNu.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[ElasticSearch in Production]]></title>
            <link>https://www.evantahler.com/blog/post/2014-07-18-elasticsearch-in-production</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2014-07-18-elasticsearch-in-production</guid>
            <pubDate>Fri, 18 Jul 2014 00:00:00 GMT</pubDate>
            <description><![CDATA[Fast and Stable Elasticsearch]]></description>
            <author>Evan Tahler</author>
            <category>taskrabbit</category>
            <category>data-engineering</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/0__snWdTeknvk2Ksn5W.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[ActionHero v9.0.0 release candidate]]></title>
            <link>https://www.evantahler.com/blog/post/2014-06-06-actionHero-v9-0-0</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2014-06-06-actionHero-v9-0-0</guid>
            <pubDate>Fri, 06 Jun 2014 00:00:00 GMT</pubDate>
            <description><![CDATA[V9.0.0 of ActionHero went live on 2014–06–24]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>javascript</category>
            <category>node.js</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__JenwKu6ssjKvGKTHmpbh1g.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[active_record, MySQL, and emoji]]></title>
            <link>https://www.evantahler.com/blog/post/2014-04-24-active-record-mysql-and-emoji</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2014-04-24-active-record-mysql-and-emoji</guid>
            <pubDate>Thu, 24 Apr 2014 00:00:00 GMT</pubDate>
            <description><![CDATA[No more Emoji!]]></description>
            <author>Evan Tahler</author>
            <category>taskrabbit</category>
            <category>ruby</category>
        </item>
        <item>
            <title><![CDATA[ActionHero and NewRelic]]></title>
            <link>https://www.evantahler.com/blog/post/2014-03-10-actionhero-and-newrelic</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2014-03-10-actionhero-and-newrelic</guid>
            <pubDate>Mon, 10 Mar 2014 00:00:00 GMT</pubDate>
            <description><![CDATA[There is now a plugin for ActionHero + New Relic if you ar using actionhero version 10 or later.]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>node.js</category>
            <category>javascript</category>
        </item>
        <item>
            <title><![CDATA[Airbrake and ActionHero]]></title>
            <link>https://www.evantahler.com/blog/post/2014-02-13-airbrake-and-actionhero</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2014-02-13-airbrake-and-actionhero</guid>
            <pubDate>Thu, 13 Feb 2014 00:00:00 GMT</pubDate>
            <description><![CDATA[If you are using ActionHero version 10x or higher, you can now use the plugin:]]></description>
            <author>Evan Tahler</author>
            <category>javascript</category>
            <category>node.js</category>
            <category>actionhero</category>
        </item>
        <item>
            <title><![CDATA[On ActionHero Routing]]></title>
            <link>https://www.evantahler.com/blog/post/2014-01-04-on-actionhero-routing</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2014-01-04-on-actionhero-routing</guid>
            <pubDate>Sat, 04 Jan 2014 00:00:00 GMT</pubDate>
            <description><![CDATA[I’ve been seeing questions about how actionHero’s routes interact with the actions. Here’s a bit more of an explanation (which I’ll keep to…]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>javascript</category>
            <category>node.js</category>
        </item>
        <item>
            <title><![CDATA[ActionHero 7.x.x]]></title>
            <link>https://www.evantahler.com/blog/post/2013-12-04-actionhero-v7</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2013-12-04-actionhero-v7</guid>
            <pubDate>Wed, 04 Dec 2013 00:00:00 GMT</pubDate>
            <description><![CDATA[A quick post to say that I’m very happy about where ActionHero is going.]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>javascript</category>
            <category>node.js</category>
        </item>
        <item>
            <title><![CDATA[Ruby and Mavericks]]></title>
            <link>https://www.evantahler.com/blog/post/2013-10-28-ruby-osx-mavericks</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2013-10-28-ruby-osx-mavericks</guid>
            <pubDate>Mon, 28 Oct 2013 00:00:00 GMT</pubDate>
            <description><![CDATA[Are you developing in Ruby and have just upgraded your OSX Machine to Mavericks (OSX 10.9)? Are you suddenly having trouble installing or…]]></description>
            <author>Evan Tahler</author>
            <category>ruby</category>
            <category>devops</category>
        </item>
        <item>
            <title><![CDATA[On Inclusion]]></title>
            <link>https://www.evantahler.com/blog/post/2013-10-14-on-inclusion</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2013-10-14-on-inclusion</guid>
            <pubDate>Mon, 14 Oct 2013 00:00:00 GMT</pubDate>
            <description><![CDATA[The topic of the day is inclusion.]]></description>
            <author>Evan Tahler</author>
            <category>open-source</category>
        </item>
        <item>
            <title><![CDATA[ActionHero Tutorials]]></title>
            <link>https://www.evantahler.com/blog/post/2013-07-05-actionhero-tutorials</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2013-07-05-actionhero-tutorials</guid>
            <pubDate>Fri, 05 Jul 2013 00:00:00 GMT</pubDate>
            <description><![CDATA[I wrote a few tutorials for actionHero recently at the behest of the community:]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>node.js</category>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/0__0SA9sIOJ5ezVC671.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Authentication with ActionHero Again]]></title>
            <link>https://www.evantahler.com/blog/post/2013-06-10-authentication-with-actionhero-again</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2013-06-10-authentication-with-actionhero-again</guid>
            <pubDate>Mon, 10 Jun 2013 00:00:00 GMT</pubDate>
            <description><![CDATA[An update look at authenticating with Actionhero]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>node.js</category>
            <category>javascript</category>
        </item>
        <item>
            <title><![CDATA[ActionHero v4.1.0]]></title>
            <link>https://www.evantahler.com/blog/post/2013-06-06-actionhero-v4-1</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2013-06-06-actionhero-v4-1</guid>
            <pubDate>Thu, 06 Jun 2013 00:00:00 GMT</pubDate>
            <description><![CDATA[A quick post to say that a new version of actionHero is out tonight: v4.1.0 This update contains some breaking changes to the Tasks and…]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>node.js</category>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__E2OG6YATcmZ__0IfziI3m2g.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[On Task Systems]]></title>
            <link>https://www.evantahler.com/blog/post/2013-03-24-on-task-systems</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2013-03-24-on-task-systems</guid>
            <pubDate>Sun, 24 Mar 2013 00:00:00 GMT</pubDate>
            <description><![CDATA[Why Task Systems?]]></description>
            <author>Evan Tahler</author>
            <category>node.js</category>
            <category>actionhero</category>
            <category>taskrabbit</category>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__cvQ1iEN5JVT__bUpcd1tDvg.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[When does API-First Not Apply?]]></title>
            <link>https://www.evantahler.com/blog/post/2013-03-19-when-does-api-first-not-apply</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2013-03-19-when-does-api-first-not-apply</guid>
            <pubDate>Tue, 19 Mar 2013 00:00:00 GMT</pubDate>
            <description><![CDATA[When should you not use an API-First methodology?]]></description>
            <author>Evan Tahler</author>
            <category>product-management</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__Df3z03ju7EPaTPnzqtCavw.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[API-First.com reboot]]></title>
            <link>https://www.evantahler.com/blog/post/2013-03-10-api-first-reboot</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2013-03-10-api-first-reboot</guid>
            <pubDate>Sun, 10 Mar 2013 00:00:00 GMT</pubDate>
            <description><![CDATA[After siting idle for over a year, Fiona (Fiona ODMC) and I have decided to reboot API-First.com.]]></description>
            <author>Evan Tahler</author>
            <category>product-management</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__ngHc__S43t468vMf7KDKpiw.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[The Real Reason I Will Not Be Your Technical CoFounder]]></title>
            <link>https://www.evantahler.com/blog/post/2013-02-28-the-real-reason-i-will-not-be-your-technical-cofounder</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2013-02-28-the-real-reason-i-will-not-be-your-technical-cofounder</guid>
            <pubDate>Thu, 28 Feb 2013 00:00:00 GMT</pubDate>
            <description><![CDATA[I have been reading quite a few posts lately concerning the topic of becoming a ‘technical co-founder’ of a startup. Just search for the…]]></description>
            <author>Evan Tahler</author>
            <category>career</category>
        </item>
        <item>
            <title><![CDATA[Authentication with ActionHero]]></title>
            <link>https://www.evantahler.com/blog/post/2013-02-18-authetntication-with-actionhero</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2013-02-18-authetntication-with-actionhero</guid>
            <pubDate>Mon, 18 Feb 2013 00:00:00 GMT</pubDate>
            <description><![CDATA[!! This post is out of date! For an up-to-date version, click here]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>node.js</category>
            <category>javascript</category>
        </item>
        <item>
            <title><![CDATA[Makara — a read-write splitting adapter for Active Record]]></title>
            <link>https://www.evantahler.com/blog/post/2013-01-29-makara</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2013-01-29-makara</guid>
            <pubDate>Tue, 29 Jan 2013 00:00:00 GMT</pubDate>
            <description><![CDATA[A read-write splitting adapter for Active Record]]></description>
            <author>Evan Tahler</author>
            <category>ruby</category>
            <category>taskrabbit</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/0__PQJXKJGTtmUqMwGe.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[ActionHero v4.2.2]]></title>
            <link>https://www.evantahler.com/blog/post/2013-01-13-actionhero-v4-2-2</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2013-01-13-actionhero-v4-2-2</guid>
            <pubDate>Sun, 13 Jan 2013 00:00:00 GMT</pubDate>
            <description><![CDATA[This was a busy week for actionHero! We are now up to version 4.2.2. Note that this release again changed some of the internal API’s.]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>node.js</category>
            <category>javascript</category>
        </item>
        <item>
            <title><![CDATA[ownCloud + DreamHost: Your own Unlimited DropBox for 13$/mo]]></title>
            <link>https://www.evantahler.com/blog/post/2013-01-07-owncloud-and-dreamhost</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2013-01-07-owncloud-and-dreamhost</guid>
            <pubDate>Mon, 07 Jan 2013 00:00:00 GMT</pubDate>
            <description><![CDATA[Intro]]></description>
            <author>Evan Tahler</author>
            <category>devops</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__DL3CdUDzttWP5FxDvsO9hg.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Jekyll, Markdown, and More]]></title>
            <link>https://www.evantahler.com/blog/post/2012-12-23-jekyll-markdown-and-more</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-12-23-jekyll-markdown-and-more</guid>
            <pubDate>Sun, 23 Dec 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[Jekyll: Where have you been all my life?!]]></description>
            <author>Evan Tahler</author>
            <category>ruby</category>
            <category>meta</category>
            <category>taskrabbit</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__fK7ebyH3YbJsrcRvBR3pIQ.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Delete old git branches already merged into master]]></title>
            <link>https://www.evantahler.com/blog/post/2012-12-20-delete-old-git-branches</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-12-20-delete-old-git-branches</guid>
            <pubDate>Thu, 20 Dec 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[Keep your git branches clean!]]></description>
            <author>Evan Tahler</author>
            <category>engineering</category>
            <category>ruby</category>
            <category>taskrabbit</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__HArdB4tMciWUivKfh4XWxg.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[On Domains and Connections with node.js]]></title>
            <link>https://www.evantahler.com/blog/post/2012-12-13-domains-and-nodejs</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-12-13-domains-and-nodejs</guid>
            <pubDate>Thu, 13 Dec 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[Solved!]]></description>
            <author>Evan Tahler</author>
            <category>node.js</category>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__7MU7Ftjk6tpnGoDdNGLkfw.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Exception Patterns in node.js]]></title>
            <link>https://www.evantahler.com/blog/post/2012-12-04-exception-patterns-in-node-js</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-12-04-exception-patterns-in-node-js</guid>
            <pubDate>Tue, 04 Dec 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[Recently we added support for a ‘developer mode’ to ActionHero which reloads parts of your project on the fly as you develop. Doing so…]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>node.js</category>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/0__o0B__oyddYtvd8ZjV.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[What do you do when Softpedia scrapes you projects?]]></title>
            <link>https://www.evantahler.com/blog/post/2012-11-24-what-to-do-when-softpedia-scrapes-your-project</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-11-24-what-to-do-when-softpedia-scrapes-your-project</guid>
            <pubDate>Sat, 24 Nov 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[Today I woke up to learn that I had made it big!]]></description>
            <author>Evan Tahler</author>
            <category>node.js</category>
            <category>actionhero</category>
            <category>career</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__h2gRKouxzuquwx2gPUb6zA.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[actionhero-client turns 1.0.0]]></title>
            <link>https://www.evantahler.com/blog/post/2012-11-17-actionhero-client-turns-1</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-11-17-actionhero-client-turns-1</guid>
            <pubDate>Sat, 17 Nov 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[actionhero-client is a nodeJS package to allow a remote nodeJS app to connect to and consume an actionHero API.]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>node.js</category>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__NDp0nEkCsIJw8kXYedA2pw.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[GitHub Resume]]></title>
            <link>https://www.evantahler.com/blog/post/2012-10-04-gitHub-resume</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-10-04-gitHub-resume</guid>
            <pubDate>Thu, 04 Oct 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[This site had the wonderful idea to generate resumes from Github. I like this idea. The more time passes, the more invaluable to the…]]></description>
            <author>Evan Tahler</author>
            <category>meta</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__Rkwpr__BRt7ocxaqxnjnc9Q.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Production Deployment with node.js Clusters]]></title>
            <link>https://www.evantahler.com/blog/post/2012-09-10-production-deployment-with-node-js-clusters</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-09-10-production-deployment-with-node-js-clusters</guid>
            <pubDate>Mon, 10 Sep 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[How do you deploy a node.js app reliably?]]></description>
            <author>Evan Tahler</author>
            <category>node.js</category>
            <category>devops</category>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__VUhrsBC1AkJ0UDL4PgPG8Q.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[NPM and run-script]]></title>
            <link>https://www.evantahler.com/blog/post/2012-09-09-npm-run-script</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-09-09-npm-run-script</guid>
            <pubDate>Sun, 09 Sep 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[Just a handy reminder that you can add "arbitrary" commands to your node NPM modules without creating binaries.]]></description>
            <author>Evan Tahler</author>
            <category>node.js</category>
            <category>javascript</category>
            <category>actionhero</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__ocEQaLmuC7iloRNrsFaD__Q.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[npm and generators]]></title>
            <link>https://www.evantahler.com/blog/post/2012-08-12-npm-and-generators</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-08-12-npm-and-generators</guid>
            <pubDate>Sun, 12 Aug 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[Today I learned that npm (the node.js package manager) has support for arbitrary commands and chained commands. I guess I always knew this…]]></description>
            <author>Evan Tahler</author>
            <category>node.js</category>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__sa2zvb4ADQo4G__42OfSjfQ.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[actionHero V3: Return of the Hero]]></title>
            <link>https://www.evantahler.com/blog/post/2012-08-02-actionhero-v2</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-08-02-actionhero-v2</guid>
            <pubDate>Thu, 02 Aug 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[That’s Right, the rumors were true: ActionHero is now @ V3!]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>node.js</category>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__E2OG6YATcmZ__0IfziI3m2g.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[I am a nerd]]></title>
            <link>https://www.evantahler.com/blog/post/2012-07-31-i-am-a-nerd</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-07-31-i-am-a-nerd</guid>
            <pubDate>Tue, 31 Jul 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[I received some stickers at work today from Joyent and, like I have been doing for the past many years, I stuck them to the back of my…]]></description>
            <author>Evan Tahler</author>
            <category>meta</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__Eo__rHpd5eF3dfGuai__2__Zw.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[ActionHero++ (now at level 2!)]]></title>
            <link>https://www.evantahler.com/blog/post/2012-03-23-actionhero-now-at-level-2</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-03-23-actionhero-now-at-level-2</guid>
            <pubDate>Wed, 23 May 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[actionHero is growing up so fast!]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>node.js</category>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__0JdqTgFyIb3kndbeZwBe6g.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Electric Imp]]></title>
            <link>https://www.evantahler.com/blog/post/2012-05-22-electric-imp</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-05-22-electric-imp</guid>
            <pubDate>Tue, 22 May 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[Where have I been for the past month? Well, I’ve been heads-down helping to launch the internet of things. Now that we have launched, I can…]]></description>
            <author>Evan Tahler</author>
            <category>meta</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/0__nv10WME8B__6IgrwJ.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[ActionHero: Actions vs Tasks]]></title>
            <link>https://www.evantahler.com/blog/post/2012-04-11-actions-vs-tasks</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-04-11-actions-vs-tasks</guid>
            <pubDate>Wed, 11 Apr 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[I recently got a note from an actionHero user asking about the difference between tasks and actions within the framework. Here’s a bit of a…]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>javascript</category>
            <category>node.js</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__MOFEPTlPprbExqciQ8W6JA.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[PhoneGap and Push Notifications]]></title>
            <link>https://www.evantahler.com/blog/post/2012-04-11-phonegap-and-push-notifications</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-04-11-phonegap-and-push-notifications</guid>
            <pubDate>Wed, 11 Apr 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[Mobile Apps with JS]]></description>
            <author>Evan Tahler</author>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__yizkpDcoH__Bpah8nUy__0PA.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Deploying node.js applications with Capistrano]]></title>
            <link>https://www.evantahler.com/blog/post/2012-04-04-deploying-node-apps-with-capistrano</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-04-04-deploying-node-apps-with-capistrano</guid>
            <pubDate>Wed, 04 Apr 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[I really like Capistrano.]]></description>
            <author>Evan Tahler</author>
            <category>node.js</category>
            <category>javascript</category>
            <category>devops</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__GOljYLFswSUI6EC7NCFkLg.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[cURL your way into the Google Analytics API]]></title>
            <link>https://www.evantahler.com/blog/post/2012-04-04-google-analytics-curl</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-04-04-google-analytics-curl</guid>
            <pubDate>Wed, 04 Apr 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[Whenever I am about to start integrating with a new API, I like to walk though the steps with cURL. For those of you who have been living]]></description>
            <author>Evan Tahler</author>
            <category>meta</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__5h6hxUUaZjLmz5qpH6uPpA.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Testing actionHero with blitz.io]]></title>
            <link>https://www.evantahler.com/blog/post/2012-03-30-testing-actionhero-with-blitz</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-03-30-testing-actionhero-with-blitz</guid>
            <pubDate>Fri, 30 Mar 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[I recently had a chance to try out blitz.io (or click my affiliate link thing and get me some free tests), a new load-testing tool from…]]></description>
            <author>Evan Tahler</author>
            <category>javascript</category>
            <category>node.js</category>
            <category>actionhero</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/0__QSBznimk9H52rcbb.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[ActionHero.js is now at version 1]]></title>
            <link>https://www.evantahler.com/blog/post/2012-03-18-actionhero-v1</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-03-18-actionhero-v1</guid>
            <pubDate>Sun, 18 Mar 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[HUZZAH!]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>node.js</category>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__KhGHUH__VYLotH6PAJZDg5Q.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Hacked! (or: A reminder about why unix permissions matter)]]></title>
            <link>https://www.evantahler.com/blog/post/2012-02-24-hacked-or-a-reminder-about-why-unix-permissions-matter</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-02-24-hacked-or-a-reminder-about-why-unix-permissions-matter</guid>
            <pubDate>Fri, 24 Feb 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[Note: I have included links to some of the malicious PHP code which attacked me in this blog post. I had a hard time deciding whether this…]]></description>
            <author>Evan Tahler</author>
            <category>engineering</category>
        </item>
        <item>
            <title><![CDATA[San Francisco from a Yinzer’s Point of View]]></title>
            <link>https://www.evantahler.com/blog/post/2012-02-17-sf-from-a-yinzers-pov</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-02-17-sf-from-a-yinzers-pov</guid>
            <pubDate>Fri, 17 Feb 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[I have a hard time answering the question "where are you from?". I’ve lived in over 15 different homes in 8 cities. I was born in New…]]></description>
            <author>Evan Tahler</author>
            <category>meta</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__ocGA4k76Nn9lgWEESMShsQ.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Small update to npm phidgets package]]></title>
            <link>https://www.evantahler.com/blog/post/2012-02-16-small-update-to-node-phidgets</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-02-16-small-update-to-node-phidgets</guid>
            <pubDate>Thu, 16 Feb 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[After all the hoopla about node.js and Nerf guns yesterday I revisited the phidgets package and fixed a few bugs. Most importantly there…]]></description>
            <author>Evan Tahler</author>
            <category>node.js</category>
        </item>
        <item>
            <title><![CDATA[Pivotal Tracker, Phidgets, and Nerf Guns]]></title>
            <link>https://www.evantahler.com/blog/post/2012-02-15-pivotal-tracker-and-nerf-guns</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-02-15-pivotal-tracker-and-nerf-guns</guid>
            <pubDate>Wed, 15 Feb 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[Nerf Guns and Product Management]]></description>
            <author>Evan Tahler</author>
            <category>javascript</category>
            <category>product-management</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__j7dGWlXBg__zVQtw0tHlE2A.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[nodeSpider updated: Now based on ActionHero]]></title>
            <link>https://www.evantahler.com/blog/post/2012-02-13-node-spider-now-on-actionhero</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-02-13-node-spider-now-on-actionhero</guid>
            <pubDate>Mon, 13 Feb 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[A quick update about the nodeSpider project (my first public node.js project!): It is now based on ActionHero.]]></description>
            <author>Evan Tahler</author>
            <category>actionhero</category>
            <category>node.js</category>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__n__p2AQEh65jifa73Si__btQ.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Travis-CI is raising money. Give them Money!]]></title>
            <link>https://www.evantahler.com/blog/post/2012-02-07-give-travisci-money</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-02-07-give-travisci-money</guid>
            <pubDate>Tue, 07 Feb 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[Travis CI is raising money to keep their free community continues integration server up and running. This is an awesome service which I use…]]></description>
            <author>Evan Tahler</author>
            <category>open-source</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__u4zG6GFiZMoQd__LfW23W0g.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Unicorns in Node or When does the cluster module mater?]]></title>
            <link>https://www.evantahler.com/blog/post/2012-02-01-unicorns-in-node</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-02-01-unicorns-in-node</guid>
            <pubDate>Wed, 01 Feb 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[At work the other day, an engineer most familiar with Ruby asked "What is the equivalent to Unicorn in Node?". Unicorn is a great…]]></description>
            <author>Evan Tahler</author>
            <category>node.js</category>
            <category>ruby</category>
            <category>devops</category>
            <category>taskrabbit</category>
            <category>modcloth</category>
            <enclosure url="https://www.evantahler.com/images/misc/unicorndies.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[nodeChecker update: now with SSH and Sockets!]]></title>
            <link>https://www.evantahler.com/blog/post/2012-01-30-nodechecker-update-now-with-ssh-and-sockets</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-01-30-nodechecker-update-now-with-ssh-and-sockets</guid>
            <pubDate>Mon, 30 Jan 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[The nodeCheker project which I spoke about a few months ago got an update today. Now you can execute arbitrary SSH commands to other…]]></description>
            <author>Evan Tahler</author>
            <category>node.js</category>
            <category>javascript</category>
            <category>modcloth</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__wRHkZEzat__8rR47SSAMKeA.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Unicorns & Web Servers]]></title>
            <link>https://www.evantahler.com/blog/post/2012-01-27-unicorns</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-01-27-unicorns</guid>
            <pubDate>Fri, 27 Jan 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[At ModCloth, our website uses the Ruby on Rails framework, and we use the unicorn web server. When deploying code via Capistrano, we have a…]]></description>
            <author>Evan Tahler</author>
            <category>ruby</category>
            <category>modcloth</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__UQMJrkiUtHbA2W__e3__HSYg.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[node.js running on a Phidgets SBC2 board!]]></title>
            <link>https://www.evantahler.com/blog/post/2012-01-16-running-nodejs-on-sbc2-phidget-board</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-01-16-running-nodejs-on-sbc2-phidget-board</guid>
            <pubDate>Mon, 16 Jan 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[After almost 15 hours or compile-try-fail-repeat, I’ve figured out the formula for compiling nodeJS on a Phidget SBC2 board!]]></description>
            <author>Evan Tahler</author>
            <category>node.js</category>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__nsVkXw9p4jX04PKNRCsUdA.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[GitHire]]></title>
            <link>https://www.evantahler.com/blog/post/2012-01-14-githire</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-01-14-githire</guid>
            <pubDate>Sat, 14 Jan 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[David Padilla of Crowd Interactive recently realized he was on this recruiting site called GitHire. They use algorithms to inspect your…]]></description>
            <author>Evan Tahler</author>
            <category>meta</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__81HtnBzez5ptxePVwSMhEg.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[On NodeJS and Phidgets]]></title>
            <link>https://www.evantahler.com/blog/post/2012-01-14-on-node-js-and-phidgets</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-01-14-on-node-js-and-phidgets</guid>
            <pubDate>Sat, 14 Jan 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[For those of you who don’t know what Phidgets are, they are small robotic prototyping boards which can handle (binary) input and output…]]></description>
            <author>Evan Tahler</author>
            <category>node.js</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__HxL8cV__wrobhi5strUoFuQ.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Running node on a Phidget Board]]></title>
            <link>https://www.evantahler.com/blog/post/2012-01-14-running-node-on-a-phidget-board</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2012-01-14-running-node-on-a-phidget-board</guid>
            <pubDate>Sat, 14 Jan 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[My last post was about creating a generic npm package to talk to a phidget board. This post is about compiling nodeJS to run on a phidget board]]></description>
            <author>Evan Tahler</author>
            <category>node.js</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__QYAVA14BeJgLpD7ajTlCWQ.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Announcing ActionHero.js]]></title>
            <link>https://www.evantahler.com/blog/post/2011-12-23-announcing-actionoero-js</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2011-12-23-announcing-actionoero-js</guid>
            <pubDate>Fri, 23 Dec 2011 00:00:00 GMT</pubDate>
            <description><![CDATA[I am working on a nodeJS framework! It’s out in beta RIGHT NOW. I would love some feedback.]]></description>
            <author>Evan Tahler</author>
            <category>node.js</category>
            <category>actionhero</category>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__0MnhZhYoNstrGV5HWjyv7w.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[NodeChecker — Big Board Dashboarding]]></title>
            <link>https://www.evantahler.com/blog/post/2011-12-11-node-checker</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2011-12-11-node-checker</guid>
            <pubDate>Sun, 11 Dec 2011 00:00:00 GMT</pubDate>
            <description><![CDATA[At ModCloth, our Ops team wanted to have a real time dashboard of important site information so they could know ASAP if something was wrong…]]></description>
            <author>Evan Tahler</author>
            <category>node.js</category>
            <category>javascript</category>
            <category>modcloth</category>
        </item>
        <item>
            <title><![CDATA[A reminder that the webKit console is also rendered (sometimes)]]></title>
            <link>https://www.evantahler.com/blog/post/2011-12-03-the-webkit-console-is-rendered</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2011-12-03-the-webkit-console-is-rendered</guid>
            <pubDate>Sat, 03 Dec 2011 00:00:00 GMT</pubDate>
            <description><![CDATA[I love doing web development in Chrome and Safari, as they have excellent built-in develop tools. There is one catch that I need to keep…]]></description>
            <author>Evan Tahler</author>
            <category>frontend</category>
            <category>javascript</category>
            <category>modcloth</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/0__4Z9kHURSwJ720SdZ.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Node Spider (writing a real time messaging relay in nodeJS)]]></title>
            <link>https://www.evantahler.com/blog/post/2011-12-01-node-spider</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2011-12-01-node-spider</guid>
            <pubDate>Thu, 01 Dec 2011 00:00:00 GMT</pubDate>
            <description><![CDATA[Sometimes nodeJS amazes me.]]></description>
            <author>Evan Tahler</author>
            <category>node.js</category>
            <category>javascript</category>
            <enclosure url="https://www.evantahler.com/images/medium-export/1__rso6t9yfQIcm9iMis4yiVw.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[A Blog!?]]></title>
            <link>https://www.evantahler.com/blog/post/2011-11-02-a-blog</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2011-11-02-a-blog</guid>
            <pubDate>Wed, 02 Nov 2011 00:00:00 GMT</pubDate>
            <description><![CDATA[Yep, I made a blog.]]></description>
            <author>Evan Tahler</author>
            <category>meta</category>
            <enclosure url="https://www.evantahler.com/images/misc/wave.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Agile Business Intelligence @ Pivotal Labs]]></title>
            <link>https://www.evantahler.com/blog/post/2011-11-02-agile-business-intelligence</link>
            <guid isPermaLink="false">https://www.evantahler.com/blog/post/2011-11-02-agile-business-intelligence</guid>
            <pubDate>Wed, 02 Nov 2011 00:00:00 GMT</pubDate>
            <description><![CDATA[A few months ago, Kate, Jenn, and I (all Modcloth co-workers) gave a talk at the world-famous pivotal labs about our unique "agile" way of…]]></description>
            <author>Evan Tahler</author>
            <category>product-management</category>
            <category>modcloth</category>
        </item>
    </channel>
</rss>