This week we welcome Nikita Sobolev (@sobolevn) as our PyDev of the Week! Nikita is the founder of wemake.services. Nikita also writes a technical blog that you should check out. You can also see what he’s working on over on GitHub.
Let’s take a few moments to get to know Nikita better!
Can you tell us a little about yourself (hobbies, education, etc):
My name is Nikita Sobolev, I was born and raised in the middle of Siberia (city of Novosibirsk, Russia). Siberia is mostly known for:
- Great technical Universities
- Awesome food
- Big distances, rough weather, and amazing scenery
I enjoy all of these things 🙂
Now I live and work in one of the most beautiful cities in the world: Saint Petersburg. An interesting fact about my career: I’ve always worked for the same company. I started my own consulting business while I was still a student. I am still employed there!
I spend a lot of time reading about history or watching movies. It helps me to distract from the technical stuff and brings humanitarian parts into my life. I also teach as a hobby, I dedicate several hours a week giving lectures about Python, web development, and testing for local Universities.
Why did you start using Python?
I’ve learned Python while I was in the University myself, it was a part of my course, which is awesome because it was a long time ago.
Then I used TurboGears (is it still alive!?) to collect some data about drivers and hardware in a client’s custom UNIX build.
I fell in love with Python from the very first project. I’ve completely switched from Java to Python afterwards. I have used it for more than 10 years now, and never looked back!
What other programming languages do you know and which is your favorite?
I know a lot of languages due to my duties. As CTO of a consulting company I have to work with different technologies our clients have, I also have to be informed about the pros and cons of different stacks to make better technical decisions.
I frequently use:
- Elixir. It is not widely popular, but it is an amazing technology to learn and use. It has amazing abstractions, a powerful platform, and nice syntax
- Rust. I cannot say that “I know it” because there are still a lot of things to learn, but I use it and I totally love it
I would love to use Haskell more often, but it does not seem to be realistic at this point. I also want to spend more time with theorem provers and TLA+.
What projects are you working on now?
My main project for the next couple of years is to make my open-source work sustainable. There’s a long road ahead.
Right now I primarily work on several open-source projects:
- https://github.com/dry-python/ A set of libraries for pluggable business logic components. You can check out our returns (https://github.com/dry-
python/returns) and classes (https://github.com/dry- python/classes/) projects. The first one is all about monads, while the second one adds typeclasses. Everything is fully typed with mypy. It is a completely different way to write your code, more functional if you will. Join our community (https://t.me/drypython) to learn more
- Types for Django!
- Different static-analysis tools for Python, you have probably heard about the strictest Python linter ever, right? https://github.com/wemake-
Which Python libraries are your favorite (core or 3rd party)?
- I love pytest, because it is the easiest way to write tests, period
- I love hypothesis, because it changes how you think about your tests. After shifting your mindset you start to see “properties” of your code instead of “behavior”. This is critical to writing better software: https://sobolevn.me/2021/02/
- I would also name RustPython (https://github.com/
RustPython/RustPython), because it is great fun to work with!
How did you get into presenting at Python conferences / meetups?
One of my colleagues was a co-organizer of Python meetups in Moscow. It was a natural thing to apply at some point. Then, I made a lot of friends in the Russian Python community and people kinda liked my talks. So, I started to do it more often.
It also had a positive influence on my consulting business: new clients, new contracts, etc.
Do you have any advice for aspiring writers or speakers?
- Create content that you are interested in yourselves
- Focus on ideas and ways to present them
- Be consistent
- Be careful with the amount of “easy to promote” content you create. Sometimes people get over-excited about this