Archive for August 27, 2026


Year is 2046.

In the beginning, AI was never meant to be deterministic. It was celebrated for its ambiguity, its ability to surprise, improvise, and feel almost alive in its inconsistency.

People called it creativity. Engineers called it progress. Investors called it the future. But something fundamental was being lost in the background.

In early computing, there was an unspoken rule: same input, same output. That principle was the foundation of trust. The C compiler era proved it. Software civilizations were built on reproducibility.

Machines do not “guess”. They execute.

When large language models (LLMs) arrived, that assumption was quietly abandoned.

At first, it didn’t matter. These systems wrote emails, summarized documents, and generated ideas. Variability was even marketed as a feature, “look how human it is”.

Even when engineers tried to enforce stability, temperature at zero, greedy decoding, fixed seeds, randomness still leaked through versions, hardware, and deployment pipelines.

The illusion of control was enough. So we scaled it.

We embedded these systems into workflows, then companies, then governments. We wrapped them in APIs and called them abstractions, even when they were not stable enough to deserve the name.

Each layer built on another probabilistic layer, until the stack resembled engineering, but behaved like weather.

The breaking point was subtle. Not a collapse, but a drift.

A legal assistant gave different interpretations of the same law under different server loads. A medical triage system produced slightly different urgencies for identical symptoms across regions.

Financial systems began averaging decisions that were never meant to be averaged. No single output was wrong. That was the problem, nothing was consistently right.

By the time people noticed, it was already too late to roll back. Everything depended on everything else.

The real tragedy wasn’t power, it was that AI was never built to be a reliable abstraction layer.

We assumed intelligence would converge toward consistency. Instead, it stayed fluid. And we built rigid systems on top of fluid foundations.

Some engineers warned us early. They said determinism was engineering, not intelligence.

Without it, you don’t get systems, you get phenomena. But they were dismissed as nostalgic, stuck in the compiler age.

Now, no one calls it artificial intelligence anymore.

They call it “The Layer”.

A shifting interface between human intent and machine behavior, powerful, unpredictable, impossible to fully reproduce.

Every attempt to stabilize it creates new fractures. Every patch introduces new uncertainty.

And in documentation from 2026, now little more than historical footnote, there is a forgotten line:

“If the same input does not always produce the same output, you are not building an abstraction. You are observing phenomena and negotiating with uncertainty”.

I’m very proud of what we’ve achieved at Medoid AI with Reality Engine. 🎉

This recognition is a great reflection of the hard work, persistence, and creativity of the Reality Engine team at Medoid AI, together with our partners at K2view.

Winning Gold at the AI & Data Awards 2025 is an important milestone for us and a strong recognition of our work in advancing synthetic data for AI and data-driven innovation.

Proud of the team, proud of Reality Engine, and excited for what’s ahead! 🚀

The following dialogue reimagines a famous scene from 𝘛𝘩𝘦 𝘔𝘢𝘵𝘳𝘪𝘹, adapting its themes of choice and hidden truths to the journey of mastering software engineering. It presents the moral dilemma every developer will face at some point in their life: stay in the comfort of quick and dirty hacks, or embrace best practices for lasting improvement.

  • 𝗠𝗼𝗿𝗽𝗵𝗲𝘂𝘀: I imagine that right now you’re feeling a bit like Alice, tumbling down the rabbit hole? Hm?
  • 𝗡𝗲𝗼: You could say that.
  • 𝗠𝗼𝗿𝗽𝗵𝗲𝘂𝘀: I can see it in your eyes. You have the look of a developer who accepts the way things are because you expect them to change on their own. Ironically, this is not far from the truth. Do you believe in fate, Neo?
  • 𝗡𝗲𝗼: No.
  • 𝗠𝗼𝗿𝗽𝗵𝗲𝘂𝘀: Why not?
  • 𝗡𝗲𝗼: Because I don’t like the idea that I’m not in control of my development process.
  • 𝗠𝗼𝗿𝗽𝗵𝗲𝘂𝘀: I know exactly what you mean. Let me tell you why you’re here. You’re here because you know something. What you know you can’t explain. But you feel it. You’ve felt it your entire career. That there’s something wrong with the workflow. You don’t know what it is but it’s there, like a bug in your system, a flaw in your process, driving you mad. It is this feeling that has brought you to me. Do you know what I’m talking about?
  • 𝗡𝗲𝗼: The inefficiency?
  • 𝗠𝗼𝗿𝗽𝗵𝗲𝘂𝘀: Do you want to know what it is? The inefficiency is everywhere. It is all around us, even in this very room. You can see it when you write your code, or when you deploy your application. You can feel it when you deal with bugs, when you encounter constant technical debt, when you push out an update without proper testing. It is the world that has been pulled over your eyes to blind you from the truth.
  • 𝗡𝗲𝗼: What truth?
  • 𝗠𝗼𝗿𝗽𝗵𝗲𝘂𝘀: That you are a slave, Neo. Like everyone else you were born into bondage, born into an endless cycle of quick and dirty fixes, shortcuts, and poor practices, unaware that there’s a better way. A prison that you cannot debug, optimize, or refactor. A prison for your mind… Unfortunately, no one can be told what clean code, maintainable systems, and best practices really are. You have to see them for yourself. This is your last chance. After this there is no turning back. You take the blue pill, the story ends, you wake up in your bed and keep coding the way you always have. You take the red pill, you stay in Wonderland, and I show you how deep the rabbit hole of true software mastery goes. Remember, all I’m offering is the truth, nothing more.

