Badges
Certifications
Work Experience
Software Engineer
homodevelopus•  April 2019 - Present
In my current job, I make a service for data analysis. I make data aggregations with the help of elasticsearch. The most interesting thing for me in that project is the creation of a search queries generator. Service receives the names of conditions together with parameters and then converted them to elasticsearch DSL. Queries could be simple like search by single or multiple attributes, and complex with aggregations. For some conditions scripted metric aggregation of the elasticsearch had to be used. All data that came to service at first was sent to rabbitmq and after that to elasticseach index.
Software Engineer
Pravo.ru•  April 2015 - April 2019
My first project at position backend developer was a parser of specific websites. My responsibilities were making and updating the parser's modules. I wrote a class with a lot of regular expressions that extract needle information from HTML. Also, there were documents in pdf and Docx format. These documents were converted into HTML with PDF2HTML converter and after that information was extracted, cleaned and formatted. On that project, I had hands-on experience with a high-load system that stored hundreds and thousands of terabytes of data. Another part of my work was extracting keywords by given rules from text and linking documents with these words. For example, I had to found documents number, date of documents, surnames. On this project, I learned well how to work with queues, particularly with Rabbitmq. I learned how to write jobs and consumers. As there was a very big MySQL database I learned how to deal with that, how to write efficient queries. In my second project, I worked on a search service. The search was available in the documents that we had collected on the previous stage. For the backend we used Laravel and for frontend React. I did the backend. Mostly it was REST API service for frontend. The frontend sent queries and the backend sent it further to the service that worked on Elasticsearch. I also created an admin panel for that service. Another interesting part of the project was billing and user management. The documents could be exported asynchronously, we made it with the help of websockets. For this functionality, we made a socket server on node.js. For the third project, my responsibilities included developing REST API backend. Apart from simple things like CRUD operations with documents, there was more complicated functionality. The system allowed uploading Microsoft word and pdf formats. A user was able to edit these documents online with the help of our frontend that was on React. For documents of DOC type, we extracted XML from doc archive, made changes and put modified XML back to the archive. For the documents of doc type to be seen in browser, we converted them to pdf.
Software Engineer
Tridit•  September 2009 - April 2015
At the beginning of my career, I did a lot of HTML, CSS, JQuery development. Mostly I worked with CMS Drupal. I had typical tasks like taking an image of a webpage, cutting elements, making HTML, making CSS and finally integrate all of that stuff with CMS. And then adjusting settings in the CMS.
Education
Samara State University
Mathematics, BE•  September 2003 - July 2009