<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
>
	<channel>
		<title>Bradford Hovinen</title>
		<description>Bradford Hovinen, freelance IT consultant and software engineer</description>		
		<sy:updatePeriod>daily</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
		<link>https://hovinen.tech</link>
		<atom:link href="https://hovinen.tech/feed.xml" rel="self" type="application/rss+xml" />
		<lastBuildDate>Wed, 24 Jun 2026 00:00:00 +0000</lastBuildDate>
		
		
			<item>
				<title>Introducing Test That!</title>
				
				
					<description>&lt;p&gt;I’m excited to announce the release of &lt;a href=&quot;https://crates.io/crates/test-that&quot;&gt;Test That!&lt;/a&gt;, a powerful
library for test assertions in Rust. It is a fork of &lt;a href=&quot;https://crates.io/crates/googletest&quot;&gt;GoogleTest Rust&lt;/a&gt;.&lt;/p&gt;

</description>
				
				<pubDate>Wed, 24 Jun 2026 00:00:00 +0000</pubDate>
				<link>https://hovinen.tech/announcements/2026/06/24/introducing-test-that.html</link>
				<guid isPermaLink="true">https://hovinen.tech/announcements/2026/06/24/introducing-test-that.html</guid>
			</item>
		
			<item>
				<title>On AI-assisted programming</title>
				
				
					<description>&lt;p&gt;AI code generation is all the rage nowadays.&lt;/p&gt;

&lt;p&gt;It’s not hard to see why. Look at it from a business leader’s perspective. Imagine not having to pay
expensive developers whom you have to train for years before they start really producing quality
work. Who demand more and more money and perks on top of that. Who loudly and
&lt;a href=&quot;https://www.bbc.com/news/business-44341490&quot;&gt;publicly&lt;/a&gt;
&lt;a href=&quot;https://apnews.com/article/technology-business-f822d49550b8b2c9930eac9946283e36&quot;&gt;protest&lt;/a&gt; your
business decisions. Just have an AI write the code instead! It never complains, never grows tired.
It just chugs out code as long as you ask.&lt;/p&gt;

&lt;p&gt;On the surface, the code these tools generate is plausible. Sometimes it even does what it’s
supposed to. And even when it stumbles, it feels that these tools are improving at such a rapid pace
that the next generation in a few months will easily handle whatever the existing generation cannot.&lt;/p&gt;

&lt;p&gt;A lot has been written about what AI-assisted tools can and cannot do. There’s been a lot of
consternation about whether these tools will make software developers obsolete. I feel this
discourse represents a misunderstanding of what software development is all about. The questions on
my mind are rather: what will be the effect of the use of these tools on the software we develop?
And will they ultimately live up to their hype or will this be more of a passing fad?&lt;/p&gt;

&lt;p&gt;I recently did my own experiments to gain experience and form my own opinion. Here is how I think
about it.&lt;/p&gt;

</description>
				
				<pubDate>Sat, 30 Aug 2025 00:00:00 +0000</pubDate>
				<link>https://hovinen.tech/software-development/2025/08/30/ai-assisted-coding.html</link>
				<guid isPermaLink="true">https://hovinen.tech/software-development/2025/08/30/ai-assisted-coding.html</guid>
			</item>
		
			<item>
				<title>Experimenting with high performance Rust</title>
				
				
					<description>&lt;p&gt;A few weeks ago I attended a “hacking session” organized by the Rust Munich meetup. The participants
competed on a single task: given one billion temperature measurements from about 10000 different
weather stations, output aggregate statistics for each station. The goal was to write a program
which reads the input from a file and produces the output as quickly as possible. This problem is
fascinating: quite simple yet illustrating a lot of ideas about performance optimization. In this
blog post, I trace the journey from a naive solution to a highly performant one, reducing the
wall clock runtime by 97%.&lt;/p&gt;

</description>
				
				<pubDate>Sat, 11 Jan 2025 00:00:00 +0000</pubDate>
				<link>https://hovinen.tech/blog/2025/01/11/experimenting-with-high-performance-rust/</link>
				<guid isPermaLink="true">https://hovinen.tech/blog/2025/01/11/experimenting-with-high-performance-rust/</guid>
			</item>
		
			<item>
				<title>What do we want in a test suite?</title>
				
				
					<description>&lt;p&gt;I remember the “dark ages” of software development, when automated testing was still an exotic idea.
One had to be careful not to change too much, lest it all break and come crashing down. One was
&lt;em&gt;afraid&lt;/em&gt; to touch the software. Refactoring was taboo. “Don’t touch a running system” and “if it
ain’t broke, don’t fix it” were the slogans of the day. The software would inevitably rot into an
unmaintainable mess. Any changes at all would be prohibitively expensive, so one would change as
little as possible.&lt;/p&gt;

</description>
				
				<pubDate>Fri, 25 Oct 2024 00:00:00 +0000</pubDate>
				<link>https://hovinen.tech/blog/2024/10/25/what-do-we-want-in-a-test-suite/</link>
				<guid isPermaLink="true">https://hovinen.tech/blog/2024/10/25/what-do-we-want-in-a-test-suite/</guid>
			</item>
		
			<item>
				<title>Machine Learning in Rust, Part 3: Practical experiments</title>
				
				
					<description>&lt;p&gt;This is the last of a three-part series on machine learning in Rust. Find the first part
