<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Blog by Petro Liashchynskyi</title><description>Software Development, Machine Learning and other stuff.</description><link>https://liashchynskyi.net/</link><language>en-us</language><item><title>What our NAS paper actually found | Grid vs. random vs. genetic, seven years on</title><link>https://liashchynskyi.net/posts/nas-grid-random-genetic/</link><guid isPermaLink="true">https://liashchynskyi.net/posts/nas-grid-random-genetic/</guid><description>In 2019 we ran three ordinary search algorithms against the problem of designing a convolutional network and timed them. It turned into by far the most cited thing I&apos;ve written — which says something about what people actually need from a paper.</description><pubDate>Wed, 12 Aug 2026 10:00:00 GMT</pubDate><category>machine-learning</category><category>neural-networks</category><category>nas</category><category>genetic-algorithm</category><category>optimisation</category></item><item><title>Engineer vs AI | It won&apos;t replace you, the throughput will</title><link>https://liashchynskyi.net/posts/engineer-vs-ai/</link><guid isPermaLink="true">https://liashchynskyi.net/posts/engineer-vs-ai/</guid><description>I resisted Cursor when my team adopted it, because I liked writing code by hand. Then I understood what had actually changed — and it wasn&apos;t the tooling.</description><pubDate>Wed, 12 Aug 2026 09:00:00 GMT</pubDate><category>ai</category><category>engineering-practice</category><category>career</category><category>cursor</category></item><item><title>MLOps when the model touches patients | What changes when ML is diagnostic</title><link>https://liashchynskyi.net/posts/mlops-for-clinical-machine-learning/</link><guid isPermaLink="true">https://liashchynskyi.net/posts/mlops-for-clinical-machine-learning/</guid><description>Most MLOps advice assumes you can ship fast, roll back, and A/B test in production. None of that holds when the model&apos;s output informs a cancer diagnosis. Notes from several years of research on biomedical image pipelines.</description><pubDate>Tue, 11 Aug 2026 09:19:18 GMT</pubDate><category>mlops</category><category>machine-learning</category><category>neural-networks</category><category>docker</category><category>ci-cd</category></item><item><title>From Gatsby to Astro | What actually broke when I rewrote this blog</title><link>https://liashchynskyi.net/posts/from-gatsby-to-astro/</link><guid isPermaLink="true">https://liashchynskyi.net/posts/from-gatsby-to-astro/</guid><description>I rewrote this blog from Gatsby v2 to Astro 7 — keeping every URL, dropping 1676 dependencies, and shipping one bug straight to production. Here are the parts the migration guides don&apos;t mention.</description><pubDate>Tue, 11 Aug 2026 08:40:00 GMT</pubDate><category>astro</category><category>gatsby</category><category>typescript</category><category>static-site</category><category>migration</category></item><item><title>Mastering Distributed Locks: Redlock Mutexes in Multi-Server Setup</title><link>https://liashchynskyi.net/posts/mastering-distributed-locks-redlock-mutexes-in-multi-server-setup/</link><guid isPermaLink="true">https://liashchynskyi.net/posts/mastering-distributed-locks-redlock-mutexes-in-multi-server-setup/</guid><description>This blog post delves into the advanced implementation of Redlock mutexes in distributed systems, exploring their crucial role in ensuring data consistency and preventing race conditions in multi-server environments.</description><pubDate>Thu, 07 Dec 2023 11:44:48 GMT</pubDate><category>lock</category><category>redis</category><category>redlock</category><category>mutex</category><category>multi-server</category></item><item><title>NestJS CODEX: auxiliaries for CRUD using Mongoose with transactions support</title><link>https://liashchynskyi.net/posts/nestjs-codex-auxiliaries-for-crud-using-mongoose-with-transactions-support/</link><guid isPermaLink="true">https://liashchynskyi.net/posts/nestjs-codex-auxiliaries-for-crud-using-mongoose-with-transactions-support/</guid><description>Repository provides a robust CRUD service using NestJS and Mongoose, designed to simplify the development of database interactions with built-in transaction support via Async Local Storage.</description><pubDate>Fri, 27 Oct 2023 12:44:24 GMT</pubDate><category>nestjs</category><category>mongoose</category><category>crud</category><category>async-local-storage</category><category>transactions</category></item><item><title>Machine Learning Intro Demystified</title><link>https://liashchynskyi.net/posts/machine-learning-intro-demystified/</link><guid isPermaLink="true">https://liashchynskyi.net/posts/machine-learning-intro-demystified/</guid><description>Overview of the basic concepts of machine learning and artificial intelligence.</description><pubDate>Fri, 21 Jul 2023 09:09:17 GMT</pubDate><category>machine-learning</category><category>neural-networks</category></item><item><title>Class method locking mechanisms in multi-server setup | How to manage multiple app replicas (instances)</title><link>https://liashchynskyi.net/posts/class-method-locking-mechanisms-in-multi-server-setup/</link><guid isPermaLink="true">https://liashchynskyi.net/posts/class-method-locking-mechanisms-in-multi-server-setup/</guid><description>We’ll learn how to use synchronisation mechanisms such as mutex and lock in order to execute desired class method only once in multi-server setup.</description><pubDate>Thu, 25 May 2023 21:04:44 GMT</pubDate><category>mutex</category><category>lock</category><category>semaphore</category><category>redis</category><category>cron</category><category>oop</category><category>classes</category><category>replicas</category></item><item><title>ExcelJS: Merge CSV or XLSX files into one</title><link>https://liashchynskyi.net/posts/exceljs-merge-csv-or-xlsx-files-into-one/</link><guid isPermaLink="true">https://liashchynskyi.net/posts/exceljs-merge-csv-or-xlsx-files-into-one/</guid><description>This short post is about to explain how to easily merge two or more CSV or XLSX files with the same structure into one using ExcelJS.</description><pubDate>Fri, 28 Apr 2023 08:21:01 GMT</pubDate><category>exceljs</category><category>nodejs</category><category>typescript</category></item><item><title>NestJS: Process high-load tasks using Queues</title><link>https://liashchynskyi.net/posts/nestjs-process-high-load-tasks-using-queues/</link><guid isPermaLink="true">https://liashchynskyi.net/posts/nestjs-process-high-load-tasks-using-queues/</guid><description>I&apos;ll teach you how to use Queues to process tasks that require a lot of computing time.</description><pubDate>Mon, 01 Aug 2022 21:09:05 GMT</pubDate><category>nestjs</category><category>high-load</category><category>queue</category><category>bull</category></item><item><title>NestJS: Webhook transmitter (send event to other urls)</title><link>https://liashchynskyi.net/posts/nestjs-webhook-transmitter/</link><guid isPermaLink="true">https://liashchynskyi.net/posts/nestjs-webhook-transmitter/</guid><description>What if a 3rd-service accepts only one webhook URL? In that case we can transmit webhook event to any other endpoint.</description><pubDate>Tue, 28 Jun 2022 07:23:09 GMT</pubDate><category>nestjs</category><category>axios</category><category>webhook</category></item><item><title>NestJS: Custom validator for checking relationship with Mongo model</title><link>https://liashchynskyi.net/posts/nestjs-custom-relationship-validator/</link><guid isPermaLink="true">https://liashchynskyi.net/posts/nestjs-custom-relationship-validator/</guid><description>Build custom class-validator decorator in NestJS to ensure that provided ID in any DTO exists in Mongo database. </description><pubDate>Sun, 26 Jun 2022 16:06:23 GMT</pubDate><category>nestjs</category><category>typescript</category><category>mongo</category><category>mongoose</category><category>class-validator</category></item><item><title>Cron jobs in multi-server setup (AWS)</title><link>https://liashchynskyi.net/posts/cron-jobs-in-multi-server-setup/</link><guid isPermaLink="true">https://liashchynskyi.net/posts/cron-jobs-in-multi-server-setup/</guid><description>The article is about how to manage cron jobs in multi-server setup</description><pubDate>Tue, 02 Nov 2021 13:36:49 GMT</pubDate><category>aws</category><category>lambda</category><category>eventbridge</category></item><item><title>Syncing PostgreSQL tables with ElasticSearch using Docker</title><link>https://liashchynskyi.net/posts/syncing-postgresql-tables-with-elasticsearch/</link><guid isPermaLink="true">https://liashchynskyi.net/posts/syncing-postgresql-tables-with-elasticsearch/</guid><description>Let&apos;s talk about how to sync data between PostgreSQL and ElasticSearch easily (or not).</description><pubDate>Sat, 07 Aug 2021 18:53:04 GMT</pubDate><category>postgresql</category><category>elasticsearch</category><category>docker</category><category>redis</category></item><item><title>Connect Stripe to your web application</title><link>https://liashchynskyi.net/posts/connect-stripe-to-your-application/</link><guid isPermaLink="true">https://liashchynskyi.net/posts/connect-stripe-to-your-application/</guid><description>Today I want to share with you some of my thoughts about integrating Stripe into a web application. </description><pubDate>Thu, 17 Jun 2021 17:05:09 GMT</pubDate><category>stripe</category><category>payments</category><category>javascript</category></item><item><title>Simple neural network using JavaScript</title><link>https://liashchynskyi.net/posts/simple-neural-network-using-javascript/</link><guid isPermaLink="true">https://liashchynskyi.net/posts/simple-neural-network-using-javascript/</guid><description>Today, I am going to tell you how to build a simple neural network with JavaScript without using any AI frameworks.</description><pubDate>Fri, 07 May 2021 08:47:44 GMT</pubDate><category>neural-networks</category><category>javascript</category></item></channel></rss>