I am a software engineer who has varying experience across many different areas. I spent almost a decade as a freelance web developer working on existing projects as well as creating my own solutions from scratch. My commercial and personal projects helped me to try many completely different tech stacks.
I love programming and my key strength is ability to rapidly learn anything that required to get the job done. I can work on any OS using any IDE or text editor. When I have task the only question is time.
Programming
Java: I’ve developed several small industry-specific CRM systems from scratch using following technologies:
- Spring Framework, Spring Boot.
- Hibernate ORM with Liquibase for migrations.
- Swagger for interaction with numerous REST APIs.
- Elasticsearch for internal search.
- Frontend using Angular / TypeScript.
PHP: I developed and maintaned small and middle sized web applications:
- Now I mostly use Laravel with Vue.js for frontend.
- Worked with CMS like WordPress, Drupal and frameworks like Zend, YUI.
- Worked with MariaDB, PostgreSQL and other SQL databases.
C++: Contributed to open source game engine for many years in my free time. Did everything from code review to build system and memory optiizations using Massif. Just some of libraries and tools I touched:
- Boost, SDL2, googletest.
- Development of desktop applications: Qt, Qt Creator, GDB.
- Profiling and debugging: Valgrind, Intel Parallel Studio.
- Static code analysis: Clang, Cppcheck, and Coverity, etc.
Other: Over years I used many other programming languages and tools to build software for me or my customers:
- Go to create Windows tools and working with API of services such as Trello.
- Python to create data processing tools and interact with Ethereum blockchain.
- Used Puppeteer from JavaScript and PHP to create automation solutions.
- Regular expressions. I’m big fan of them and constantly use them in my every day routine.
- Created some DApps using Solidity and web3.js for frontend.
- Created and built my own fork of OpenWRT router firmware.
Other experience
Cross-platform development: I used all three major OS for extended periods of time so I have know-how to deliver software to users across different platforms and ecosystems:
- Maintained CMake-based build and packaging system as well as continious integration for cross-platform game for Windows, macOS and Linux.
- Built own toolchains and used existing ones like Mingw, MXE and Vcpkg.
- I prefer Linux, but I use both macOS and Windows. I keep finger on the pulse of other platforms and able to work efficiently on any of them.
- I can do basic debugging and bug fixing in both Visual Studio and Xcode.
System administration: For more than decade I have been using Linux-based operating systems my primary OS for both my personal desktop and server infrastructure. I have a deep and broad experience with building, deploying, configuring and debugging open source software. I have used tools for automation and management for servers, virtual machines and containers: libvirt, Ansible, Docker, etc.
Git: I have extensive experience managing my own repositories as well as bisecting, rebasing and merging other people code. I’m not scared by merge conflicts, a need to rewrite history or dig into reflog.
Security analytics My another hobby is security and pentesting so I keep eye on modern attack and defense techniques.
Front end and design: Due to my web development background, I have experience with JavaScript, CSS and many frameworks and libraries. I only use my web design skills for my own projects, but my experience help me to see and avoid bad UI / UX.
Soft skills
I am fluent in English and Russian, but also interested in learning other languages.
I truly love to meet new people and communicate with them. I’m open minded person with a lot of friends across the globe and I use any opportunity to meet someone new.
Experience of maintaining of open source project and helping end-users as volunteer gave me confidence in my teamwork and organizational skills.