Scroll To View More
Vladimir Kovalev, Software Developer in London, United Kingdom
Vladimir Kovalev

Software Developer in London, United Kingdom

Member since March 25, 2016
After spending more than three years at a company that develops automated trading software, Vlad understands the importance of testing and reliability. He is a man with a strong academic background who is keen on working with new technologies and communicates extremely well.
Vladimir is now available for hire

Portfolio

Experience

  • Java, 5 years
  • Python, 5 years
  • Pandas, 4 years
  • Scala, 2 years
London, United Kingdom

Availability

Part-time

Preferred Environment

JetBrains IDEs/Visual Studio, Linux Shell

The most amazing...

...piece of software I've developed is a low latency system for developing, testing and running crypto-currency trading strategies against multiple exchanges.

Employment

  • CTO

    2017 - PRESENT
    Cryptocurrency Trading Startup
    • Designed and implemented from scratch a system for trading cryptocurrencies across a number of cryptocurrency exchanges.
    • Configured a complete workflow (code development, testing, and deployment) with GitLab, AWS, and Docker.
    • Developed tools for low latency real-time and historical data collection from multiple sources.
    • Contributed to CCXT: the biggest open-source crypto-currency exchange unification API.
    • Built a monitoring/alerting framework for all parts of the system with Humio.
    • Created an elastic, on-demand data-processing pipeline for captured market data.
    • Implemented a library for unified low-latency order management for multiple exchanges.
    • Built a graphical interface for monitoring and controlling trading strategies.
    • Created a high-performance strategy back-testing system with Cython.
    • Applied data analysis and machine learning techniques, including reinforcement learning, during trading strategy development.
    Technologies: Python, Cython, AWS, Docker, JavaScript, React, NumPy, Pandas, TensorFlow
  • Software Developer

    2017 - 2017
    FiveStars (via Toptal)
    • Worked on a variety of internal tools written in Python.
    • Created an integration testing framework for the unified API used by FiveStars' internal and client-facing applications.
    • Built a tool for tracking the time it takes for various scenarios (in the context of a mobile application) to be performed by a human.
    • Implemented a framework for executing UI tests against a client-facing mobile application.
    • Produced reporting tools that monitored the state of the unified API used by FiveStars' internal and client-facing applications.
    Technologies: Python, AWS, Docker, Pandas, Kubernetes
  • Software Engineer

    2013 - 2017
    GSA Capital
    • Designed and implemented a number of APIs and data processing pipelines which are heavily relied upon during live automated trading.
    • Debugged and fixed production-critical systems in severe time constraints.
    • Designed large SQL databases (hundreds of gigabytes).
    • Carried out performance-tuning of various systems (JVM-based, Python, SQL).
    • Performed data analysis using Python (Pandas), SQL, and Scala (Saddle).
    • Helped the team maintain a custom deployment system and the SQL server farm and file servers.
    Technologies: Java, SQL, Python, Scala
  • Software Engineer Intern

    2012 - 2012
    Microsoft
    • Developed a real-time, code-coverage tracking tool for a multi-user environment with a feature to let engineers modify local state inside processes executing on a remote machine. The tool allowed the company to significantly simplify the process of testing hosted applications.
    • Extended a code-coverage tool for which the source code was unavailable via reverse engineering.
    Technologies: C#, SQL
  • Software Engineer Intern

    2011 - 2011
    Ubisense
    • Developed a Silverlight application, targeted for Windows tablets, that harnessed a Ubisense USB-sensor to provide information about Ubisense active tags in the user’s environment.
    • Performed testing of the above application at a customer’s site.
    Technologies: C#, Java

Experience

  • House Prices EDA and Prediction (Development)
    https://github.com/kovalevvlad/machine-learning/tree/master/house-prices

    This project solves the "Kaggle House Prices" problem which is available at the Kaggle website. In addition to solving the prediction problem, I perform a basic analysis of the dataset.

    Technologies used: Python, Pandas, Scikit-learn, Matplotlib

  • Java RESTful Service and Angular front-end (Development)
    https://github.com/kovalevvlad/swimlog

    Application Overview
    • Users are able to create accounts for tracking their swimming session records. When logged in, users are able to create, delete and update their own swimming logs.
    • Users can take one of three available roles: user, admin, and manager. A regular user is only able to access their own records, a manager is able to CRUD users, and an admin is able to CRUD all the swimming records and users.
    • Each swimming log entry has a date, distance, and time and an average speed.
    • Users are able to filter the log by dates.
    • Each user has some basic statistics displayed for their log.

    Back-end
    • The back-end is written in Java and is using the Jersey framework. H2 is used for data storage. The back-end is completely made with RESTful and all operations are performed via REST endpoints.

    Tests
    The service is comprehensively covered by end-to-end tests.

    Technologies used: Java, Jersey, JUnit, Angular

  • Poker Simulator (Development)
    https://github.com/kovalevvlad/poker-simulator

    Motivation
    Have you ever played poker and wondered what your probability of winning in a particular situation was? If you have, this project can help.

    Implementation
    This project implements a simple REST get endpoint which can be queried with various poker game states to obtain a probability of winning in that state.

    The application works by running a Monte-Carlo simulation evaluating random outcomes of the game. It then computes the number of random generations in which the player querying the service won. This allows the back-end to estimate the probability of winning in the specified game state.

    Technologies used: Python

  • Chaos CSV Writer (Development)
    https://github.com/kovalevvlad/chaos-csv

    Motivation
    Have you ever had a production dependency on data delivered via a CSV? How many times have your production processes broken because you were using a half-baked CSV reader which could not handle commas or escaped double quotes inside CSV data cells? For more gotchas check this article.

    Chaos CSV has been created to address this problem by generating valid CSV files which are unreadable with half-baked CSV readers.

    Would you not be happy if all of the CSVs that you read were written with this approach?

    For those of you who think "Why would anyone parse a CSV themselves or use a crappy CSV reader?" As of December 19, 2016, the most popular Scala CSV reader (at least according to a Google search) was Totoshi/Scala-CSV which cannot handle delimiters inside quotes.

    Technologies used: Scala

Skills

  • Languages

    Python, Scala, SQL, Java, C#, JavaScript
  • Libraries/APIs

    Scikit-learn, Pandas, React, NumPy, SciPy, Matplotlib
  • Tools

    Git, ScalaTest, Pytest, Maven, SBT, Code Climate, Jenkins, CircleCI, Apache Ant
  • Storage

    Microsoft SQL Server, Redgate SQL Toolbelt
  • Frameworks

    Django, Flask, AngularJS, JUnit, Mockito, Jersey
  • Paradigms

    Data Science, Defensive Programming, Functional Programming, Test-driven Development (TDD), REST
  • Platforms

    Kubernetes, Docker, Amazon Web Services (AWS), Heroku, Linux, Windows
  • Other

    Machine Learning, Cython

Education

  • Bachelor's degree with first class honors in Computer Science
    2010 - 2013
    University of Cambridge - Cambridge, UK
I really like this profile
Share it with others