&lt;a href=&quot;/blog/2024/04/27/machine-learning-in-rust-part-1/&quot;&gt;here&lt;/a&gt; and the second part
&lt;a href=&quot;/blog/2024/04/29/machine-learning-in-rust-part-2/&quot;&gt;here&lt;/a&gt;. In this part, I will show some
experimental results I obtained trying out the techniques I have discussed.&lt;/p&gt;

</description>
				
				<pubDate>Thu, 02 May 2024 00:00:00 +0000</pubDate>
				<link>https://hovinen.tech/blog/2024/05/02/machine-learning-in-rust-part-3/</link>
				<guid isPermaLink="true">https://hovinen.tech/blog/2024/05/02/machine-learning-in-rust-part-3/</guid>
			</item>
		
			<item>
				<title>Machine Learning in Rust, Part 2: The Ecosystem</title>
				
				
					<description>&lt;p&gt;This is part two of a three-part series on machine learning in Rust. Find the first part
&lt;a href=&quot;/blog/2024/04/27/machine-learning-in-rust-part-1/&quot;&gt;here&lt;/a&gt;. In this part, we discuss what the Rust
machine learning ecosystem has to offer: what crates exist, what they can do, and a bit on how to
use them.&lt;/p&gt;

</description>
				
				<pubDate>Mon, 29 Apr 2024 00:00:00 +0000</pubDate>
				<link>https://hovinen.tech/blog/2024/04/29/machine-learning-in-rust-part-2/</link>
				<guid isPermaLink="true">https://hovinen.tech/blog/2024/04/29/machine-learning-in-rust-part-2/</guid>
			</item>
		
			<item>
				<title>Machine Learning in Rust, Part 1: A game player AI</title>
				
				
					<description>&lt;p&gt;This is part one of a three-part series on my experiments working with machine learning in Rust and
its ecosystem. This installment discusses my motivation this topic as well as its theoretical
underpinnings. In the second installment, I will discuss what crates exist to do machine learning in
Rust. The third installment will discuss the results of my experimentation in the area.&lt;/p&gt;

</description>
				
				<pubDate>Sat, 27 Apr 2024 00:00:00 +0000</pubDate>
				<link>https://hovinen.tech/blog/2024/04/27/machine-learning-in-rust-part-1/</link>
				<guid isPermaLink="true">https://hovinen.tech/blog/2024/04/27/machine-learning-in-rust-part-1/</guid>
			</item>
		
			<item>
				<title>Clean Code, Horrible Performance. So what?</title>
				
				
					<description>&lt;p&gt;Last year, Casey Muratori published a &lt;a href=&quot;https://www.computerenhance.com/p/clean-code-horrible-performance&quot;&gt;blog post&lt;/a&gt; and YouTube video ‘“Clean” Code, horrible performance’, generating a great deal of discussion. The article and its discussion struck a nerve with me. Reflecting on it, I have refined my own thinking about what Clean Code really means and why it is important.&lt;/p&gt;

</description>
				
				<pubDate>Mon, 08 Apr 2024 00:00:00 +0000</pubDate>
				<link>https://hovinen.tech/blog/2024/04/08/clean-code-horrible-performance-so-what/</link>
				<guid isPermaLink="true">https://hovinen.tech/blog/2024/04/08/clean-code-horrible-performance-so-what/</guid>
			</item>
		
			<item>
				<title>Migrating my blog</title>
				
				
					<description>&lt;p&gt;I have decided to move all entries on my personal blog related to software development over to my
&lt;a href=&quot;https://hovinen.tech&quot;&gt;professional website&lt;/a&gt;. This puts my technical content in one place and makes
it easier to compose and manage my blog entries.&lt;/p&gt;

</description>
				
				<pubDate>Thu, 04 Apr 2024 00:00:00 +0000</pubDate>
				<link>https://hovinen.tech/blog/2024/04/04/migrating-my-blog/</link>
				<guid isPermaLink="true">https://hovinen.tech/blog/2024/04/04/migrating-my-blog/</guid>
			</item>
		
			<item>
				<title>Exploring the AWS Lambda SDK in Rust</title>
				
				
					<description>&lt;p&gt;Recently the general availability of the &lt;a href=&quot;https://aws.amazon.com/sdk-for-rust/&quot;&gt;AWS SDK for Rust&lt;/a&gt; was &lt;a href=&quot;https://aws.amazon.com/blogs/developer/announcing-general-availability-of-the-aws-sdk-for-rust/&quot;&gt;announced&lt;/a&gt;. I thought this might be a good occasion to write about my recent experiences writing and testing with AWS Lambda and Rust.&lt;/p&gt;


</description>
				
				<pubDate>Thu, 07 Dec 2023 14:39:18 +0000</pubDate>
				<link>https://hovinen.tech/blog/2023/12/07/exploring-the-aws-lambda-sdk-in-rust/</link>
				<guid isPermaLink="true">https://hovinen.tech/blog/2023/12/07/exploring-the-aws-lambda-sdk-in-rust/</guid>
			</item>
		
	</channel>
</rss>