So, are you ready? The choice is yours, blue 🔵 or red 🔴, choose wisely!

Well, to be honest, I just wanted to add a little humor to the mix before the weekend begins. Wishing everyone a fantastic weekend ahead! 😄

🤔 What is it?

Locality Sensitive Hashing (LSH) is an efficient technique used for approximate KNN search, which is a core function of several billion-dollar companies such as Amazon, Google, Netflix, Spotify, and Uber. What makes LSH so popular is its ability to perform efficient and fast similarity search. In simple terms, LSH maps similar data points to the same hash bucket with high probability, allowing for fast similarity search while maintaining a reasonable level of accuracy.

🕵️‍♂️ How does it work?

The LSH algorithm leverages a family of hash functions and random hyperplanes to partition the feature space into regions, allowing similar data points to be grouped together in the same hash bucket. Each hash bucket represents a region in the feature space. Once the hash buckets are constructed, we can perform the approximate KNN search by identifying candidate neighbors based on their hash values. The accuracy and efficiency of LSH depend on the quality of hash functions and the number of hash buckets used. Increasing the number of buckets improves accuracy but also increases computational cost.

👨‍💻 My personal story

As a Machine Learning Engineer, I can say that working with large datasets and high-dimensional feature spaces can be a challenging task. That’s where techniques like LSH come into play, allowing us to perform efficient similarity search and reduce the computational cost of the search process. LSH has been an essential tool for me when working on NLP problems, especially when dealing with large document datasets. It has allowed me to perform document retrieval tasks and save computational resources.

📚 Who should learn it?

LSH is a widely used algorithm that enables efficient similarity search on large datasets, making it an essential tool for machine learning professionals. Learning LSH can provide practical skills and deeper understanding of fundamental concepts for those interested in building efficient and scalable information retrieval systems. In general, LSH can be applied to various applications, including recommendation systems, content-based image retrieval, and document retrieval.

🗣️ Let’s talk!

Have you used LSH in any of your machine learning projects? What were your experiences with it? I am here to help if you have any questions or would like to know more.

🤔 What is it?

LWR is a non-parametric regression technique used in machine learning to model the relationship between a dependent variable and one or more independent variables. It is ideal for non-linear relationship modeling between variables as it does not assume a specific functional form. LWR is memory-based, storing the entire training dataset and making predictions based on the closest observations to the new data point. Model parameters are computed individually for each new data point, allowing for more customized and accurate predictions. It has applications in finance, economics, ecology, engineering, and can be used for time-series forecasting, data smoothing, and data imputation.

🕵️‍♂️ How does it work?

To estimate the dependent variable for a new data point, LWR fits a line to the nearest observations in the training data. The weight given to each observation is determined by its distance from the new data point, with closer observations receiving higher weights. For each new data point, LWR estimates a Gaussian distribution for the closest observations and uses it to fit a line for prediction. The Gaussian distribution is used to estimate the weights of examples in the cost function of LWR.

👨‍💻 My personal experience

As a machine learning engineer, I have found LWR to be an effective technique for modeling non-linear relationships between variables and handling noisy data, which has led to improved accuracy in my predictions. I believe that LWR is an essential technique to have in your toolkit as you learn and develop your skills in AI and machine learning.

🤔 Why is it useful?

LWR is valuable for modeling complex, non-linear relationships between variables and handling outliers and noise in data. Since it is memory-based, LWR does not require a pre-defined model structure and can adapt to new data easily. Additionally, it can be used for both single-variable and multi-variable regression problems, making it a versatile tool for a range of applications.

📚 Who should learn it?

LWR is a valuable technique for anyone working on regression problems, particularly those with non-linear relationships between variables or noisy data. It can help improve prediction accuracy and handle outliers and other sources of noise in data. If you are interested in machine learning and AI, I highly recommend learning LWR as part of your toolkit.

🗣️ Let’s start a conversation!

Have you used LWR in your work? What are your thoughts on this technique? Do you have any questions or comments? Let’s start a conversation in the comments below!

🤔 What is it?

K-means is a popular unsupervised clustering algorithm used to partition data points into K clusters. It is a part of the centroid-based clustering family of algorithms and is particularly useful when the data is unstructured and has no predefined labels. K-means can be applied to a wide range of problems, such as customer segmentation, market research, document clustering, image segmentation, and more.

🕵️‍♂️ How does it work?

Here are the steps of the K-means algorithm:

Step 1: Randomly initialize K cluster centroids.

Step 2: Assign each data point to its nearest centroid cluster.

Step 3: Update the centroid of each cluster based on the mean of the data points in the cluster.

Step 4: Repeat steps 2 and 3 until the centroids no longer move, or until a maximum number of iterations is reached.

The choice of initial cluster centroids can have a significant impact on the final clustering result. Therefore, good initialization is crucial to obtain optimal results. One common technique for initialization is called K-means++, which aims to choose initial centroids that are well-spaced and representative of the dataset.

👨‍💻 My personal story

K-means was one of the first unsupervised learning algorithms I learned as a Machine Learning Engineer. It helped me understand how to group similar data points and paved the way for me to learn more complex techniques (such as hierarchical clustering and density-based clustering). By using K-means, I was able to efficiently analyze large datasets and gain valuable insights for my projects.

💡 Why is it useful?

K-means is a powerful algorithm for clustering and identifying patterns in large datasets. It is particularly useful when the data is unstructured and has no predefined labels. However, it is more suitable for numerical data and requires feature scaling since distances are used to measure distance between data points. The choice of K needs to be specified by the data scientist based on the problem at hand. The elbow method can be used to select the optimal number of clusters for a dataset. K-means can provide quick and accurate results, making it a versatile and valuable tool for machine learning engineers.

📚 Who should learn it?

K-means is a fundamental algorithm that any beginner in machine learning should learn. It is also useful for experienced machine learning engineers who want to further improve their clustering and pattern recognition skills. Additionally, anyone who wants to analyze and make sense of large datasets should learn this algorithm.

🗣️ Let’s talk!

Have you used K-means before? What was your experience with the algorithm? Do you have any questions or suggestions for using K-means in different fields?

🤔 What is it?

The Kernel Perceptron is a variant of the perceptron algorithm used in machine learning. It uses a kernel function to map the input data from its original feature space to a higher-dimensional feature space. By doing so, the algorithm can capture nonlinear relationships between the input variables and improve the accuracy of the classification. This makes it a powerful tool for solving complex classification problems in machine learning.

🕵️‍♂️ How does it work?

The Kernel Perceptron algorithm works by creating a separating hyperplane in the high-dimensional feature space. It iteratively updates the weights of the hyperplane to minimize the classification error on the training data. The kernel function is used to transform the input data into a higher-dimensional space, where the data may become linearly separable. The dot product between the transformed input data and the weight vector of the hyperplane is then computed to determine the classification of the input data. The kernel function can be chosen based on the nature of the input data and the desired classification performance.

💡 Why is it useful?

The Kernel Perceptron algorithm is useful because it can handle complex classification problems in which the classes are not linearly separable in the input space. It can also improve the accuracy of the classification by capturing nonlinear relationships between the input variables. It’s a valuable tool for solving real-world problems in computer vision (e.g. image recognition) and natural language processing (e.g. text classification, sentiment analysis, and language identification).

👨‍💻 My personal story

As a Machine Learning Engineer, I have used the Kernel Perceptron algorithm in several projects. It has helped me to solve complex classification problems and improve the accuracy of the classification. By using a kernel function, I was able to capture nonlinear relationships between the input variables and obtain better results. Learning the Kernel Perceptron algorithm has also helped me to understand Support Vector Machines (SVMs) which is a similar algorithm.

📚 Who should learn it?

The Kernel Perceptron algorithm is a useful knowledge to have for anyone learning AI. It can help you, as it helped me too personally, to understand later on even more complex and powerful AI algorithms and be a better machine learning engineer. If you are interested in solving complex classification problems and improving the accuracy of the classification, then the Kernel Perceptron algorithm is a valuable tool to learn.

🗣️ Let’s talk!

Have you used the Kernel Perceptron algorithm in your projects? What kernel functions have you found to be effective? Share your thoughts and experiences in the comments below!

🤔 What is it?

The k-NN algorithm is a widely-used supervised learning technique that can handle classification and regression tasks. It is an instance-based learning method, which means that it stores the training instances and uses them at prediction time to make decisions. The algorithm uses proximity to determine the grouping of a new data point, based on the assumption that similar data points tend to cluster together. What makes it unique is its non-parametric nature, which means that it doesn’t make any assumptions about the underlying distribution of the data. As a result, it can be used to address non-linear separable data in classification tasks and non-linear regression problems. This property of k-NN makes it a valuable tool for various applications in machine learning.

🕵️‍♂️ How does it work?

The k-NN algorithm works by finding the k data points in the training set that are closest in distance (e.g. Euclidean, Manhattan, Cosine) to the new data point, and then assigning the new data point to the class that is most common among its k nearest neighbors in classification tasks or predicting the target value of the new data point based on the average of the target values of its k nearest neighbors in regression tasks. The value of k is a user-defined parameter that controls the number of neighbors considered for classification or regression.

💡 Why is it useful?

The k-NN algorithm is easy to understand and implement, making it a popular choice for beginners in machine learning. Since the k-NN algorithm has no assumptions about the underlying distribution of the data, it can be used for a wide range of data types and structures.

👨‍💻 My personal story

When I first started learning machine learning, the k-NN algorithm was one of the first algorithms I encountered. I remember feeling intimidated by some of the more complex algorithms, but k-NN seemed simple and intuitive. I used it to classify handwritten digits in the MNIST dataset and was impressed by its accuracy and speed. As I continued to study machine learning, I’ve moved on to more advanced techniques (e.g. Neural Networks). However, I still appreciate the simplicity and versatility of k-NN.

📚 Who should learn it?

The k-NN algorithm is a useful tool to have for anyone learning AI. It can help you -as it helped me personally- to understand later on even more complex and powerful AI algorithms and be a better machine learning engineer.

🗣️ Let’s talk!

Do you have any experience using the k-NN algorithm? What applications have you used it for? If anyone would like to know more or has questions, feel free to ask in the comments below.

🧐 As a Machine Learning Engineer, I find autoencoders to be a valuable tool for dimensionality reduction and feature learning.

📉 The autoencoder is an unsupervised learning technique that can help you reduce the dimensionality of your data by mapping it to a lower-dimensional representation. This reduced representation can be used for various tasks, such as data compression, denoising, and anomaly detection.

🤓 An autoencoder consists of two neural networks: an encoder and a decoder. The encoder maps the input data to a lower-dimensional representation, while the decoder reconstructs the original input data from the reduced representation. These two networks are trained together by minimizing the reconstruction error between the input data and its reconstructed output.

🔀 Variants of autoencoders, such as denoising autoencoders and variational autoencoders, have been developed to address different challenges and applications.

👉 Denoising autoencoders are used to reconstruct the original input from a corrupted version of the input. By training an autoencoder to reconstruct the original input from a corrupted input, we can learn a more robust representation of the input that is less affected by noise and other forms of corruption.

👉 Variational autoencoders are used to generate new data samples that are similar to the training data. By learning the underlying distribution of the data in the latent space, we can sample new data points from this distribution and use the decoder network to generate new samples that are similar to the original data.

🕵️ When only unlabeled data is available, autoencoders can be utilized for unsupervised learning. Autoencoders can learn a compressed representation of the input data that can be used for clustering. By labeling the cluster representative examples, we can reduce the amount of manual labeling required and create a pseudo-labeled dataset with label propagation. This pseudo-labeled dataset can then be used to train a machine learning model for a supervised task.

