Scroll To View More
Denis Kyorov, Python Developer in London, United Kingdom
Denis Kyorov

Python Developer in London, United Kingdom

Member since December 2, 2013
Denis is an experienced Python/Go developer (7+ years) who has contributed to a wide range of challenging projects involving distributed systems, back-end RESTful programming, microservice architectures, data pipelines design, and event-driven architectures. He's generally involved in everything back-end related.
Denis is now available for hire

Portfolio

Experience

  • Test-driven Development (TDD), 7 years
  • Agile Software Development, 7 years
  • Python, 7 years
  • Go, 5 years
  • Event Sourcing, 4 years
  • CQRS, 4 years
  • GRPC, 3 years
  • Kubernetes, 3 years
London, United Kingdom

Availability

Part-time

Preferred Environment

Mac OS X, PyCharm, Vim

The most amazing...

...project I've been involved in is "func," a remote management tool for server automation which I worked on during my participation in Google Summer of Code.

Employment

  • Platform Engineer

    2017 - 2018
    Datapipe Europe, Ltd.
    • Designed/maintained/implemented easy-to-use APIs (managing k8s clusters, databases, network file systems) for the rest of the teams based on GRPC and REST.
    • Designed and created APIs to run Terraform modules which were responsible for all of the infrastructure management that other teams were relying on.
    • Designed and implemented CI/CD pipelines (unit, integration, smoke) for infrastructure APIs, so full testing can be done before other teams use them.
    • Designed and implemented event-driven architecture which was powering the infrastructure APIs which helped having a more reactive and loosely coupled system.
    • Worked on a tool which helped other teams install their helm charts as part of their CI/CD pipeline.
    Technologies: Golang, Kubernetes, Terraform, AWS, Python, Docker
  • Python/Go Core Back-end Engineer

    2014 - 2017
    Gluru, Ltd. (United Kingdom)
    • Created event-driven architecture with DDD principles and event sourcing in place.
    • Helped build a distributed data pipeline With RabbitMQ, Kinesis, and microservices.
    • Helped the company to switch to microservice architecture from monolithic in a gradual way and still supporting the production environment.
    • Helped implement the data collectors which were at the core of the business and were supplying the data for the distributed pipeline.
    Technologies: Python, Golang, Cassandra, RabbitMQ, Elasticsearch, DDD, Event Sourcing, CQRS, Kinesis, Redis, Kubernetes, Microservices
  • Full-Stack Django Developer

    2014 - 2014
    DigitalFirstVentures (via Toptal)
    • Created an auto scraping system with ScraPy that was collecting data from various sites periodically.
    • Created various background tasks that were responsible for heavy tasks with Celery.
    • Created a Django REST API for representing the collected data on ElasticSearch.
    • Wrote a component that was responsible for collecting and caching geo data for various addresses.
    • Created simple to use deployment scripts with Ansible.
    Technologies: Python, Scrapy, Django, ElasticSearch, Redis, Celery, Ansible, Linux
  • Back-End Python Web Developer

    2013 - 2013
    MobSafety
    • Worked on platform back-end, which primarily consisted of REST services, for Learnpal, a mobile learning platform for students. Its main purpose is to help schools manage, secure, and utilize mobile devices effectively in the classroom.
    • Created a content publishing service for students in which teachers could suggest content from different sources. Involved retrieving data from iTunes, Google Play, and other sources in order to publish them in a unified data format for front-end development.
    • Contributed to a service that prevented students from visiting inappropriate sites.
    • Worked as the Python team lead in the final stages of the project.
    Technologies: Python, Flask, MongoDB, Celery, REST
  • Back-end Python Web Developer

    2012 - 2013
    Blue Chocolate, Inc.
    • Developed and maintained back-end REST API for the application front-end for Getsendtask, a web app for sending tasks between users. The idea was to integrate email clients with task lists so as to simplify the sharing and sending of tasks.
    • Created several modules for batch processing with Celery.
    • Developed an integration module which allowed users to send tasks to their Google contacts.
    • Deployed and released the product back-end.
    Technologies: Python, Flask, MongoDB, Celery, REST
  • Back-End Python Developer

    2011 - 2012
    Shooju
    • Created parsers to gather data from a variety of sources and formats (XLS, CSV, remote APIs), as well as convert said data into pre-defined, easy to process formats, for Shooju, a platform for data retrieval.
    • Created a multi-processing worker framework for managing data retrieval which scaled according to a client's needs.
    • Developed a modified version of the IPython notebook application which allowed users to create data parsers easily within their web browser.
    • Worked on a Flask REST API (backed by CouchDB) to manage worker processes which were collecting data from different sources.
    Technologies: Python, ZeroMQ, Flask, CouchDB, IPython, Tornado
  • Embedded Linux Developr, Java Back-end Developer

    2010 - 2011
    Skynet A.Ş
    • Developed C modules (mainly extensions of the Net-SNMP protocol) for an embedded switch project which was running on Linux OS.
    • Worked on an embedded ARM project in which I developed a module that allowed a board to update itself when a newer firmware version was available.
    • Worked as a Java developer in a remote data reading project which involved reading and organizing data from remote metering devices.
    • Created a multi-threaded data processing framework in Java that was able to read many remote metering devices simultaneously.
    • Created parser modules for remote metering devices and store the output data in a unified format.
    Technologies: C, POSIX, Java, Spring, Linux
  • Back-End Java Developer

    2009 - 2010
    Netmera A.Ş
    • The company's main product was a social networking web app which was based on Google's OpenSocial framework (now known as Apache Shindig).
    • Worked with the Spring MVC framework to handle front-end requests.
    • Deployed and managed the company's Linux servers.
    • Worked on the Shindig source code to extend their gadget templating engine.
    • Created OpenSocial-compatible gadgets.
    Technologies: Java, Spring, MySQL, Linux , JavaScript, OpenSocial

