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…
In Part One of the “Understanding Generative AI” 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…
„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.…
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 “classical” chat completion counterparts, such as: Persistent threads: Assistant “remembers” the conversation without the need of manual context management…
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…
It’s easy to make mistakes when dealing with date and time information. The way we measure time is very much irregular and it’s challenging for programmers to be thorough enough when describing time. It doesn’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…
Artificial Intelligence is the latest and most revolutionary tool in today’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…
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…
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…
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’s a braver…
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’d do something similar. However, tech recruiting is unique in one peculiar factor: the level of specificity in job…
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…
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…
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… But that’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’t bother tuning it - everything works…
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…
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…