Eugene Mironov, Developer in Chelyabinsk, Chelyabinsk Oblast, Russia
Eugene is available for hire
Hire Eugene

Eugene Mironov

Verified Expert  in Engineering

Software Developer

Location
Chelyabinsk, Chelyabinsk Oblast, Russia
Toptal Member Since
May 29, 2017

Eugene is a talented software engineer with more than 8 years of development. He has extensive experience with Ruby, Java, and C++ and strong back-end skills. He has experience in building and leading teams. He enjoys solving difficult technical problems and learning new technologies. He's also keen to develop products that would help your business.

Portfolio

Happy Games Studio
Redis, PostgreSQL, ECMAScript (ES6), Linux, C++, Go, Ruby on Rails (RoR), Ruby
Andersen Systems
Redis, Ruby on Rails (RoR), Ruby
Rockstone
Libev, Libevent, Flash ActionScript, Boost, C++

Experience

Availability

Part-time

Preferred Environment

Git, PyCharm, RubyMine, NetBeans, IDEA IDE, Linux, Unix, MacOS

The most amazing...

...thing I have ever built is a distributed server-side application for a real-time multiplayer game which I had worked previously on.

Work Experience

Back-End Developer

2016 - PRESENT
Happy Games Studio
  • Developed a Rails-based API back-end.
  • Migrated a perfomance bottlenecks subsystems to Golang.
  • Created a C++ based push notification system for social media networks.
  • Developed an analytics system for game projects.
  • Built administrative panels for games.
  • Developed parts of a client that was dependent on server communications and social media APIs.
  • Supported and administered company Debian servers with launched services.
Technologies: Redis, PostgreSQL, ECMAScript (ES6), Linux, C++, Go, Ruby on Rails (RoR), Ruby

Software Engineer

2016 - PRESENT
Andersen Systems
  • Developed client (Ereserve company) gems for bibliographic searching through services like EBSCO, OCLC, Sierra, Summon, and more.
  • Built client (Ereserve company) gems for integration with learning management systems like Moodle, Canvas LMS, and Brightspace LMS.
  • Developed and supported client (Ereserve company) gems for work with binary bibliographic protocol z39.50.
  • Researched third-party services for bibliographic search ability, and holdings availability extracting.
  • Supported client (Ereserve company) gems for extracting bibliographic details from existing protocols.
  • Interviewed new developers for Andersen Systems.
  • Managed the work of one junior developer.
Technologies: Redis, Ruby on Rails (RoR), Ruby

Server-Side Programmer

2015 - 2016
Rockstone
  • Developed the C++ server-side of a game.
  • Designed the client-server architecture of a game (С++, Unity3D, ActionScript).
  • Provided technical support of the game.
  • Developed the game physics and game business logic.
  • Implemented the client-server synchronization (for a real-time game).
  • Managed the back-end development team of 3 people.
  • Created a game analytics system.
Technologies: Libev, Libevent, Flash ActionScript, Boost, C++

Server-Side Programmer

2014 - 2015
RealGames
  • Developed a C++ based server for real-time games.
  • Designed client-server communications for company projects.
  • Managed the server-side development with a 2 developer team.
  • Developed the company analytics system.
Technologies: Libev, Libevent, Unity3D, Boost, C++, Ruby on Rails (RoR), Ruby

CTO

2013 - 2014
R3Studio
  • Gathered a strong developer team from scratch.
  • Built and launched the first game project which was a sessional multiplayer football simulator.
  • Created and launched several satellite games and one casual Match 3 game.
  • Developed an analytics system for company projects.
  • Built a strong server-side architecture.
  • Managed a 10 person team as the team lead.
  • Supported the company's servers.
  • Built a scrum-based development process.
Technologies: Unity3D, MongoDB, Netty, Java, Ruby on Rails (RoR), Ruby

CTO

2010 - 2013
x01d
  • Developed several Ruby on Rails projects for Russian startups to outsource.
  • Developed with colleagues a web service which aggregated, filtered, and analyzed orders from outsourcing marketplaces. This service gave the ability for my team to successfully conquer the market of Russian freelancing.
  • Received a grant from the Foundation for Assistance to Small Innovative Enterprises in Science and Technology to research in the field of semi-structured data collection.
  • Undertook my first management experience where I managed a team of 2 people.
  • Got acquainted with Agile on practice.
Technologies: CoffeeScript, Backbone.js, MongoDB, Sass, Python, Ruby on Rails (RoR), Ruby

Developer

2009 - 2010
x01d
  • Developed my first project which was a multiplatform shared clipboard for MacOS, Windows, and Linux.
  • Developed image hosting for x01d needs.
  • Built a code hosting service.
  • Created a URL shorter service.
  • Gained my first outsourcing experience.
Technologies: Python, Bash, PHP, Qt, C++

C++ Unity Policy Server

https://github.com/helper2424/unity_policy_server_native
This is a C++ implementation of the Unity Policy Server. I shared a previous implementation with friends from other game development Russian studios, and they asked me to write a C++ implementation that can also be built to execute a file. The reason was that there were difficulties with the Java administration.

