Skills

Software Project Management Requirements Analysis Software Design Jira Continious Integration DevOps Jenkins Bamboo Ansible Vagrant Chef Docker Client Stack javascript AngularJS unit-testing requirejs grunt gulp karma karma-test-runner amd AWS amazon-web-services elastic-beanstalk autoscaling EC2 container service amazon-vpc NodeJS express restify MongoDB mongoose monitoring troubleshooting .NET C# Razor SSRS asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 DI-ninject Miscellanous: Google Closure HTML5 gaming HTML5 gitflow MySQL InnoDB tuning T-SQL yii yii2 composer-php memcached highload

Experience

Independent contractor
08 / 2014 - Present

Bespoke software development

LAMP stack (PHP, MySQL, Linux)

NoSQL (mongodb)

Client stack (javascript core, jquery, Angular js, HTML5 apis)

Pure JS stack (Javascript, AngularJS Node.JS, mongo, Karma test runner)

DevOps: Chef, Vagrant, Ansible

Tools: Jenkins, Bamboo

Software development company
05 / 2006 - 08 / 2014 Present
Team leader

I used to plan and execute set of set of small/medium size projects done by web solutions department of bigger software development company. Lot of my efforts were spent on work coordination of the software developers team, help in building solution architecture, work breakdown structure and estimates, proceeding with implementation.

Project architecture selection, evaluating alternatives.

Software development company
04 / 1999 - 05 / 2006
Software developer, project manager

Number of different projects implemented in set of technologies. More details on request.

Software development company
07 / 1997 - 04 / 1999
Junior Software Developer

I was involved as a junior developer into number of commercial projects developed at that moment. Business area: healthcare.

Education

Lviv Politechnic National University
1994 - 1999
master , applied mathematics, software development

Interests

DevOps, Javascript, AngularJS, AWS, NodeJS, MongoDB, .NET, MEAN, LAMP,

Certifications

IBM Certified Solution Developer, XML and Related technologies
06 / 2005 Prometric Testing Center · License: M05DUS500A
Project Management Professional
04 / 2012 - 04 / 2018 Project Management Institute(PMI) via Prometric Testing Center · License: 1498620
Programming in HTML5 with JavaScript and CSS3
01 / 2013 Microsoft via Prometric Testing Center · CertificationID: 9723821

Languages

English
IELTS-7 Professional working proficiency
Russian
Native or bilingual proficiency
Ukranian
Native or bilingual proficiency
Polish
Limited working proficiency

Continuing education

2012

MongoDB for Developers
2012, 10Gen · M101
Technology Entrepreneurship
2012, VentureLabs ·
MongoDB for Python Developer
2012, 10Gen · M101P

 

2013

MongoDB for DBAs
2013, 10Gen · M102
Stanford's Design Thinking Action Lab
2013, NovoEd platform ·
Stanford's Startup Engineering
2013, Coursera ·
Business Process Modeling and Analysis
2013, OpenHPI, Hasso Plattner Institute ·

2014

An Introduction to Marketing
2014, Coursera · The Wharton School of the University of Pennsylvania
Parallel Programming Concepts
2014, OpenHPI · Hasso Plattner Institute
Internetworking with TCP/IP, by prof. Dr. Christoph Meinel
2014, OpenHPI · Hasso Plattner Institute
IT team management basics (Основи управління командами в ІТ)
2014, LITS · Lviv IT School

2015

Automated Visual Software Analytics, by prof. Dr. Jürgen Döllner
2015, OpenHPI · Hasso Plattner Institute
Exploring English
2015, FutureLearn · British Council
Understanding IELTS
2015, FutureLearn · British Council
Knowledge Engineering with Semantic Web Technologies
2015, OpenHPI · Hasso Plattner Institute

2016

BPMN Meets DMN: Business Process and Decision Modeling, by prof. Dr. Mathias Weske
2016, OpenHPI · Hasso Plattner Institute

2017

Publications

Controlling Amazon echo dot with shell: a bit of fun

Brief: Quick overview illustrating possibility to send some commands, including text to speech to amazon echo devices without need to write custom Amazon skill, using either shell or nodejs More...

Publication/Publisher: Medium, Date: September 1, 2018

Kubernetes on docker for Windows and few crocodiles…

Brief: POC on using kubernetes bundled with docker for windows as a quick alternative to minikube or minishift. We discuss how to expose cluster outside of windows localhost as well as how to deploy. More...

Publication/Publisher: Medium, Date: July 27, 2018

Creating kubernetes cluster with AWS EKS

Brief: AWS provides comprehensive guide to start with EKS, this article is generally implemented guide with terraform to get unattended installation of the kubernetes cluster happen.. More...

Publication/Publisher: Medium, Date: July 23, 2018

Generating letsencrypt wildcard certificate with certbot

Brief: As you might know, letsencrypt ssl certificates officially reached production state, see https://community.letsencrypt.org/t/acme-v2-production-environment-wildcards/55578 . It is time to give it a try More...

Publication/Publisher: Medium, Date: March 21, 2018

Using ansible-container to build your next application base image

Brief: Describes approach for the ansible-container to be used to construct and build application images in docker. In particular, choosing init system, running multiple services withing container. More...

Publication/Publisher: Medium, Date: September 20, 2017

Træfik — as an alternative reverse proxy to nginx for self hosted dockerized applications

Brief: Containers continue to be a buzz word this year too. A lot of teams try to implement microservices, dividing application into individual units: mini- website contains only presentation layer, REST… More...

Publication/Publisher: Medium, Date: September 4, 2017

Evaluating ansible-container as a tool for custom docker containers build

Brief: Even today, approach to creating and managing containers is both manual and, in many ways, antiquated. Even for startups that use automation for their build processes, implementing containers often… More...

Publication/Publisher: Medium, Date: September 3, 2017

Documentation as a project

Brief: Quick knowledge sharing on approaches for project documentation. From personal use to dedicated documentation workflows. Outcomes: tooling suggestion, usage cases, documentation project bootstap. More...

Publication/Publisher: Medium, Date: March 12, 2017

Approach for implementing git-flow releasing model

Brief: Perhaps most of developers are familiar with git-flow model, that makes release process controlled. In this article I would demonstrate one of approaches to introduce git-flow releasing in your… More...

Publication/Publisher: Medium, Date: January 15, 2017

Automating SSL encryption for your servers with LetsEncrypt and Ansible

