2022

Oct 15

Crafting a compiler in Rust : Chapter 4

Have you ever wondered how programming languages like Python, Java or Ruby work? Do you have an interest in building your own language? If so, this series of posts is for you. We dive into building a novel programing language from first principles. Get ready to have your hands dirty. It’s going to be a fun ride. Access the final product here : …

more

Oct 10

Crafting a compiler in Rust : Chapter 3

Have you ever wondered how programming languages like Python, Java or Ruby work? Do you have an interest in building your own language? If so, this series of posts is for you. We dive into building a novel programing language from first principles. Get ready to have your hands dirty. It’s going to be a fun ride. Access the final product here : …

more

Oct 5

Crafting a compiler in Rust : Chapter 2

Have you ever wondered how programming languages like Python, Java or Ruby work? Do you have an interest in building your own language? If so, this series of posts is for you. We dive into building a novel programing language from first principles. Get ready to have your hands dirty. It’s going to be a fun ride. Access the final product here : …

more

Oct 3

Crafting a compiler in Rust : Chapter 1

Have you ever wondered how programming languages like Python, Java or Ruby work? Do you have an interest in building your own language? If so, this series of posts is for you. We dive into building a novel programing language from first principles. Get ready to have your hands dirty. It’s going to be a fun ride. Access the final product here : …

more

Jul 21

Tokio vs Async-Std

Asynchronous programming has become a crucial aspect of modern software development, allowing for more efficient use of resources and improved responsiveness. In the Rust ecosystem, two prominent libraries have emerged to facilitate asynchronous programming: tokio and async-std. Both libraries provide a way to write asynchronous code using the async/await syntax, but they differ in their approach, …

more

2021

May 10

LRU cache implementation in Golang

Updated : 2022-12-02 In this piece, we are going to demonstrate how to implement an LRU cache in Golang. I encountered this problem recently in an interview and decided to solidify my understanding by building one from scratch. Let’s examine how the LRU cache works. From a high level, think of the LRU cache as a list of a specific cache number of items. That is the cache can only have a …

more

2020

Feb 20

Service Design

One may be led to think that service design is about software architecture. That’s especially true and sad for most of us in the software business. When you look at it from a high-level point of view, service design is about planning and organization of resources to improve employee and customer experience. Let’s put this into perspective with an example. Consider an online store. …

more

2019

Dec 15

Easy your way to understanding to TLS in Go

Earlier before I started using TLS(or HTTPS), I used to think that it was a complicated process and I had to learn alot of math and complex algorithms. I was wrong. That was already done for me and all I had to do was figure out how to place the pieces together. Like my every learning experience, it all begun with a Google search. But the articles I found were either too high level for my …

more

Nov 2

Language detection : Part two

In the first part of this series, we laid the foundation and developed a model that could identify a language with an error rate of 8%. In this second part, we will change our strategy and develop an even superior model than achieves 99% accuracy. I encourage you to read the first part so that you may get the intuition of why we are changing strategy. Let’s begin Part two Change data and …

more

Nov 2

Language detection : Part one

Mastering language is arguably Homo sapiens’ greatest cognitive ability. It’s, in fact, the centerpiece of the Turing test. Work in natural language understanding has been going on for decades. While machines are yet to truly understand human language, current efforts like OpenAI’s GPT-2 and Google’s BERT demonstrate that machines are on the edge of this computational …

more

© Mwangi Kariuki 2019-2024