<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Kevin Robayna</title><link>https://kevinrobayna.com/</link><description>Recent content on Kevin Robayna</description><generator>Hugo</generator><language>en-gb</language><lastBuildDate>Mon, 16 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://kevinrobayna.com/index.xml" rel="self" type="application/rss+xml"/><item><title>PostgreSQL Partition Tables: A Practical Guide</title><link>https://kevinrobayna.com/posts/postgresql-partition-tables/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://kevinrobayna.com/posts/postgresql-partition-tables/</guid><description>&lt;p&gt;Picture this: you have a table that started small and innocent, maybe a few thousand rows. Fast-forward a couple of
years, and it has grown to hundreds of millions of rows. Your queries are getting slower, vacuuming takes forever, and you
start wondering if there is a better way to organize all the data.&lt;/p&gt;
&lt;p&gt;Let me introduce Partition Tables. PostgreSQL has supported native table partitioning since version 10, and it is one
of those features that can genuinely transform the way your database handles large datasets. But like most powerful
tools,
it comes with its own set of tradeoffs that you need to understand before jumping in.&lt;/p&gt;</description></item><item><title>Solve your own problems!</title><link>https://kevinrobayna.com/posts/solve-your-own-problems/</link><pubDate>Wed, 07 Feb 2024 00:00:00 +0000</pubDate><guid>https://kevinrobayna.com/posts/solve-your-own-problems/</guid><description>&lt;p&gt;Ever since I started working as a software engineer, I&amp;rsquo;ve noticed there are two things I&amp;rsquo;m always asked about. The first is what kind of things I build. The second, which happens as soon as they listen to my accent and ask me where I&amp;rsquo;m from, is why on earth would I leave Tenerife&amp;rsquo;s weather to come to the UK. Today we are only going to focus on the first one &amp;#x1f61b;&lt;/p&gt;</description></item><item><title>Farewell ShipIt, Hello Merge Queue!</title><link>https://kevinrobayna.com/posts/farewell-shipit-hello-merge-queue/</link><pubDate>Fri, 10 Nov 2023 00:00:00 +0000</pubDate><guid>https://kevinrobayna.com/posts/farewell-shipit-hello-merge-queue/</guid><description>&lt;p&gt;In my article &lt;a href="https://kevinrobayna.com/posts/avoid-breaking-main-branch"&gt;Avoid Breaking Main Branch&lt;/a&gt; I talked about ShipIt &amp;#x1f43f;&amp;#xfe0f;, our
solution to the productivity issues caused by enabling the requirement that all PullRequest have to be up-to-date before
merging. We had enabled checks on PullRequest to avoid logical conflicts breaking the build on main. Shipit allowed us
to avoid queuing manually to get our changes merged and instead would do it automatically.&lt;/p&gt;
&lt;p&gt;Today, I want to explain to you how you can achieve similar results by using GitHub&amp;rsquo;s own feature, the Merge Queue.&lt;/p&gt;</description></item><item><title>Java, is it that bad?</title><link>https://kevinrobayna.com/posts/java-is-it-that-bad/</link><pubDate>Mon, 13 Feb 2023 00:00:00 +0000</pubDate><guid>https://kevinrobayna.com/posts/java-is-it-that-bad/</guid><description>&lt;p&gt;At university, I took a course called &amp;ldquo;Interactive Application Programming&amp;rdquo; where I started using Java to learn how to make desktop applications that would run anywhere (thanks to the multiplatform properties of Java).&lt;/p&gt;
&lt;p&gt;Back then, more experienced programmers were already mentioning that Java was too verbose. To be honest, I also found it too much descriptive compared to what I had previously used (c++ and Ruby), as it required to &amp;ldquo;over-specify&amp;rdquo; everything.&lt;/p&gt;</description></item><item><title>Advent of Code is Here!</title><link>https://kevinrobayna.com/posts/advent-of-code/</link><pubDate>Tue, 29 Nov 2022 00:00:00 +0000</pubDate><guid>https://kevinrobayna.com/posts/advent-of-code/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Advent of Code is an Advent calendar of small programming puzzles for a variety of skill sets and skill levels that can be solved in any programming language you like. People use them as interview prep, company training, university coursework, practice problems, a speed contest, or to challenge each other.&lt;/p&gt;
&lt;p&gt;You don&amp;rsquo;t need a computer science background to participate - just a little programming knowledge and some problem solving skills will get you pretty far. Nor do you need a fancy computer; every problem has a solution that completes in at most 15 seconds on ten-year-old hardware.&lt;/p&gt;</description></item><item><title>Reflections about Clean Code</title><link>https://kevinrobayna.com/posts/reflections-abut-clean-code/</link><pubDate>Tue, 22 Nov 2022 00:00:00 +0000</pubDate><guid>https://kevinrobayna.com/posts/reflections-abut-clean-code/</guid><description>&lt;p&gt;Very early in my career, I read the Clean Code by &lt;a href="https://en.wikipedia.org/wiki/Robert_C._Martin"&gt;Robert C. Martin&lt;/a&gt;,
and I recently found some notes on key principles I took at the time. Now I still follow these principles to this day,
but in a different way. This journey down memory lane (or the &amp;rsquo;note&amp;rsquo; lane) made me realise that it&amp;rsquo;s important to
learn new things from knowledgeable authors or teachers, but it&amp;rsquo;s always better to make it yours if you want to be
consistent and successful over time.&lt;/p&gt;</description></item><item><title>Should you use REPL consoles?</title><link>https://kevinrobayna.com/posts/should-you-use-repl-consoles/</link><pubDate>Mon, 17 Oct 2022 00:00:00 +0000</pubDate><guid>https://kevinrobayna.com/posts/should-you-use-repl-consoles/</guid><description>&lt;p&gt;The first time I faced a REPL console was back at university in the Languages and Programming Paradigms lecture by the
great &lt;a href="https://www.linkedin.com/in/casiano-rodriguez-leon-15301110/"&gt;Casiano Rodriguez-Leon&lt;/a&gt;. We used
the &lt;a href="https://pry.github.io"&gt;pry&lt;/a&gt; console, as it was nicer than Ruby’s built-in one &lt;a href="https://github.com/ruby/irb"&gt;irb&lt;/a&gt;.
It was a really cool experience, as I was just able to type the code and run it. On top of that, the speed at which we
were typing new code and figuring out what worked or didn&amp;rsquo;t was far higher than with the most common language we used at
the university at the time, C++.&lt;/p&gt;</description></item><item><title>A pragmatic approach to agile</title><link>https://kevinrobayna.com/posts/a-pragmatic-approach-to-agile/</link><pubDate>Tue, 20 Sep 2022 00:00:00 +0000</pubDate><guid>https://kevinrobayna.com/posts/a-pragmatic-approach-to-agile/</guid><description>&lt;p&gt;I’ve been working as a software engineer for a while now(even started growing white hair!) working for companies in
different industries, within teams of various sizes and shapes. Throughout these experiences, I’ve got to realise that
some key factors contribute to making a team work well.&lt;/p&gt;
&lt;p&gt;When working in a company we are all part of teams that work together and rely on each other to deliver a great outcome,
either product, experience or service. In a way, we are similar to the different parts of a mechanical watch, each one
of us having a specific role to play so that other parts can achieve what they need to do. And, like with a watch, if we
all work in sync and fulfil our purpose, we can deliver the expected outcome with the expected level of quality. &amp;#x1f609;&lt;/p&gt;</description></item><item><title>Avoid breaking the main branch</title><link>https://kevinrobayna.com/posts/avoid-breaking-main-branch/</link><pubDate>Tue, 16 Aug 2022 00:00:00 +0000</pubDate><guid>https://kevinrobayna.com/posts/avoid-breaking-main-branch/</guid><description>&lt;p&gt;I&amp;rsquo;m calling the default branch main in this article, see reason
why &lt;a href="https://github.com/github/renaming"&gt;GitHub/renaming&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="why"&gt;Why?&lt;/h2&gt;
&lt;p&gt;Most teams I&amp;rsquo;ve worked on require a green main branch to deploy changes to &lt;code&gt;production&lt;/code&gt;, something breaking the main
branch means:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We cannot merge something to deliver something to our customers&lt;/li&gt;
&lt;li&gt;We cannot fix an issue that is preventing a customer from getting the value need&lt;/li&gt;
&lt;li&gt;Other members of the team might stop what they are doing to try to fix the issue, which means that they had to switch
their context to come back to what they were doing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We reduce the impact on the team by having a shared team where someone can take the issue and solve it and this is a
good culture to have, but you&amp;rsquo;re still affecting those who would look at the issue, or they are waiting on the issue to
be fixed to merge their changes.&lt;/p&gt;</description></item><item><title>Hello Hugo</title><link>https://kevinrobayna.com/posts/helloworld/</link><pubDate>Mon, 08 Aug 2022 00:00:00 +0000</pubDate><guid>https://kevinrobayna.com/posts/helloworld/</guid><description>&lt;h2 id="installation"&gt;Installation&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;m on Mac, so I&amp;rsquo;ll share the command I used, although you should follow hugo&amp;rsquo;s
installation &lt;a href="https://gohugo.io/getting-started/installing/"&gt;guide&lt;/a&gt; as they&amp;rsquo;ll do a better job than me at explaining
their software.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew install hugo
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Once you got it on your system you can simply run the following command to create your website!&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hugo new site my_website
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; my_website
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="themes"&gt;Themes&lt;/h2&gt;
&lt;p&gt;Hugo has a huge community of people who developed their own template and shared it with everyone else. This website it&amp;rsquo;s
using a theme called &lt;a href="https://github.com/HEIGE-PCloud/DoIt"&gt;Doit&lt;/a&gt; it&amp;rsquo;s very cool, and it&amp;rsquo;s based on other themes. If
you want to use a theme from the community you can check them &lt;a href="https://themes.gohugo.io"&gt;here&lt;/a&gt;. There&amp;rsquo;s lots of
different themes, and I&amp;rsquo;m pretty sure there&amp;rsquo;s something for you too!&lt;/p&gt;</description></item></channel></rss>