In the root catalog, you can see README file which has the usage details.

It needs a simple server to work with Unity Web Player. Unity Web Player is a browser extension that allows the start Unity (https://unity3d.com/ru/) games in the browser. NPAPI (https://en.wikipedia.org/wiki/NPAPI) is deprecated in most browsers and Unity Web Player doesn't work there anymore (Unity ended support). Unity Web Player had a security system which has the next algorithm.

When the game requires one to connect to the server through TCP/UDP it sends through TCP or UDP respectively request with permissions to ask the server to host the 843 port. The server replays XML with permission details. If the client received these details and the server allows access then the client creates a TCP connection to the server or starts to send datagrams. Without a Policy Server, the Unity client will not work with servers.

Java Unity Policy Server

https://github.com/helper2424/unity_policy_server
This is a simple server to work with Unity Web Player which is a browser extension which allows the user to start Unity (https://unity3d.com/ru/) games in a browser. Now NPAPI (https://en.wikipedia.org/wiki/NPAPI) is deprecated in major browsers so Unity Web Player doesn't work there (Unity closed Web Player support and nobody develops games for Web Player so this server doesn't exist anymore). Unity Web Player had a security system which has the next algorithm.

When a game requires one to connect to a server through TCP/UDP it sends through a request TCP/UDP with permissions ask the server host to the 843 port.

The server replies with XML and permission details. If the client receives the details and the server allows access, then the client creates a TCP connection to the server or starts to send datagrams. Without a Policy Server, Unity Client won't work. So the Unity Policy Server was a simple, but necessary tool. I implemented it with Java/Netty (http://netty.io/) toolchain. It works simply—the server accepts connections to the 843 port (you can customize this), sends an XML file with permissions (you can customize this), and closes the connection.

To start the server, you can use a built jar in the target directory.

Asana Dumper

https://github.com/helper2424/asana_dumper
This is a tool for creating a dump of all the project data from https://app.asana.com/ (task-tracker).

Several weeks ago, my friend asked me to write a cross-platform tool which can dump of all the tasks from any Asana project. Asana limited it to non-administrator users and my friend is not an administrator. So, I wrote this tool for him and it successfully works. It works through a REST Asana API and the user's cookies from the Asana website.

Ruby Game Analytics Integration Library

A server-side integration for the event-based API Game Analytics (GA) that provides analytics for games. You send different types of events with detailed information to GA servers, and the service automatically presents a lot of infographics, including charts, tables, funnels, and graphs, with analytics about your game. GA has many SDKs but is targeted toward mobile game developers, and all SDKs should work on the client side.

We used it on the client side, but our game is not mobile, and we sent the in-app payment information from the server. Ruby is not usually seen in the mobile front-end, so GA doesn't have an SDK for Ruby. This is what we needed to implement by ourselves.

Interview Ruby Task

https://github.com/helper2424/params
For this project, I worked remotely for an Australian startup via a third party Russian company. They solve all the organization problems and they find developers from Russia and companies from around the whole world and connect them.

Sometimes I interview new candidates and make trial assignments for foreign companies. Here is an example of the assignment—there was a European medical company that made software for customer relationships, and analyses of the data.

In a trial assignment, I was supposed to make a library for a Rails application which would allow the creation of records with a free-field structure, allow the management of this structure, and move this data between application environments. This was an easy task and I can freely share it.

Celluloid Open Source Project

https://github.com/celluloid/celluloid
This is a Ruby open-source project which I am currently working on.

Coursera Course: Introduction to Machine Learning by the Higher School of Economics

https://www.coursera.org/account/accomplishments/certificate/F7SG7USQTXCU
This course made by Yandex (a Russian search engine company). It gives a good overview of machine learning and high theoretical basics and base skills for working with machine learning through Python.

Languages

Ruby, C++, Bash, Python, Sass, CoffeeScript, Flash ActionScript, Go, ECMAScript (ES6), C#, C, CSS, HTML, Scala, JavaScript, Java 8, SQL, Java, PHP

Frameworks

Ruby on Rails (RoR), Boost, Qt, Linux OpenSuSe, Netty, Redux, Box2D, Celluloid, Unity3D

Tools

RSpec, Git, NGINX, Mercurial, IDEA IDE, RubyMine, PyCharm, CMake, Webpack

Other

Web Development, Data Analysis, Libev, Machine Learning, Ruby Gems, Game Analytics

Libraries/APIs

Facebook Open Graph API, Sidekiq, Standard Template Library (STL), React, Libevent, Backbone.js, OpenCV, Pandas, Scikit-learn

Platforms

Linux, Debian, MacOS, Unix, NetBeans, Amazon Web Services (AWS)

Storage

PostgreSQL, MySQL, SQLite, MongoDB, Redis

Paradigms

Test-driven Development (TDD)

2012 - 2014

Master's Degree in Business Informatics

Chelyabinsk State University - Chelyabinsk, Russia

2008 - 2012

Bachelor's Degree in Computer Science

South Ural State University - Chelyabinsk, Russia

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