The last few years, I’ve mostly been writing Python and JavaScript at work. Don’t get me wrong—these languages are versatile and powerful, perfect for a wide range of applications. But if there’s one thing I’ve noticed, it’s how easy it is to lose touch with the fundamentals of how computers work. Python and JavaScript abstract so much of the lower-level details, making it comfortable to…
In the past few days, I have been working with Windows containers, and I have been facing issues with loading certain DLLs in these containers from my applications. It has been the classic “It works on my machine” problem, meaning it has been working without any issues on my host Windows machine. However, when running the same setup in Windows containers, the story has been different. 
 When I…
Containers are widely used for deploying and running applications. There are several benefits for containerizing applications. They offer a consistent environment for applications to be deployed to together with their dependencies. Containers are able to isolate workloads, and guarantee a certain amount of resources for each workload. In addition, they can be created fast, on the fly. This makes…
For the longest time I haven’t found good examples online on how to unit test Flask applications. Especially when following clean architecture, and when using dependency injection. That is why I decided to write this post. Flask is a minimalistic web framework, so I understand that most examples are small and simple. However, I know there are people out there building larger and more complex…
Flask-Migrate is a python package that configures SQLAlchemy and Alembic for your Flask application. Alembic is the migration tool that actually takes care of database migrations under the hood. It can automatically generate migration files based on database schema models, and apply those migrations to databases. This is truly powerful, since it enables you to have a single source of truth and a…
One the best features of Flask is that it’s a “microframework”, meaning it’s easy to get started and to extend as the project grows. However, sometimes projects grow so large that it becomes hard to maintain all the dependencies and coupling between components. This is where dependency injection can help, by decoupling components and dependencies. This will make the code more reusable and easier…
As someone who is just learning Kubernetes, I want a local cluster where I can learn the basics of Kubernetes by testing and breaking things! I have lately been testing different tools for creating local kubernets clusters, and there are many good tools for doing so. However, many of them only spin up a single node cluster, I wanted multiple nodes. In addition, many tools make it difficult to…
Hello! I’m Kim Lehtinen, a Software Engineer based in Finland. My core belief is that everyone possesses a unique superpower, a distinct ability to contribute positively to our world. That’s what I aspire to do through technology, and hope I can inspire others along the way to do the same. 
 My mission 
 In today’s fast-paced world, technology stands as a pillar of…
Here’s a list of blogs that I like to read. I mostly read tech blogs, but I have also included a few non-tech blogs that I like to read and find useful.
For each blog I have linked to a post that I like. 



 
 
 
 
 
 
 
 
 
 
 
 Alex Ellis
 
 
 
 Post: How to Troubleshoot Applications on Kubernetes 
…
Content License 
 All content, meaning posts, illustrations and images are copyrighted by Kim Lehtinen. 
 Permitted Use 
 Quoting or citing portions of the content for informational, educational, or editorial purposes is allowed. This includes using quotes or citations in blogs, articles, or other written works whether commercial or non-commercial as long as proper attribution is…