All about development: best practice, articles, useful tools, libs etc.
Pathfinder, board games
Saint Petersburg and people around me
Compute the distance between sequences. 30+ algorithms, pure python implementation, common interface, optional external libs usage.
Framework for safe and maintainable web-projects.
Design by contract for Python with many validators support.
Bruteforce protection for Django projects based on Redis.
Get similar letters, convert to ASCII, detect possible languages and UTF-8 group.
Generate awesome list over Github API
List of autogenerated awesome lists.
Telegram bot for sending files to chat or channel by cron.
Recognize date and time in Russian text and return datetime.datetime.
Flask HealthCheck support for Zabbix
Dependency resolution and requirements converter for Python. DepHell in progress yet, but it will be the great project! Check it out.
Generate setup.py (setuptools) from pyproject.toml (poetry)
Convert requirements between formats.
ElastAlert daemonizing and some rules for filebeat and metricbeat
Python Logger + RSysLog + Logstash. Demo over docker containers.
Django package for getting permissions for Android app from Google Play.
hh.ru vacancies analyze by different params
ᙏáḱє ‡ɘχτ !η ẃɨŧ¢н-ħ∅υѕé ѕ†ɏƖε (Ɛñ9ĺïś♄ & Řᵾśѕ!áη)
A library for evaluating dice notation for Pathfinder RPG
Good choices for Django
tasks, files, write-ups from my university CTF.
Fixed ISO date parsing
Fixed and improved setup.py
Eradicate support and Python 3.7 compatibility.
Added configuring of logging via TOML config.
Added requirements.txt and Pipfile support
Added DateField support
Project configuring via TOML format.
Added unregister_middleware function.
Improved Pipfile.lock parsing.
Added esoteric language named YoptaScript.
Updated CC-BY license name.
Some of my PRs isn't accepted yet.
An interactive presentation about data structures in Python's stdlib.
My first English talk. Sorry about that.
Presentation about Spotify's framework Luigi.
Presentation about Open Source from Hacktoberfest 2018.
Presentation from PiterPy Meetup #6.
Presentation from UfaPy.
Presentation from UfaDevConf about monitoring ecosystem in Smena Team.
Presentation for FSTEC about my security platform. This platform is similar to vulners.com, but more powerful and useful. The project is frozen now.
Internal presentation for Smena Team about blockchain technology.
About blockchain technology, cryptocurrencies, history and future of decentralized systems.
I draw and print round vector stickers with programming jokes.
Telegram bot with many features and lightweight dialog system
My CTF team. CTF (Capture The Flag) — information security contests.
This is my favorite language. I know source code of almost all stdlib, have many Python-based Open Source projects and public talks. You can discover them above.
This is my second favorite language. It has quite a different philosophy rather than Python and it's great. Go gives you superpower that allows you to make blazing fast services and tools. I've just started using it, but already has some projects.
Ok, I know PHP. And hate it. This is my first web programming language, I've known it very well, but I try to avoid it. Also, I have public talk why PHP is bad. However, I know it and can read PHP code.
Yeah, this is not programming languages, but I know them, of course. I like the web so much, so I couldn't miss some frontend basic things. The layout of this site is quite nice, isn't it? This is just Bootstrap 4, but still.
Most of the time I use ORM or query builders, of course. But SQL knowledge is required for effective queries optimization and debugging. Luckily, a huge PHP background gives me these skills (PHP has no good ORM).
I've completed DBA1, DBA2, and DBA3 courses from Postgres Professionals company. So I little bit know how to set up, optimize and replicate PostgreSQL database.
I like this storage for speed and simplicity. For example, my bruteforce protection tool works on top of it.
Unfortunately, in Smena we lived with MySQL, so I know how to make replication and backups, how to set up a server and debug strange behavior.
I know how to set up and use it for the best security and performance, how to build good documents structure. BTW, I'm mongoengine contributor.
This is very fast storage with cool query syntax. In Smena we use it for data caching in ERP and for logs storage.
I like this framework! It's quite pythonic. I know it's source code better than the birthdays of my relatives. However Django has some issues for big projects, so I've made DjBurger.
This is the most popular web framework. An old, a little bit slow, but beautiful. So I know it very good, but I prefer to use more fast alternatives like Sanic. It's more modern and fast.
I like to work with DRF. This framework has some disadvantages, but also it's quite simple and popular.
It's the framework for RPC based microservices. I've worked with it and know how it works and how to use it for best performance.
This is the best ORM I've ever used. I know Django ORM source code and how to build and optimize queries of any difficulty level.
I work so much with it, but also I a little bit don't like it. This is an excessively low-level framework that doesn't intend to be used directly. I prefer Flask-SQLAlchemy and SQLAlchemy-mixins.
I use this ORM every time when I can't use Django ORM, but can avoid SQLAlchemy.
This is a great tool for fast and beautiful testing. I use it in every project where it is possible. I like to write tests because they helps to change the code without fear.
When I write load tests I use Locust. This is a simple Python-based load testing framework with good performance.
Docker is the most popular container system that allows you to develop and deploy your services faster and simpler. I've packed in Docker all infrastructure of Farfor (when I worked in Smena), all ML Pipeline and trading system in Cindicator and this all works perfectly on all environments from development to production.
For the development environment, I use docker-compose, because it is the most simple way to orchestrate docker containers. This one of the tools that I use every day.
Elastic Stack (ex. ELK) is the huge monitoring system to aggregate logs, messages, and state from all parts of the system. It includes Elastic Search, Logstash, Kibana, MetricBeat, FileBeat etc. I can monitor with it all infrastructure. You can find my demo stand of this system in python-syslog-logstash repository.
Sentry is a useful solution for error messages aggregation. I use it for 4 years and know how to build fast and reliable errors processing pipeline. Also, I've contributed to sentry too.
Zabbix is one of the most popular tools for servers and services monitoring. I have huge (and a little bit painful) experience with it. Also, I've written zabbix-healthcheck plugin that adds Flask applications monitor into Zabbix.
New Relic is a useful SaaS solution for performance monitoring of Python web applications. I know how to integrate it into projects, monitor state of the system and improve performance and load.
This is the secret ingredient that improved the performance of the report system in Smena team. It has gotten faster from 12 hours to 90 seconds. Also, this is the main instrument of my data researches.
I use NumPy for some simple statical analysis and matrix operations.
Right visualization is the most important part of effective data analysis. I use for it matplotlib and seaborn (second is more often).
It's Machine Learning! This is the most exciting thing in Data Science. I spend much free time for learning this beautiful domain. And scikit-learn one of the most important tools on this way.
Word2Vec transforms words into vectors, so you can compare them as vectors. I use this great tool in my chatbot.
Jupyter is a great stack for research. I use it almost every day and know how to setup Jupyter Hub, work with a remote core and other tricks.
This is my Swiss Army knife for security testing, APIs exploring and analyzing traffic from web, desktop, and mobile applications. I use it in my everyday work and like it.
This is a very powerful tool for service discovery and network audit. I know how to use it most effectively.
When I need to analyze raw traffic, I use Wireshark. This is hard and rare cases, but I like them.
My level is Intermediate (B1+) yet. However, I just started to learn English 6 months ago, so my skill is growing very fast. I'll know it very well soon, I hope.
I'm working with it every day, know how to estimate tasks, make informative descriptions and track progress most effectively. Also, I'm familiar to Jira and know how to use filters, dashboards, boards, search queries. In my hometown, I was a part of Atlassian User Group.
This is my favorite Agile methodology. I organized processes in my team by Kanban and use Trello board to order my personal tasks. And it works great!
I made my own web studio, CTF team, patronized newbies in Smena. Now I build and coordinate software architecture in Cindicator team. I can create, distribute, delegate, control, and estimate tasks, work with people.
I like to discuss tasks, manage them, organize my work time, estimate and prioritize. I'm always happy to communicate, but avoid spending work time. In Smena I've built perfect standups: fast and informative.
I like to talk to people about my tasks and knowledges, spread cool ideas. You can discover some of my talks above. Most of them on Russian, but I'm going to change it.
This is my favorite template engine. This page generated by Jinja2.
I know this tool very well. However, for dozens of requests, I prefer asynchronous solutions like aiohttp.
Dataclasses is a beautiful conception that I use in my projects every day. For example, in dephell. It helps to write beautiful and fast code. So, I know almost everything about this lib (and about dataclasses from Python 3.7 too).
I prefer other solutions like rq and huey, but celery is the biggest, most popular and only one good that can work with RabbitMQ, so I have huge experience with it.
Telegram messenger is very popular now, so I have experience in writing bots and direct working with telegram's protocol (MTProto).
Founder, Django web developer (Python).
2016-01 — 2017-05
Django web developer (Python).
2017-05 — 2018-06
Senior Python developer, architector.
2018-06 — now