<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Igor writes to the internet</title><link>https://blog.hotorcelexo.site/</link><description>Recent content on Igor writes to the internet</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Sat, 14 Nov 2026 00:00:00 +0300</lastBuildDate><atom:link href="https://blog.hotorcelexo.site/feed.xml" rel="self" type="application/rss+xml"/><item><title>From LLM review to the wrong protocol: how I tested a Go driver for Informix</title><link>https://blog.hotorcelexo.site/posts/llm-review-informix-go-driver/</link><pubDate>Sat, 14 Nov 2026 00:00:00 +0300</pubDate><guid>https://blog.hotorcelexo.site/posts/llm-review-informix-go-driver/</guid><description>&lt;figure id="pic-1" class="article-figure"&gt;
 &lt;a href="https://blog.hotorcelexo.site/images/go-informix.jpg"&gt;
 &lt;img src="https://blog.hotorcelexo.site/images/go-informix.jpg" alt="Go driver connected to an Informix database before hitting a protocol mismatch" loading="lazy" decoding="async" /&gt;
 &lt;/a&gt;
 &lt;figcaption&gt;&lt;strong&gt;Pic. 1.&lt;/strong&gt; A working test connection hid the protocol mismatch that blocked production use.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;At work, I needed to rewrite a piece of legacy code from Perl to Go. The code itself was well established, and there were no real problems with it. The problem was a dependency: the main database was still Informix.&lt;/p&gt;
&lt;p&gt;Let us skip my explanation of why it had to be Informix. &amp;ldquo;Historical reasons,&amp;rdquo; as one of my old team leads used to say.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Informix is a database with a long history. It was once a major player, but today it is a fairly niche technology. It is still developed and used in production, but finding a modern Go library for it is much harder than for PostgreSQL or MySQL.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A year earlier, I had already looked for a suitable adapter. I found IfxGo &lt;a class="citation" href="https://blog.hotorcelexo.site/posts/llm-review-informix-go-driver/#ref-1"&gt;[1]&lt;/a&gt;
, an old fork made specifically for Informix, and its base project, the general-purpose ODBC driver &lt;a class="citation" href="https://blog.hotorcelexo.site/posts/llm-review-informix-go-driver/#ref-2"&gt;[2]&lt;/a&gt;
. I could not get them to work properly back then, so I had to put the refactoring idea aside.&lt;/p&gt;
&lt;p&gt;This time I found go_ibm_db &lt;a class="citation" href="https://blog.hotorcelexo.site/posts/llm-review-informix-go-driver/#ref-3"&gt;[3]&lt;/a&gt;
. At first glance, it looked like a ready-made solution: the project had been alive since 2018, the repository had about 280 commits, it had a Bun &lt;a class="citation" href="https://blog.hotorcelexo.site/posts/llm-review-informix-go-driver/#ref-4"&gt;[4]&lt;/a&gt;
 integration, and it had more than a hundred stars on GitHub. That was no guarantee of quality, of course, but it still looked better than an abandoned fork with no releases.&lt;/p&gt;
&lt;p&gt;I started Informix in a container, installed IBM CLI Driver, connected to it, and read some data. Everything worked on the first try.&lt;/p&gt;
&lt;p&gt;I was delighted. The refactoring I had postponed for about a year suddenly stopped looking like a problem. All I had to do was add the library and write the code.&lt;/p&gt;</description></item><item><title>Go 1.21 vs 1.26 on gorush: Green Tea lost this round</title><link>https://blog.hotorcelexo.site/posts/go-1-21-vs-go-1-26-on-gorush/</link><pubDate>Fri, 31 Jul 2026 13:45:00 +0300</pubDate><guid>https://blog.hotorcelexo.site/posts/go-1-21-vs-go-1-26-on-gorush/</guid><description>&lt;p&gt;We recently brought a long-lived internal fork of appleboy/gorush &lt;a class="citation" href="https://blog.hotorcelexo.site/posts/go-1-21-vs-go-1-26-on-gorush/#ref-1"&gt;[1]&lt;/a&gt;
 back up to date and moved its build from roughly Go 1.21.1 to Go 1.26. The upgrade was necessary. It was also a good excuse to test a claim that often slips into migration reports without evidence: “the new Go runtime made it faster.”&lt;/p&gt;
&lt;p&gt;It did not-not with the default collector in the local hot paths I measured.&lt;/p&gt;</description></item><item><title>About</title><link>https://blog.hotorcelexo.site/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.hotorcelexo.site/about/</guid><description>&lt;p&gt;I am a Senior Go Developer focused on payments, distributed systems, integrations, and backend infrastructure. I prefer explicit architecture, observable services, and boring technology that is easy to operate.&lt;/p&gt;
&lt;h2 id="experience"&gt;Experience&lt;/h2&gt;
&lt;h3 id="confidential---senior-go-developer"&gt;Confidential - Senior Go Developer&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;2025 - Present · Remote&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Stack:&lt;/strong&gt; Go, gRPC, PostgreSQL, Kafka, Redis, Kubernetes, Thales TPC SDK, Mastercard MDES, OpenAPI&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Developed issuer-side card tokenization for Apple Pay and Google Pay: push/manual provisioning, token lifecycle, and webhooks.&lt;/li&gt;
&lt;li&gt;Integrated Thales TPC SDK and Mastercard MDES APIs, including activation paths and PIN management.&lt;/li&gt;
&lt;li&gt;Built idempotent gRPC/REST gateways with end-to-end correlation across bank, processor, TSP, and MDES systems.&lt;/li&gt;
&lt;li&gt;Investigated cross-system incidents involving network traces, cryptographic errors, and observability gaps while keeping PCI DSS scope minimal.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="sendsay-internet-projects---senior-go-developer"&gt;Sendsay (Internet Projects) - Senior Go Developer&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;2023 - 2025 · Remote&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>