<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: jacobwg</title><link>https://news.ycombinator.com/user?id=jacobwg</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 11 Apr 2026 08:08:44 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=jacobwg" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by jacobwg in "Now Available: Depot CI"]]></title><description><![CDATA[
<p>Hey, I'm one of Depot's founders - we built our own custom parser for the YAML syntax that translates to Depot CI's orchestration APIs. This API will actually be a public API shortly, which will unlock some interesting use-cases (support for more syntaxes, direct programmability of the orchestrator, etc)</p>
]]></description><pubDate>Tue, 24 Mar 2026 13:35:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=47502386</link><dc:creator>jacobwg</dc:creator><comments>https://news.ycombinator.com/item?id=47502386</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47502386</guid></item><item><title><![CDATA[New comment by jacobwg in "Ask HN: Is AWS down again?"]]></title><description><![CDATA[
<p>You all should add EC2 - extra bonus if you have some way of tracking performance in addition to errors (right now we're seeing EC2 instances in us-east-1c not transition out of Pending status).</p>
]]></description><pubDate>Mon, 27 Oct 2025 18:35:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=45724677</link><dc:creator>jacobwg</dc:creator><comments>https://news.ycombinator.com/item?id=45724677</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45724677</guid></item><item><title><![CDATA[New comment by jacobwg in "Ask HN: Is AWS down again?"]]></title><description><![CDATA[
<p>We've been observing EC2 instances launched in us-east-1c (use1-az2) remain in Pending status for a very long time / indefinitely, starting at around 16:00 UTC.</p>
]]></description><pubDate>Mon, 27 Oct 2025 18:32:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=45724635</link><dc:creator>jacobwg</dc:creator><comments>https://news.ycombinator.com/item?id=45724635</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45724635</guid></item><item><title><![CDATA[Discovering useful third-party GitHub Actions]]></title><description><![CDATA[
<p>Article URL: <a href="https://depot.dev/blog/we-analyzed-66821-github-actions-runs">https://depot.dev/blog/we-analyzed-66821-github-actions-runs</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45463260">https://news.ycombinator.com/item?id=45463260</a></p>
<p>Points: 4</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 03 Oct 2025 14:13:55 +0000</pubDate><link>https://depot.dev/blog/we-analyzed-66821-github-actions-runs</link><dc:creator>jacobwg</dc:creator><comments>https://news.ycombinator.com/item?id=45463260</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45463260</guid></item><item><title><![CDATA[New comment by jacobwg in "Reverse engineering the GHA cache to improve performance (2024)"]]></title><description><![CDATA[
<p>Since we launched this last year, GitHub released a v2 of their internal cache API [0], based on Twirp [1] of all things, so we adapted to that. Interestingly that Twirp service also receives Actions artifacts, though we have not intercepted those today given that you likely still want them to appear in the GitHub UI / be accessible from the GitHub API.<p>[0] <a href="https://github.com/actions/cache/discussions/1510">https://github.com/actions/cache/discussions/1510</a><p>[1] <a href="https://github.com/twitchtv/twirp">https://github.com/twitchtv/twirp</a></p>
]]></description><pubDate>Wed, 23 Jul 2025 15:53:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=44660617</link><dc:creator>jacobwg</dc:creator><comments>https://news.ycombinator.com/item?id=44660617</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44660617</guid></item><item><title><![CDATA[Flox Build and Publish]]></title><description><![CDATA[
<p>Article URL: <a href="https://flox.dev/blog/introducing-flox-build-and-publish/">https://flox.dev/blog/introducing-flox-build-and-publish/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44518191">https://news.ycombinator.com/item?id=44518191</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 10 Jul 2025 07:10:22 +0000</pubDate><link>https://flox.dev/blog/introducing-flox-build-and-publish/</link><dc:creator>jacobwg</dc:creator><comments>https://news.ycombinator.com/item?id=44518191</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44518191</guid></item><item><title><![CDATA[New comment by jacobwg in "Ask HN: Who is hiring? (June 2025)"]]></title><description><![CDATA[
<p>Depot (W23) | Enterprise Support Engineer | Remote (UK, Europe) | Full-time | €100K - €160K | <a href="https://depot.dev">https://depot.dev</a><p>Depot is the fastest place to build software. We accelerate builds for customers using GitHub Actions, Docker, Bazel, Gradle, and more. We're seeking our first Enterprise Support Engineer to become a customer-facing expert on build optimization.<p>We're looking for someone with DevOps / CI consulting experience - you'll work directly with customers as the subject-matter expert on best practices, helping migrate legacy infrastructure, and working directly with the founders on product gaps.<p>Bonus: experience with Docker buildx, API integrations, or previous CI consulting.<p>For more details, and to apply: <a href="https://www.ycombinator.com/companies/depot/jobs/NdCr76D-enterprise-support-engineer">https://www.ycombinator.com/companies/depot/jobs/NdCr76D-ent...</a></p>
]]></description><pubDate>Mon, 02 Jun 2025 19:48:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=44162328</link><dc:creator>jacobwg</dc:creator><comments>https://news.ycombinator.com/item?id=44162328</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44162328</guid></item><item><title><![CDATA[New comment by jacobwg in "Accelerating Docker Builds by Halving EC2 Boot Time"]]></title><description><![CDATA[
<p>Not quite for every container, but we operate a multi-tenant remote build execution service (container builds, GitHub Actions jobs, etc) so we launch a lot of ephemeral VMs in response to customer build requests. We use separate EC2 instances for strong workload isolation between different customers / jobs, and optimize boot time since that directly translates to queue time.</p>
]]></description><pubDate>Fri, 23 May 2025 08:13:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=44070930</link><dc:creator>jacobwg</dc:creator><comments>https://news.ycombinator.com/item?id=44070930</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44070930</guid></item><item><title><![CDATA[New comment by jacobwg in "Accelerating Docker Builds by Halving EC2 Boot Time"]]></title><description><![CDATA[
<p>We also do GitHub Actions runners as a service, so a very high volume of differently-sized ephemeral VMs. We’ve experimented with .metal hosts, however they represent a bin-packing optimization problem, in that you will always be running some amount of spare compute / trying to fit the incoming build requests to physical hosts as tightly as possible.<p>Eventually you realize, IMO, that doing the bin packing yourself is just competing with AWS, that’s what they do when you launch a non-metal EC2 instance and it’s best to let them do what they’re good at. Hence why we’ve focused on optimization of that launch type, rather than trying to take over the virtualization.<p>There’s other security and performance reasons too: AWS is better at workload isolation than we can be, both that the isolation boundary is very strong, and that preventing noisy neighbors is difficult. Especially with things like disk, the strategies for ensuring fair access to the physical hardware (rate-limiting I/O) themselves have CPU overhead that slows everything down and prevents perfect bin-packing.</p>
]]></description><pubDate>Fri, 23 May 2025 08:08:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=44070901</link><dc:creator>jacobwg</dc:creator><comments>https://news.ycombinator.com/item?id=44070901</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44070901</guid></item><item><title><![CDATA[New comment by jacobwg in "Disk I/O bottlenecks in GitHub Actions"]]></title><description><![CDATA[
<p>Yeah we do some similar tricks with our registry[0]: pushes and pulls from inside AWS are served directly from AWS for maximum performance and no data transfer cost. Then when the client is outside AWS, we redirect all that to Tigris[1], also for maximum performance (CDN) and minimum data transfer cost (no cost from Tigris, just the cost to move content out of AWS once).<p>[0]: <a href="https://depot.dev/blog/introducing-depot-registry">https://depot.dev/blog/introducing-depot-registry</a><p>[1]: <a href="https://www.tigrisdata.com/blog/depot-registry/" rel="nofollow">https://www.tigrisdata.com/blog/depot-registry/</a></p>
]]></description><pubDate>Fri, 28 Mar 2025 19:57:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=43509330</link><dc:creator>jacobwg</dc:creator><comments>https://news.ycombinator.com/item?id=43509330</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43509330</guid></item><item><title><![CDATA[New comment by jacobwg in "Disk I/O bottlenecks in GitHub Actions"]]></title><description><![CDATA[
<p>No worries, entirely valid question. There may be ways to tune page cache to be more like this, but my mental model for what we've done is effectively make reads and writes transparently redirect to the equivalent of a tmpfs, up to a certain size. If you reserve 2GB of memory for the cache, and the CI job's read and written files are less than 2GB, then _everything_ stays in RAM, at RAM throughput/IOPS. When you exceed the limit of the cache, blocks are moved to the physical disk in the background. Feels like we have more direct control here than page cache (and the page cache is still helping out in this scenario too, so it's more that we're using both).</p>
]]></description><pubDate>Fri, 28 Mar 2025 19:17:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=43509027</link><dc:creator>jacobwg</dc:creator><comments>https://news.ycombinator.com/item?id=43509027</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43509027</guid></item><item><title><![CDATA[New comment by jacobwg in "Disk I/O bottlenecks in GitHub Actions"]]></title><description><![CDATA[
<p>Exactly, a ramdisk-backed writeback cache for the root volume for Linux. For macOS we wrote a custom nbd filter to achieve the same thing.</p>
]]></description><pubDate>Fri, 28 Mar 2025 18:24:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=43508534</link><dc:creator>jacobwg</dc:creator><comments>https://news.ycombinator.com/item?id=43508534</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43508534</guid></item><item><title><![CDATA[New comment by jacobwg in "Disk I/O bottlenecks in GitHub Actions"]]></title><description><![CDATA[
<p>Today we (Depot) are not, though some of our customers configure this. For the moment at least, the ephemeral public IP architecture makes it generally unnecessary from a rate-limit perspective.<p>From a performance / efficiency perspective, we generally recommend using ECR Public images[0], since AWS hosts mirrors of all the "Docker official" images, and throughput to ECR Public is great from inside AWS.<p>[0] <a href="https://gallery.ecr.aws/" rel="nofollow">https://gallery.ecr.aws/</a></p>
]]></description><pubDate>Fri, 28 Mar 2025 17:57:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=43508270</link><dc:creator>jacobwg</dc:creator><comments>https://news.ycombinator.com/item?id=43508270</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43508270</guid></item><item><title><![CDATA[New comment by jacobwg in "Disk I/O bottlenecks in GitHub Actions"]]></title><description><![CDATA[
<p>The block level has two advantages: (1) you can accelerate access to everything on the whole disk (like even OS packages) and (2) everything appears as one device to the OS, meaning that build tools that want to do things like hardlink files in global caches still work without any issue.</p>
]]></description><pubDate>Fri, 28 Mar 2025 17:35:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=43508048</link><dc:creator>jacobwg</dc:creator><comments>https://news.ycombinator.com/item?id=43508048</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43508048</guid></item><item><title><![CDATA[New comment by jacobwg in "Disk I/O bottlenecks in GitHub Actions"]]></title><description><![CDATA[
<p>A list of fun things we've done for CI runners to improve CI:<p>- Configured a block-level in-memory disk accelerator / cache (fs operations at the speed of RAM!)<p>- Benchmarked EC2 instance types (m7a is the best x86 today, m8g is the best arm64)<p>- "Warming" the root EBS volume by accessing a set of priority blocks before the job starts to give the job full disk performance [0]<p>- Launching each runner instance in a public subnet with a public IP - the runner gets full throughput from AWS to the public internet, and IP-based rate limits rarely apply (Docker Hub)<p>- Configuring Docker with containerd/estargz support<p>- Just generally turning kernel options and unit files off that aren't needed<p>[0] <a href="https://docs.aws.amazon.com/ebs/latest/userguide/ebs-initialize.html" rel="nofollow">https://docs.aws.amazon.com/ebs/latest/userguide/ebs-initial...</a></p>
]]></description><pubDate>Fri, 28 Mar 2025 16:48:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=43507512</link><dc:creator>jacobwg</dc:creator><comments>https://news.ycombinator.com/item?id=43507512</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43507512</guid></item><item><title><![CDATA[New comment by jacobwg in "Disk I/O bottlenecks in GitHub Actions"]]></title><description><![CDATA[
<p>We're having some success with doing this at the block level (e.g. in-memory writeback cache).</p>
]]></description><pubDate>Fri, 28 Mar 2025 16:07:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=43507095</link><dc:creator>jacobwg</dc:creator><comments>https://news.ycombinator.com/item?id=43507095</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43507095</guid></item><item><title><![CDATA[New comment by jacobwg in "Disk I/O bottlenecks in GitHub Actions"]]></title><description><![CDATA[
<p>I'd love to experiment with that and/or flags like `noatime`, especially when CI nodes are single-use and ephemeral.</p>
]]></description><pubDate>Fri, 28 Mar 2025 16:04:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=43507062</link><dc:creator>jacobwg</dc:creator><comments>https://news.ycombinator.com/item?id=43507062</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43507062</guid></item><item><title><![CDATA[Disk I/O bottlenecks in GitHub Actions]]></title><description><![CDATA[
<p>Article URL: <a href="https://depot.dev/blog/uncovering-disk-io-bottlenecks-github-actions-ci">https://depot.dev/blog/uncovering-disk-io-bottlenecks-github-actions-ci</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=43506574">https://news.ycombinator.com/item?id=43506574</a></p>
<p>Points: 106</p>
<p># Comments: 72</p>
]]></description><pubDate>Fri, 28 Mar 2025 15:22:36 +0000</pubDate><link>https://depot.dev/blog/uncovering-disk-io-bottlenecks-github-actions-ci</link><dc:creator>jacobwg</dc:creator><comments>https://news.ycombinator.com/item?id=43506574</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43506574</guid></item><item><title><![CDATA[A Shell for the Container Age: Introducing Dagger Shell]]></title><description><![CDATA[
<p>Article URL: <a href="https://dagger.io/blog/dagger-shell">https://dagger.io/blog/dagger-shell</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=43491654">https://news.ycombinator.com/item?id=43491654</a></p>
<p>Points: 4</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 27 Mar 2025 09:12:06 +0000</pubDate><link>https://dagger.io/blog/dagger-shell</link><dc:creator>jacobwg</dc:creator><comments>https://news.ycombinator.com/item?id=43491654</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43491654</guid></item><item><title><![CDATA[New comment by jacobwg in "Ask HN: Who is hiring? (March 2025)"]]></title><description><![CDATA[
<p>Depot | Founding Developer Marketer | Remote (US / EU) | Full-time<p>Depot is a build acceleration platform that makes Docker builds and GitHub Actions faster. We've already helped companies like PostHog, Wistia, Semgrep, and Secoda save thousands of hours in build time every week.<p>We're looking for our first marketing hire to define and execute our go-to-market strategy. If that's you, you'll own everything from content creation to demand gen, with a focus on developer audiences. We're growing rapidly with 500+ paying customers and double-digit monthly growth.<p>Requirements:<p>* 5+ years marketing experience with a focus on developer audiences<p>* Experience with content marketing, SEO, social, and email campaigns<p>* Comfortable with analytics tools (Google Analytics, ahrefs, PostHog)<p>* Experience with paid channels (LinkedIn, Reddit, etc.)<p>* Strong communication skills and ability to work asynchronously<p>Apply here: <a href="https://www.ycombinator.com/companies/depot/jobs/307RqGp-founding-developer-marketer">https://www.ycombinator.com/companies/depot/jobs/307RqGp-fou...</a><p>Tech stack: Remix, TypeScript, Go<p>We're a small, remote team building developer tools we wish we've had. If you're passionate about developer productivity and marketing to technical audiences, we'd love to hear from you.</p>
]]></description><pubDate>Mon, 03 Mar 2025 18:27:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=43245010</link><dc:creator>jacobwg</dc:creator><comments>https://news.ycombinator.com/item?id=43245010</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43245010</guid></item></channel></rss>