Experience

  • Event Sourcing Kit (Eskit) (Development)
    https://github.com/makkalot/eskit

    Eskit is a collection of microservices built on top of Event Sourcing Idea. It can be useful for people who want to try out event sourcing.

  • Enlivepy – Python HTML Transformation Librarry (Development)
    https://github.com/makkalot/enlivepy

    This is a Python port of Clojure's Enlive library for HTML transformation that I've released recently.

  • Open-source Projects (Other amazing things)
    https://github.com/makkalot

    In my spare time, I love working on open-source projects.

  • Django, Flask, and Redis Tutorial: Web Application Session Management Between Python Frameworks (Publication)
    I love and use Django in lots of my personal and client projects, mostly for those involving relational databases and more classical web applications. However, by design, Django is very tightly coupled with its ORM, Template Engine System, and Settings object. Plus, it's not a new project: it carries a lot of baggage from the past to remain backwards compatible. In a few of my client projects, we've chosen to give up on Django and use a micro framework like Flask, typically when the client wants to do some interesting stuff with the framework. At the same time, we often need user registration, login, and more, all of which is easily handled with Django. The question emerged: is Django an all-or-nothing deal? Should we drop it completely from the project, or is there a way to combine some it with the flexibility of other frameworks?

Skills

  • Languages

    Go, Python, JavaScript, SQL, C
  • Frameworks

    GRPC, Flask, Django, Apache Thrift, Scrapy, Pyramid
  • Libraries/APIs

    Redis Queue, Gevent, ZeroMQ
  • Paradigms

    Event Sourcing, CQRS, Test-driven Development (TDD), Functional Programming, Agile Software Development, Concurrent Programming
  • Tools

    RabbitMQ, Terraform, Celery, Ansible, Vagrant, Git, Virtualenv, PyCharm, AWS SQS
  • Platforms

    Amazon Web Services (AWS), Linux, Kubernetes, AWS Kinesis, Docker
  • Storage

    NoSQL, MongoDB, Redis, Elasticsearch, PostgreSQL, MySQL, CouchDB
  • Other

    Kubernetes Operations (Kops), Domain-driven Design (DDD), Apache Cassandra, Tornado

Education

  • Bachelor's degree in Computer Science
    2003 - 2008
    Yildiz Technical University - Istanbul, Turkey
I really like this profile
Share it with others