Eugene Mironov
Verified Expert in Engineering
Software Developer
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
Experience
Availability
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
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.
Software Engineer
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.
Server-Side Programmer
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.
Server-Side Programmer
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.
CTO
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.
CTO
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.
Developer
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.
Experience
C++ Unity Policy Server
https://github.com/helper2424/unity_policy_server_nativeIn 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_serverWhen 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_dumperSeveral 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
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/paramsSometimes 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/celluloidCoursera Course: Introduction to Machine Learning by the Higher School of Economics
https://www.coursera.org/account/accomplishments/certificate/F7SG7USQTXCUSkills
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)
Education
Master's Degree in Business Informatics
Chelyabinsk State University - Chelyabinsk, Russia
Bachelor's Degree in Computer Science
South Ural State University - Chelyabinsk, Russia
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring