-
Solving Microcorruption
21 minutes
My growing interest towards low-level programming led me to a CTF game called Microcorruption. The goal there is to do a series of challenges related to hacking embedded systems. There is some dissasembly of a digital lock firmware that you should analyze and exploit to find a way for opening the door. Each level progressively increases in complexity. I feel that the difficulty progression was great and in general it’s a good tool to learn basic binary exploitation vulnerabilities.
Most of the vulernabilities explored there are related to stack overflows, format string attacks, heap overflows. If you consider modern OS, most of these are considered outdated and are not as common as they used to be. However, if we embark in a world of embedded systems, these are still very relevant. In this post, I will provide my solutions and notes for different levels of Microcorruption.
-
LLM-Oriented Programming: Keeping Your Codebase Organized for Large Language Models
5 minutes
Introduction
I feel that the world of coding is changing. In a couple of years, I expect a lot of new developer tools based on LLMs to come up. They will likely change the way we write code. And maybe even change the definition of what we think is Software Developer. With the release of GPT-4, the ways you can use it in daily programming activities is impressive.
As with any tool, developers should learn how to make a better use of it. While working with LLMs you may notice that some codebases are suited better for them. As powerful as these LLM models are, they have their limitations. One of the primary constraints is their inability to maintain context over long input prompts. This can lead to confusion and misinterpretation when working with large codebases.
More and more people start to think that SDEs will be replaced. My take is that our job might be transformed, but not replaced. More and more developers will likely to be more like software architects and team leads, using LLMs to solve partial tasks and combining final results. LLMs are also pretty bad at correctness and validation, which will most likely remain an important part of our job.
This raises a question: how to write code to be better understood by language models? Let’s dive into LLM-oriented programming.
-
Coding a SaaS landing page
5 minutes
I’ve decided to create a side project to catch up with the latest tech trends, see what’s new in frontend, and experience the thrill of setting up a small SaaS. My first step was to create a landing page, and in this post, I will share my research and results.
-
Why study algorithms?
6 minutes
In this post, we will look at a task dreaded by many: getting better at solving algorithmic challenges. Some think it’s worthless, others feel rage about the current hiring industry is blind to what’s really important. But we will try to look at this from another perspective to see if it’s worth to devote time to get skills necessary for solving computer science problems.
-
Employee is a non-performer? It is your fault. Act on it
7 minutes
I want to start a new post topic. A part of future posts on this blog will be about management. Apart from data science, this is my day job and I feel like sharing my experience may help someone solve their problems.
Some time ago, I hired a software engineer. The interview went fine, but the timeframe was strict and I missed a few questions that I usually ask. We were under heavy pressure, since projects were understaffed and we desperately needed people to keep up with the task stream. The slog of exhaustion, the need for help and a lack of success in hiring for weeks have done their job. I hired someone impulsively.
-
Blazing fast category encoding
6 minutes
Category encoding can make a difference between bad and good machine learning modes. In this post, we will learn about target encoding with the blazing_encoders library.
-
Best time to post on HackerNews
8 minutes
Let’s determine what the best time to post on HackerNews using statistical analysis and machine learning is.
-
Building a Weather Station UI
6 minutes
In this last post of the series we are going to look at how to build a simple weather station UI dashboard.
-
Building a Weather Station Bot
14 minutes
In this post we are going to switch from hardware to software and write a telegram bot that will be the primary user interface for our weather station.
-
Async Unicorns love Rust
12 minutes
Before going on to write a backend for our weather station we first need to familiarize ourselves with a few concepts from the Rust world. If you are unfamiliar with the language take a few minutes to read through Learn Rust in Y minutes to get used to the syntax.
When we will write a Telegram bot with Rust, we will use a technique called asynchronous programming. Let’s tackle what that means.
-
Building yourself a weather station. Part 2
16 minutes
In the previous post, we have covered the hardware setup for building a weather station. Starting from now, we will start coding. The first missing piece is the firmware for ESP32.
-
Build yourself a weather station. Part I
9 minutes
Intro
I live pretty far away from the office, so my commute can take from 2.5 to 4 hours a day 😱. That includes a lot of time walking. I lost the count of times when I forgot to check if there was rain when going out from home. Or, even worse, the rain came in when I was midway to the train station. As a plus, the Weather app on my iPhone is not very good at making accurate forecasts. It can easily convince me that there is sunny outside when a sneaky rain starts to drop.
-
The beauty of hardware
8 minutes
My life is tied to software. I first got interested in it in the year 2001, when I saw my father reading a C++ book. Since then, I learned and built and failed and learned again up to this day. Over those years, I’ve learned about different programming languages, peeked into the inner workings of operating systems, databases, and compilers. Back in the old days, I have tried to build simple bootloaders and operating systems in assembly using my old PC-iMac clone.
Yet, somehow, I have always avoided getting into hardware. How does a CPU work? How RAM stores a single bit of memory? It was all black magic to me. Computers just worked. Maybe, your case is the same as mine. In this post, I will provide a short intro to digital electronics and give you some references on how to advance your studies further.