<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Software Development Blog</title><link>https://scorpil.com/</link><description>Recent content on Software Development Blog</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><copyright>Andrew Savchyn</copyright><lastBuildDate>Fri, 20 Jun 2025 09:00:00 +0000</lastBuildDate><atom:link href="https://scorpil.com/index.xml" rel="self" type="application/rss+xml"/><item><title>What the CAP Theorem Teaches Us About Engineering Organizations</title><link>https://scorpil.com/post/what-cap-theorem-teaches-us-about-engineering-organizations/</link><pubDate>Fri, 20 Jun 2025 09:00:00 +0000</pubDate><guid>https://scorpil.com/post/what-cap-theorem-teaches-us-about-engineering-organizations/</guid><description>Distributed systems are complex by nature. The more moving parts the system has — the more things can break. So over the decades that distributed systems became the norm, engineers have invented plenty of methodologies, principles, and mental shortcuts, to help us reason about distributed systems with less cognitive load.
One of the best-known examples of such a principle is the CAP theorem. The CAP theorem is relatively simple to understand — each distributed system is defined by the following three properties:</description></item><item><title>Understanding Generative AI: Part Two - Neural Networks</title><link>https://scorpil.com/post/understanding-generative-ai-part-two-neural-networks/</link><pubDate>Fri, 12 Jan 2024 13:30:00 +0200</pubDate><guid>https://scorpil.com/post/understanding-generative-ai-part-two-neural-networks/</guid><description>In Part One of the &amp;ldquo;Understanding Generative AI&amp;rdquo; series, we delved into Tokenization - the process of dividing text into tokens, which serve as the fundamental units of information for neural networks. These tokens are crucial in shaping how AI interprets and processes language. Building upon this foundational knowledge, we are now ready to explore Neural Networks - the cornerstone technology underpinning all Artificial Intelligence research.
A Short Look into the History Neural Networks, as a technology, have their roots in the 1940s and 1950s.</description></item><item><title>LLMs are an Index Into the Library of Babel</title><link>https://scorpil.com/post/llms-are-an-index-into-the-library-of-babel/</link><pubDate>Sun, 07 Jan 2024 16:30:00 +0000</pubDate><guid>https://scorpil.com/post/llms-are-an-index-into-the-library-of-babel/</guid><description>„The Library of Babel“ is my favorite short story from Jorge Luis Borges, and probably in a top 5 of my favorite short stories overall. In it author describes extremely large, yet finite, library containing myriads of rooms filled with books. Books contain all possible permutations of characters, and as such every possible book is in a library. Furthermore, every unwritten book is in the library. The library contains the story of your life, correct to the tiniest of details, as well as countless such biographies that are riddled with errors.</description></item><item><title>Ensuring JSON Response Format in OpenAI Assistant API</title><link>https://scorpil.com/post/ensuring-json-response-format-in-openai-assistant-api/</link><pubDate>Wed, 13 Dec 2023 11:50:00 +0000</pubDate><guid>https://scorpil.com/post/ensuring-json-response-format-in-openai-assistant-api/</guid><description>No time to read? Complete Python code can be found here. Enjoy!
Recently, OpenAI has released their newest set of APIs, designed to create robust AI Assistant applications. These APIs have numerous advantages over their &amp;ldquo;classical&amp;rdquo; chat completion counterparts, such as:
Persistent threads: Assistant &amp;ldquo;remembers&amp;rdquo; the conversation without the need of manual context management on the application level. Access to advanced tools that allow Assistant to browse the web and execute Python code.</description></item><item><title>Phoenix LiveView in Action</title><link>https://scorpil.com/post/phoenix-live-view-in-action/</link><pubDate>Fri, 08 Dec 2023 10:55:00 +0000</pubDate><guid>https://scorpil.com/post/phoenix-live-view-in-action/</guid><description>TL;DR: I used Phoenix LiveView to develop a simple planning poker app and found it exceptionally well-suited for the task.
The Elixir programming language, and arguably its strongest showcase, the Phoenix Framework, are technologies that, in my mind, are constantly on the edge of mainstream popularity. Both the language and the framework are exotic enough to present a significant learning challenge, yet many of their innovative features, such as built-in fault tolerance, cluster-awarness and real-time communication capabilities, justify the effort.</description></item><item><title>You (probably) don't need DateTime</title><link>https://scorpil.com/post/you-dont-need-datetime/</link><pubDate>Fri, 01 Dec 2023 16:23:00 +0000</pubDate><guid>https://scorpil.com/post/you-dont-need-datetime/</guid><description>It&amp;rsquo;s easy to make mistakes when dealing with date and time information. The way we measure time is very much irregular and it&amp;rsquo;s challenging for programmers to be thorough enough when describing time. It doesn&amp;rsquo;t help that time-related bugs often lead to issues that stay hidden until some exceptional date, like the 29th of February, or at leap second. Some of these issues can be avoided by choosing the correct format for temporal data representation.</description></item><item><title>Conversing with Vulnerabilities: AI-Assisted CVE Search</title><link>https://scorpil.com/post/conversing-with-vulnerabilities-ai-cve-search/</link><pubDate>Thu, 19 Oct 2023 20:42:00 +0200</pubDate><guid>https://scorpil.com/post/conversing-with-vulnerabilities-ai-cve-search/</guid><description>Artificial Intelligence is the latest and most revolutionary tool in today&amp;rsquo;s fast-changing technological landscape, which has the potential to redefine how we work, communicate, and innovate. AI simplifies complex tasks and drives next-generation solutions, making it a transformative power. The Retrieval-Augmented Generation (RAG) approach leads the charge in this digital revolution. It empowers AI systems to learn new skills, adapt, and overcome traditional limitations.
The core benefit of the RAG approach lies in its ability to combine the strengths of both retrieval-based and generative information processing.</description></item><item><title>Understanding Generative AI: Part One - Tokenizer</title><link>https://scorpil.com/post/understanding-generative-ai-part-one-tokenizer/</link><pubDate>Thu, 05 Oct 2023 14:30:00 +0200</pubDate><guid>https://scorpil.com/post/understanding-generative-ai-part-one-tokenizer/</guid><description>Welcome to the first article in a series that aims to provide a clear understanding of how modern AI models function. The goal is to explain the principles at work without delving into technical details like neural network architectures and mathematical foundations. This first entry focuses on model training and input tokenization. Future entries will cover common AI usage patterns like Chain-of-Thought, Retrieval Augmented Generation (RAG), ReAct agents, tools designed to simplify working with AI like LangChain, and many other topics.</description></item><item><title>An Overview of AWS Step Functions</title><link>https://scorpil.com/post/overview-of-aws-step-functions/</link><pubDate>Mon, 02 Oct 2023 09:40:20 +0200</pubDate><guid>https://scorpil.com/post/overview-of-aws-step-functions/</guid><description>One aspect I appreciate about working with AWS is its throve of fully managed, infinitely scalable services like DynamoDB, Lambda, SNS/SQS, S3, etc. Combining them makes it possible to create an infinitely scalable infrastructure without an upfront cost and avoid the extra effort required to manage dedicated servers or platforms like Kubernetes. Sometimes, this may lead to a situation where the project&amp;rsquo;s backend consists of dozens of services directly influencing each other, resembling some serverless Ruth-Goldberg machine.</description></item><item><title>The Long Road to HTTP/3</title><link>https://scorpil.com/post/the-long-road-to-http3/</link><pubDate>Tue, 20 Oct 2020 08:21:20 +0200</pubDate><guid>https://scorpil.com/post/the-long-road-to-http3/</guid><description>While HTTP/3 specification is still in the draft stage, the latest version of the Chrome browser already supports it by default. With Chrome holding around 70% of browser market share, you could say HTTP/3 has gone mainstream.
The new revision of this foundational protocol aims to make the web more efficient, secure, and shorten the content-delivery latencies. In some ways, it&amp;rsquo;s a braver take of HTTP2: similar goals addressed by replacing the underlying TCP protocol with a new, purpose-built protocol QUIC.</description></item><item><title>The Problem of Overfitting in Tech Hiring</title><link>https://scorpil.com/post/the-problem-of-overfitting-in-tech-hiring/</link><pubDate>Thu, 08 Oct 2020 08:35:52 +0200</pubDate><guid>https://scorpil.com/post/the-problem-of-overfitting-in-tech-hiring/</guid><description>When a tech company needs a skilled developer to work on a complex task, they naturally tend to look for somebody who has done the same thing before. Sound and obvious logic. It was applied long before the tech sector even emerged. If you were to hire, say, an auto mechanic, you&amp;rsquo;d do something similar. However, tech recruiting is unique in one peculiar factor: the level of specificity in job ads and screening interviews is insane.</description></item><item><title>Before You Start Coding</title><link>https://scorpil.com/post/before-you-start-coding/</link><pubDate>Thu, 01 Oct 2020 07:30:00 +0200</pubDate><guid>https://scorpil.com/post/before-you-start-coding/</guid><description>Full disclosure: things discussed in this post are, to be frank, quite obvious. My intent is not so much to teach a reader something new, as to remind him what might have been forgotten. After all, anyone who does a single kind of work daily for years inevitably develops habits and mental-shortcuts that are usually useful but can misfire from time to time. After all, software development is too complex and too technical to be guided by subconscious intuition.</description></item><item><title>Things Elixir's Phoenix Framework Does Right</title><link>https://scorpil.com/post/things-elixirs-phoenix-framework-does-right/</link><pubDate>Fri, 25 Sep 2020 07:30:34 +0000</pubDate><guid>https://scorpil.com/post/things-elixirs-phoenix-framework-does-right/</guid><description>I dabbled in Phoenix for a while now, but never really got my hands dirty with it right up until now. Apart from the whole framework being surprisingly well thought through, there are a few things that strike me as being done exceptionally well in Phoenix, compared to the rest of modern web frameworks.
1. Striking a balance between flexibility and strictness Modern web frameworks can be roughly divided into two camps:</description></item><item><title>Demystifying AWS VPC</title><link>https://scorpil.com/post/aws-vpc/</link><pubDate>Sun, 20 Sep 2020 09:43:31 +0000</pubDate><guid>https://scorpil.com/post/aws-vpc/</guid><description>VPC is the topic that flies under the radar of many Software Developers, despite being present in every AWS account (well, maybe not for accounts created before 2009&amp;hellip; But that&amp;rsquo;s unlikely). There are a few reasons for this I can think of:
Big companies have Ops/DevOps/SysAdmin/SRE/Security departments that take care of VPC Startups often don&amp;rsquo;t bother tuning it - everything works with default settings after all Networking is complicated and is rarely regarded as fun Despite those somewhat justified arguments, most developers that deal with AWS would benefit from digging deeper into VPC setup and its configuration.</description></item><item><title>Kubernetes Toolchain Overview</title><link>https://scorpil.com/post/kubernetes-toolchain-overview/</link><pubDate>Sun, 05 May 2019 10:13:50 +0000</pubDate><guid>https://scorpil.com/post/kubernetes-toolchain-overview/</guid><description>Kubernetes appears to be a de-facto standard platform for running distributed containerized applications in 2019. With its increasing adoption rate, we get more and more tools designed to extend it, automate typical workflows or generally improve it in one way or another. I compiled a brief overview of the most popular tools people use with kubernetes in May 2019 to help myself navigate the ever-changing technological landscape of containerization era.</description></item><item><title>Freelance Services</title><link>https://scorpil.com/freelance/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://scorpil.com/freelance/</guid><description>For freelance inquiries, please reach out to me at freelance@scorpil.com.
Technical Consulting Strategic Project Planning Crafting tailored project strategies that align technical solutions with your business objectives. My strategic guidance ensures that your projects are not only successful but also contribute to your long-term growth.
Efficiency Optimization Identifying and eliminating inefficiencies within your existing technical processes. By optimizing workflows and streamlining operations, I help you reduce costs and enhance productivity.</description></item></channel></rss>