Denis Kyorov, Developer in London, United Kingdom
Denis is available for hire
Hire Denis

Denis Kyorov

Verified Expert  in Engineering

Software Developer

Location
London, United Kingdom
Toptal Member Since
February 4, 2014

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.

Portfolio

Datapipe Europe, Ltd.
Amazon Web Services (AWS), Docker, Python, Terraform, Kubernetes, Go
Gluru, Ltd. (United Kingdom)
Microservices, Kubernetes, Redis, Amazon Kinesis, CQRS, Event Sourcing...
DigitalFirstVentures (via Toptal)
Linux, Ansible, Celery, Redis, Elasticsearch, Django, Scrapy, Python

Experience

Availability

Part-time

Preferred Environment

Vim Text Editor, PyCharm, MacOS

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.

Work Experience

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: Amazon Web Services (AWS), Docker, Python, Terraform, Kubernetes, Go

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: Microservices, Kubernetes, Redis, Amazon Kinesis, CQRS, Event Sourcing, Domain-driven Design (DDD), Elasticsearch, RabbitMQ, Cassandra, Go, Python

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: Linux, Ansible, Celery, Redis, Elasticsearch, Django, Scrapy, Python

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: REST, Celery, MongoDB, Flask, Python

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.

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: Tornado, IPython, CouchDB, Flask, ZeroMQ, Python

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: Linux, Spring, Java, POSIX, C

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: OpenSocial, JavaScript, Linux, MySQL, Spring, Java

Event Sourcing Kit (Eskit)

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

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

https://github.com/makkalot
In my spare time, I love working on open-source projects.

Languages

Go, Python, JavaScript, Java, SQL, C

Frameworks

gRPC, Flask, Django, Spring, Apache Thrift, Scrapy, Pyramid

Libraries/APIs

Redis Queue, Gevent, ZeroMQ, POSIX

Paradigms

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

Other

OpenSocial, Kubernetes Operations (kOps), Domain-driven Design (DDD), Apache Cassandra, Amazon Kinesis, Tornado

Tools

RabbitMQ, Terraform, Celery, Ansible, Vagrant, Git, Virtualenv, PyCharm, IPython, Vim Text Editor, Amazon Simple Queue Service (SQS)

Platforms

Amazon Web Services (AWS), Linux, MacOS, Kubernetes, Docker

Storage

NoSQL, MongoDB, Redis, Elasticsearch, PostgreSQL, MySQL, CouchDB, Cassandra

2003 - 2008

Bachelor's Degree in Computer Science

Yildiz Technical University - Istanbul, Turkey

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring