Telegram message eraser

[ PyPI ]     [ Github ]

I’m using Telegram messenger for the past few years and official Telegram clients still don’t have the ability to delete all of your own messages from chat/channel/dialog by one click without administrator help. So, that’s why I implemented interactive command line tool to solve this problem using Telethon library. It understands YAML (by default), JSON, and environment variables to specify credentials.

Perhaps, it will be implemented also as Flask web app in the future to give good usability for users.

Finally and officially hired

Hello everybody! I have good news (for me :smile:) ! I was hired! It will be my first full-time job in USA. Finally, I will be doing things that I like and benefit other people. I will be working as a Python DevOps Developer. My first day will be on May 15.

A short story about my professional life

One person asked me to write short story about “How you fell in love with coding?”

A little bit about me: since I was seven, the IT industry was always around me. It was very interesting to understand how one or the other device works, especially how hardware like CPU and GPU are made. As a result, I have always been working with the hardware from ZX Spectrum to the present day hardware - in fact, since I was fourteen, I was interested in assembling PC.

Task on C for interview

One of the companies where I applied for a job, gave me this task for an interview. Task is mainly focused on knowledge of C programming language and data structures.

In my opinion, best solution is by using hash tables, because task involves frequent use of search and insert operations (Hash tables are O(1) average and amortized case complexity) of key-value pairs; where key is unique word (string) that gotten from an input document, and value is array of lines (positive integer) from the input document where the word appears.
My implementation of hash table was based on implementation from PineWiki by JamesAspnes. This implementation is quite simple and it is not so good in terms of performance (especially for production), as jwHash. Also, I implemented the task on C++ and Python for myself, where I used containers that are already implemented and contained in C++ STL (unordered_map, map and vector) and Python (dict and list).

Of course, fastest implementation was in C++. Unfortunately, I did not use all the abilities of C. Also, it is not a very good implementation of hash table based on chaining instead of open addressing.

Big-O Algorithm Complexity Cheat Sheet