sobolevn's personal blog
On good software, mediocre software, and bad software. Also rants about management and development processes.
2021
-
Python ParamSpec guide
December 31, 2021 6 mins read 0 comments
Newly released feature in PEP612 allows you do a lot of advanced typing things with functions and their signatures
-
Typeclasses in Python
June 30, 2021 24 mins read 0 comments
Typeclasses is a new (but familiar) idea of how you can organize behavior around your types
-
Make tests a part of your app
February 28, 2021 16 mins read 0 comments
Tests can be generated, tests can be shipped by library authors directly to end-users, tests can be encoded into the body of your app. Let's follow this path!
2020
-
Higher Kinded Types in Python
October 24, 2020 27 mins read 0 comments
This post will guide newcomers through the high waters of Higher Kinded Types and explain how they work and how they can be used.
-
How async should have been
June 7, 2020 16 mins read 0 comments
Your sync and async code can be identical, but still, can work differently. It is a matter of right abstractions. In this article, I will show how one can write sync code to run async programs in Python.
-
Do not log
March 11, 2020 12 mins read 0 comments
A lot of developers consider logging as a silver bullet to fix all things at once. And they don't realize how hard it actually is to work with logging properly.
-
Conditional coverage
February 25, 2020 7 mins read 0 comments
Sometimes your code has to take different paths based on the external environment. Make sure that your coverage follows it smoothly.
-
Typed functional Dependency Injection in Python
February 2, 2020 19 mins read 0 comments
Dependency injection is a controversial topic. There are known problems, hacks, and even whole methodologies on how to work with DI frameworks. It is not the case when using functional approach: which is simple and explicit.
2019
-
Testing Django Migrations
October 13, 2019 7 mins read 0 comments
When migrating schema and data in Django multiple things can go wrong. It is better to test what you are doing in advance.
-
Complexity Waterfall
October 13, 2019 19 mins read 0 comments
The thing about complexity is that it comes out of nowhere. One day you start your fairly simple project, the other day you find it in ruins.
-
Testing mypy stubs, plugins, and types
August 31, 2019 9 mins read 0 comments
Have you ever wanted to test type reveal in python? In case you do you would probably need pytest-mypy-plugins for that.
-
Typechecking Django and DRF
August 25, 2019 9 mins read 0 comments
Types are coming to the Django land! This posts announces TypedDjango organisation and stubs for django and djangorestframework
-
6 mac apps that fit everyone
July 19, 2019 2 mins read 0 comments
You often can see lists of awesome mac apps that you are not going to use or ones that just do not fit you. This one is different. This list contains simple, yet very powerful productivity boosters that totally fits everyone.
-
Really typing Vue
June 29, 2019 13 mins read 0 comments
This is not another "setting up" a new project with Vue and TypeScript tutorial. Let's do some deep dive into more complex topics!
-
From Flow to Typescript. Why?
March 30, 2019 9 mins read 0 comments
We have moved wemake-vue-template from Flow to TypeScript. Everyone, jump on the hype train!
-
Enforcing Single Responsibility Principle in Python
March 10, 2019 21 mins read 0 comments
Single Responsibility Principle (or SRP) is one of the most important concepts in software development. The main idea of this concept is: all pieces of software must have only a single responsibility.
-
Announcing docker-image-size-limit
March 3, 2019 1 min read 0 comments
Keep an eye on your docker image size, limit, and prevent it from growing too big.
-
Engineering guide to writing correct User Stories
February 23, 2019 12 mins read 0 comments
Agile people are obsessed with writing user stories. And it is a very powerful instrument indeed. But, from my practice, a lot of people are doing it wrong. Let's learn how to do it correctly. Including proper verification and mapping to the source code.
-
Python exceptions considered an anti-pattern
February 9, 2019 18 mins read 0 comments
You might be wondering how do exceptions are an anti-pattern and how does this relate to typing at all? Well, let's find out!
-
Simple dependent types in Python
January 31, 2019 12 mins read 0 comments
Python typing just got a new shiny feature: Literal types. Let's dive in and get familiar with it.
-
Best engineering practices: how to fix a bug?
January 21, 2019 9 mins read 0 comments
The important thing is: how do you respond to the bugs you and other people have created? What do you do to prevent them from happening in the future? How do you even know that this buggy situation even exist?
-
Announcing dotenv-linter
January 10, 2019 2 mins read 0 comments
Simple linter for `.env` files. While `.env` files are pretty straight-forward it is required to keep them consistent. This tool offers a wide range of consistency rules and best practices. And it integrates perfectly into any existing workflow.
2018
-
Building blameless working environment
December 13, 2018 6 mins read 0 comments
Blaming people does not work. Let's stop doing that. And find alternative ways to work.
-
1-minute guide to real constants in Python
July 8, 2018 4 mins read 0 comments
How to use final types to make your API better
-
I am a mediocre developer
March 13, 2018 8 mins read 0 comments
I personally know some developers who are very talented and can create wonderful pieces of software with no or little struggle. Because of these gifted individuals, our industry is full of high expectations. But the sad truth is: not everyone is a ninja/guru/rockstar developer.
2017
-
Using better CLIs
October 9, 2017 4 mins read 0 comments
Don't stick to the default CLIs, there are better alternatives!
-
Instant +100% command line productivity boost
August 23, 2017 4 mins read 0 comments
Brief overview of some awesome command line utilities to increase your productivity and make you a happier developer
-
Creating slugs for Ecto schemas
July 19, 2017 6 mins read 0 comments
The term “slug” comes from the world of newspaper production. If you have ever created a simple “Blog” application you have already reinvented it. Let's have a look at how you can use slugs in Elixir apps.
-
Testing Bash applications
July 8, 2017 9 mins read 0 comments
Some time ago I was faced with a task of testing a bash script. At first I decided to use Python unit-tests, however, I was reluctant to bring external technologies to the project. Therefore I had to go with the testing framework written in the notorious bash.
-
Is Yarn still a thing?
June 12, 2017 4 mins read 0 comments
When npm@5 was just released this question was the first one I have googled. No doubts it comes to mind since new npm version introduced a lot of yarn’s features. In other words: should I still use yarn after installing npm@5?
-
Why changes in Phoenix 1.3 are so important?
May 14, 2017 14 mins read 0 comments
Phoenix Framework always has been awesome. But it was never as awesome as the new 1.3 release.
-
Managing Django’s settings
April 1, 2017 4 mins read 0 comments
Managing Django’s settings might be tricky. There are severals issues which are encountered by any Django developer along the way.