- ContractorFreelance2001 - PRESENT
- Performed a transition of a large and complex Postgres database to MongoDB.
- Wrote an event-based object document mapper to work with MongoDB documents in perl.
- Created a custom Perl framework for web projects, and then decided to abandon it, because Mojolicious is better.
- Used AngularJS to build a single-page web application.
- Re-implemented the entire codebase of a project to work asynchronously using Mojolicious.
- Senior Perl DeveloperCrazy Panda2011 - 2015
Technologies: Perl, Catalyst, PostgreSQL, Linux, Bash, Nginx
- Designed data structures and algorithms for back-ends for online gaming projects.
- Created an API for back-ends to work with Flash and mobile front-ends.
- Cooperated with front-end developers to organize coherent and flawless work of back-end servers together with the client side.
- Wrote thousands of unit tests to ensure stable and (almost) bug-free work of app servers.
- Performed profiling, refactoring, and optimization of the codebase for some projects in the company.
- Architect, Senior Perl DeveloperOntico2006 - 2011
Technologies: Perl, mod_perl, Linux, PostgreSQL, Apache, Nginx, Memcached
- Worked on a number of projects for clients of the company.
- Contributed to the development of a Perl-based web framework that the company used as a fundamental part for numerous high-load projects.
- Implemented a back-end for a media library that included video processing and streaming.
- Used Sphinx to run full text search on a huge and quickly growing web forum.
- Communicated with end-users to gather feedback, and to understand their needs that had to be fulfilled with the products that the company was developing.
- Web DeveloperChess Server iGame.ru2001 - 2006
- Designed the whole project from scratch.
- Implemented a bunch of major features: round robin tournaments, chess teams, team competitions, etc.
- Implemented transition to new technologies. For example, CGI to mod_perl.
- Designed the database layout, maintained its work, and introduced some measures to keep up with the growing popularity of the project.
- Continuously refactored the code to keep the growing codebase in good shape.