<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>@CGA1123's home on the internet</title><link>https://blog.bissy.io/</link><description>Recent content on @CGA1123's home on the internet</description><generator>Hugo -- gohugo.io</generator><language>en-gb</language><copyright>Christian Gregg</copyright><lastBuildDate>Sat, 29 Jul 2023 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.bissy.io/index.xml" rel="self" type="application/rss+xml"/><item><title>🗃 Caching Go Binaries</title><link>https://blog.bissy.io/posts/gobincache/</link><pubDate>Sat, 29 Jul 2023 00:00:00 +0000</pubDate><guid>https://blog.bissy.io/posts/gobincache/</guid><description>I shipped gobincache this past week, after learning about the debug/buildinfo package &amp;amp; getting annoyed at having to wait around for my builds to install some Go binaries!
It reads the version of the module which the binary was built against &amp;amp; the version of that module in your go.mod file and lets you know whether they&amp;rsquo;ve drifted. So you can only go install when you need to and cache those binaries without needing to worry too much about drift (just make sure your cache key in CI is also reasonable, based on Go version, architecture, etc.</description></item><item><title>Logos &amp; Pictures of stuff</title><link>https://blog.bissy.io/logos/</link><pubDate>Thu, 27 Jul 2023 00:00:00 +0000</pubDate><guid>https://blog.bissy.io/logos/</guid><description> Stir Coffee, Brixton Hill The Pavement, Clapham Common Dulwich Road, Herne Hill Spizza @ London Bridge Scriven Street, Hackney 13th Floor Coffee @ Stoke Newington Eetcafé Lambik @ Groningen A Bird @ Vienna Pizza Randale @ Vienna 75&amp;#39; Slices @ Canada Water Sunday Market MEZZO @ Lower Stable Street Markt Pizza Hut @ Leicester Square Voodoo Ray&amp;#39;s @ Dalston A bin @ Soho House Festival</description></item><item><title>🚢 Ship faster with git-tree based caching</title><link>https://blog.bissy.io/posts/merge_to_deploy_in_a_minute/</link><pubDate>Sat, 26 Feb 2022 00:00:00 +0000</pubDate><guid>https://blog.bissy.io/posts/merge_to_deploy_in_a_minute/</guid><description>TL;DR: Run CI less on your default branch by caching builds based on git tree hashes
A fairly common development workflow is the following:
Write some code Open a PR Wait for CI Merge Wait for CI (again 🥱) Wait for deploy As your team and codebase grows, build times start to creep up, suddenly CI is taking &amp;gt;10mins and as a consequence so are deploys &amp;ndash; especially if you aren&amp;rsquo;t building deploy artifacts as concurrently to running your test suite.</description></item><item><title>Hi There 🌊</title><link>https://blog.bissy.io/about/</link><pubDate>Sat, 13 Nov 2021 00:00:00 +0000</pubDate><guid>https://blog.bissy.io/about/</guid><description>My name&amp;rsquo;s Christian (he/him), I&amp;rsquo;m part of the engineering team @ Lollipop, helping you and your household eat and shop more healthily and sustainably. 🍭
I used to be a developer on the Actions Core team @ GitHub, helping you and your team automate all the things and deliver value faster more easily. 🤖
Before that I was @ carwow, helping to build the best online car-buying experience. 🚙
You can find some stuff I&amp;rsquo;ve written about in /posts and talk to me @CGA1123!</description></item><item><title>📈 Scaling Ruby on Rails on Heroku with Connection Pooling</title><link>https://blog.bissy.io/posts/scaling_ruby_on_rails_on_heroku_with_connection_pooling/</link><pubDate>Sat, 06 Feb 2021 00:00:00 +0000</pubDate><guid>https://blog.bissy.io/posts/scaling_ruby_on_rails_on_heroku_with_connection_pooling/</guid><description>The result of one trial in the experiment I ran to test out Connection Pooling, depicting P99 duration and queue times as well as average request success rate. Heroku recently made Connection Pooling for Heroku Postgres databases generally available. This is exciting! I decided to take a weekend to see how this might affect our ability to scale our Ruby on Rails applications at carwow.
In this post I want to go over the evolution of scaling an application from one dyno to many as your application gains traction.</description></item><item><title>🗜 Reducing Rails Memory Usage by ~15%</title><link>https://blog.bissy.io/posts/reducing_rails_memory_usage_by_15_percent/</link><pubDate>Sun, 24 Jan 2021 00:00:00 +0000</pubDate><guid>https://blog.bissy.io/posts/reducing_rails_memory_usage_by_15_percent/</guid><description>We recently deployed a change to our Puma configuration that led to a ~15% reduction in memory usage across all of our Ruby on Rails applications! In this post, I want to go over what that change was as well as a bit of a dive into why it worked.
Memory usage on one of our application If you are already familiar with Puma and the differences between running in single vs cluster mode then the TL;DR of this post is that we used to run puma in cluster mode with a single worker and have now changed that to running in single mode, simple as that 😄</description></item><item><title>🗂 Speeding up our Rails apps with asynchronous cache writes</title><link>https://blog.bissy.io/posts/speeding_up_rails_with_async_caching/</link><pubDate>Fri, 21 Aug 2020 00:00:00 +0000</pubDate><guid>https://blog.bissy.io/posts/speeding_up_rails_with_async_caching/</guid><description>At carwow our applications can be chatty, making one or several API calls to each other in order to fulfil a request. In fact, around 48% of all user-facing requests in the last 7 days made at least one API request to another one of our applications before responding.
Average % of user-facing requests making at least 1 (internal) API call over a 7 day period (48%) One of the tools we use to reduce the strain we put between our applications is caching.</description></item><item><title>🔙 Backfilling 50 million records, quickly</title><link>https://blog.bissy.io/posts/backfilling_quickly/</link><pubDate>Thu, 11 Jun 2020 00:00:00 +0000</pubDate><guid>https://blog.bissy.io/posts/backfilling_quickly/</guid><description>Over the last few months at carwow, a small team have reworked the way in which we process and propagate pricing changes made by dealerships, manufacturers, and governments, and the user-facing quotes which depend on them.
The database table which holds user-facing quotes (known as the factory_order_quotes table) is one of the largest, oldest, and most-used at carwow. Part of the work we had to carry out involved running numerous “backfills” in order to migrate specific enum values for the status column.</description></item><item><title>🌒 Shadow requesting for great good</title><link>https://blog.bissy.io/posts/shadow_request_for_great_good/</link><pubDate>Fri, 13 Dec 2019 00:00:00 +0000</pubDate><guid>https://blog.bissy.io/posts/shadow_request_for_great_good/</guid><description>Encouragingly, traffic to the carwow applications has grown significantly over the last couple of years, and of course we hope this trend continues. Our Software Engineering Tools &amp;amp; Infrastructure (SETI 👽) Team has the task of ensuring that our applications, infrastructure, and tooling continue evolving to support the business as it grows.
Recently, SETI has been investigating how our applications perform under significant increases in traffic. One of the methods we’ve used is commonly known shadow requesting, and it’s been useful enough to us that I’d like to share it here.</description></item><item><title>🚀 Speeding up our deploys by ~35%</title><link>https://blog.bissy.io/posts/speeding_up_heroku_deploys/</link><pubDate>Thu, 15 Aug 2019 00:00:00 +0000</pubDate><guid>https://blog.bissy.io/posts/speeding_up_heroku_deploys/</guid><description>Having a Continuous Integration/Continuous Deployment pipeline is the industry standard nowadays. CI/CD is great and has a very well documented list of benefits. However, one of the drawbacks is how slow the pipeline can become as your codebase grows.
At carwow, we have already taken many steps to try and ship faster, without compromising on the reliability and safeguards that a good CI/CD pipeline offers us.
Some of the things we do involve:</description></item></channel></rss>