Brief: Lets Encrypt (http://www.letsencrypt.org/‎) — probably most known authority supplying free grean seal certificates. In this article I will share with you, how I make use of letsencrypt as a part of… More...

Publication/Publisher: Medium, Date: December 28, 2016

Master jump box to access your network resources

Brief: A jump server or jump host or jumpbox is a (special-purpose) computer on a network typically used to access devices in a separate security zone. The most common example is managing a host in a DMZ… More...

Publication/Publisher: Medium, Date: December 18, 2016

Quickly add your github keys as authorized to your virtual server

Brief: One-liner to add all of the github keys as authorized to some test unix server More...

Publication/Publisher: Medium, Date: November 10, 2016

Make Your Development Environment Ready While You Drink a Coffee

Brief: Trick on unattended development environment setup for developers using ubuntu as a host system More...

Publication/Publisher: Medium, Date: October 19, 2016

Deploying ruby application with ansible

Brief: In this article I will give you an idea on automated installation with Ansible, a Simple IT Automation toolkit and Ubuntu LTS server More...

Publication/Publisher: Medium, Date: October 14, 2016

Automating network mastering scenarios for Amazon VPC

Brief: Article demonstrates automation of AWS VPC network creation with Ansible for the application according to project requirements More...

Publication/Publisher: Medium, Date: October 13, 2016

Mysterious Google two step authentication - in debug

Brief: Have you have enabled your Google account for two step authentication? If not -I strongly recommend to do so. Do you know the nature of the code generated by Google Authenticator? There are no myths here - this is just an implementation of RFC6238. And even more - you can add a new level of security to your application very easily without the need to use some monstrous security library. I will use PHP in this article - this means that the server side can use this code to validate the client one. But nothing stops you from implementing an OTP generation algorithm in JavaScript. More...(mirror 1) More...(mirror 2

Publication/Publisher: CodeProject, Medium Date: October 9, 2013

Wrapping custom LAMP project into Vagrant with Ansible

Brief: As a contractor software developer I am asked from time to time to perform audit of LAMP projects. As project configuration is different, I use so-called "umbrella repository environment" which allows me to wrap such projects into reusable vagrant environment without need to amend audited projects codebase itself. More...

Publication/Publisher: CodeProject, Date: November 5, 2015

Setup & Configure Jenkins For Your Team in Automated Way

Brief: Nowadays continious integration is the important part of the agile software development life cycle. There is a number of tools on the market: Atlassian Bamboo, Jenkins, Jetbrains TeamCity. In my opinion Jenkins has the most optimal product community and set of really useful plugins that suits most of your software projects: you can build software, deploy software, websites, portals to various places, including AWS, DigitalOcean, bare metal servers or to run unit tests. It can be integrated with communication tools of your choice, like Slack, HipChat or email. More...

Publication/Publisher: CodeProject, Date: November 16, 2015

Two Factor Authentication with JavaScript and HTML5

Brief: OTP(One Time Password) implementation with javascript. More...

Publication/Publisher: CodeProject, Date: January 5, 2013

Using Vault to Secure Your Deployment Secrets

Brief: "Don’t Check Passwords into Source Control or Hard-Code Them in Your Application Operations staff will remove your eyes with a spoon if they catch you doing this. Don’t give them the pleasure. Passwords should always be entered by the user performing the deployment. There are several acceptable ways to handle authentication for a multilayer system. You could use certificates, a directory service, or a single sign-on system." This quote is taken from Chapter 2 of the Continuous Delivery: Reliable Software Releases Through Build, Test, And Deployment Automation (Addison-Wesley Signature Series (Fowler)) book by David Farley and Jez Humble. Vault by HashiCorp is one of the tools that might provide an acceptable level of security for DevOps engineers, and it is suitable for enterprise scenarios as well as for smaller teams like startups. More...

Publication/Publisher: CodeMentor, Date: September 22, 2015

Storing Tree like Hierarchy Structures With MongoDB

Brief:In a real life almost any project deals with the tree structures. Different kinds of taxonomies, site structures etc require modeling of hierarchy relations. In this article I will illustrate using first three of five typical approaches of operating with hierarchy data on example of the MongoDB database. Those approaches are: Model Tree Structures with Child References, Model Tree Structures with Parent References, Model Tree Structures with an Array of Ancestors, Model Tree Structures with Materialized Paths, Model Tree Structures with Nested Sets, Note: article is inspired by another article 'Model Tree Structures in MongoDB' by 10gen, but does not copy it, but provides additional examples on typical operations with tree management. Please refer for 10gen's article to get more solid understanding of the approach. Part 1... Part 2... Part 1... (mirror 2) Part 2...(mirror 2)

Publication/Publisher: CodeProject, Medium Date: January 16, 2013

Enable virtualization inside ESXi virtual machine

Brief: tip allows enabling virtualization inside nested virtual machines under ESXi hypervisor. More...

Publication/Publisher: CodeMentor

Featured solutions

Xml/xslt based code generation framework

Challenges: to develop robust code generation framework that will allow rapid development of high load capable websites with php4 backward compability. XSLT was used as a powerful framework for code generation. Set of procedural plain php files where generated as a result of transformation. During set of projects, generated websites were able to handle and serve 6000-7000 concurrent business user sessions (up to 8900 in extremum) in following live environment: single server with Nginx supporting PHP fast cgi mode as a web server, MySQL as a DB server, Memcache as server side cache. Server network card was configured to use polling mode.

Facts: since May, 2005 until May,2011 over 160 solutions were implemented by our team using this code generation approach. By using xml based grammar, all websites allow smooth generator version upgrade without need to change business logic code itself.

Deployments: banking sector (bank public sites, bank intranet portals), news and media (number of highload news ukraine sites), entertaiment (websites for tourists, event solutions), b2b and b2c solutions (set of sites solving business needs with custom made logic), custom ( set of custom made websites solving multiple client needs).

X-Factor online media portal

Background: The X Factor is a British television music competition to find new singing talent. Created by Simon Cowell, it began in September 2004 and is contested by aspiring singers drawn from public auditions. It is the originator of the international The X Factor franchise.

Challenges: to develop online portal supporting Ukranian TV national version of the X-Factor show. Integration with 3rd party voice rating system ('Skore'), Adobe Flash Media Server, Social Networks API, 3rd party payment gateways. Weekly high load peaks during TV show live air.

Role: Technical Team leader, team composition: 3-4 developers, dedicated QAs and Project Manager/Client Executive, System Administrator.

Duties: Architecture defining, risks identification from technology point of view, team development activities, executing project tasks, corrective/preventive actions when needed.

Facts: Approximately 10 millions page views during TV show period. No major service down time.

Project technologies: phpxml (code generation), javascript (raw, jquery, jquery tools), payment systems (paypal, interkassa, sms billing) social networks(facebook, vkontakte), mysql, memcached(server side cache)

Driving Theory Test System

Background:Region: Europe, Industry: E-Goverment, Service: Corporate Application Development.

Role: Project manager, lead developer.

Business challenge: Team created a computer-based driving theory test system integrated with a 3rd party web-based test booking system. The system is touch screen based and has an intuitive user interface as well as invigilator console. System runs on 7 test stations, but is extensible. Licensed question bank was used as a initial source of theory test questions. The system features include a generation of unique tests for each candidate and the facilities for the administrative staff to add/edit questions as needed.

Benefits: Provides a standard way of conducting driving theory tests. 3rd party systems consume information (in particular driver licensing software). Minimum effort on maintenance of the testing process, easy to operate during the test - even for people with low computer literacy, automatic assessment of the test results, Immediate communication of the results to the participants. Necessary reports and statistics was implemented management staff per requirements.

Facts: System still operates. Approximate software lifetime expanded up to 2016.

Project technologies: Delphi (ISAPI module), XML/XSLT, SQL Server 2000, HTML, Javascript, SMIL 2

Theory and Practical Test Booking System

Background:Region: UK, Industry: E-Goverment, Service: Corporate Application Development.

Role: Architect, project leader.

Business challenge: Team created bespoke computer system, that allows citizens to book and pay for theory and practical driving tests online. System includes separate backend with business logic and public front end part in DMZ. System is integrated with customer inner systems serving driving licence workflow, online passport system, 3rd party online payment systems, provides reports in format of inner financial systems, other reporting.

Benefits: Provides more online capabilities for citizens, decreases staff load in the office.

Project technologies: ASP.NET, ASP.NET MVC, SQL Server 2008, SSRS, Javascript