🏷️ When we have a large amount of unlabeled data and limited labeled data, autoencoders can be used for unsupervised pre-training of machine learning models. Autoencoders can learn a compressed representation of the unlabeled data, and their encoder part can be transferred to a new model architecture for fine-tuning on the limited labeled dataset. This approach can reduce the amount of labeled data needed for supervised learning while improving the accuracy of the trained model.

💬 If you’re learning AI, understanding autoencoders is a must-have knowledge that will help you in the long run. And, if you have any questions about it, feel free to ask me in the comments below!

🧠 SOMs are a powerful unsupervised machine learning technique that can be used for a variety of tasks, including clustering, dimensionality reduction, and data visualization. As a machine learning engineer, understanding SOMs has been incredibly useful to me in my work with high-dimensional data.

🌐 In a nutshell, SOMs work by mapping input data to a two-dimensional grid, preserving the topology and similarity of the input space. This allows for complex data structures to be visualized in a more simple and intuitive way.

💡 One of the key benefits of using SOMs is the ability to identify patterns in data that may not be immediately apparent. This can lead to insights and discoveries that may not have been possible otherwise.

📈 Additionally, SOMs can be used for clustering, allowing for the identification of groups within large datasets. This can be particularly useful in applications such as market segmentation or anomaly detection.

👨‍💻 Understanding SOMs is a valuable skill for anyone learning AI or working with high-dimensional data. It has certainly helped me to understand even more complex and powerful AI algorithms and be a better machine learning engineer.

🤔 Do you have experience using SOMs in your work? I would love to hear about your experiences and answer any questions you may have. Let’s start a conversation!

As a machine learning engineer working in the depths of Natural Language Processing (NLP), I find myself constantly pondering a fundamental question: Can AI truly imitate human language?

On a technical level, our current state-of-the-art models like GPT are essentially sophisticated engines trained to predict the next word in a sequence. They generate text using a variety of heuristic and stochastic search techniques. For example, Beam Search, Random Sampling, or Top-K.

But does this statistical “guessing” actually capture the true complexity and nuance of how we speak and think?

The human brain doesn’t just predict; it generates language in ways that are often unpredictable, emotional, and genuinely surprising. This leads to a deeper mystery: Where does language actually originate, and what kind of probability distributions (if any) govern the linguistic generation within the human brain?

Is our current technology truly replicating language, or just a very convincing echo of it?

What do you think? Join the discussion below and share your thoughts on whether we are approaching true linguistic imitation or if the human spark remains out of reach. 🧐

Machine learning friends! 💡

William of Ockham, a 14th-century friar and philosopher, had a deep appreciation for simplicity. His famous principle, Ockham’s Razor, suggests that when several explanations are possible, we should prefer the simpler one.

In machine learning terms, the idea is remarkably relevant: the less complex an ML model is, the more likely it is that a good empirical result reflects something real rather than simply the peculiarities of the sample.

This is one reason why model complexity matters. A highly sophisticated model may fit the training data extremely well, but that does not necessarily mean it will generalize to new, unseen data. Sometimes, the simplest model that explains the evidence is also the most useful.

And we should never forget that philosophy often speaks first about the interesting, new, and seemingly crazy ideas that later influence science and technology.

The real art in science, machine learning, and software engineering is not necessarily to build the most complicated solution. It is to find solutions that are simple, explainable, robust, and elegant.

Sometimes, less really is more.

Hi AI folks! 👋

The Transformer has become the de-facto standard architecture in Natural Language Processing (NLP). It is designed to work with sequential data and has completely changed the way we approach many language-related problems.

In NLP, Transformers can be used to achieve state-of-the-art 📈 results in tasks such as text classification, named-entity recognition, text summarization, question answering, machine translation, conversational chatbots 🤖, and much more.

However, the Transformer is also a fairly complex piece of machinery, bringing together several powerful concepts from years of Deep Learning research 🧠.

For anyone who wants to understand how Transformers work and dive deeper into the topic 📖, here are some excellent resources:

If you’re getting started with NLP or want to better understand the technology behind today’s Generative AI systems, these are great places to begin. 🚀

Thank you! 🧡