Author of the ionic/vue library which was contributed back to the official Ionic repository.
I enjoy writing clean, efficient code, architecture of complex systems and engineering lean solutions as well as designing and implementing pixel-perfect, mobile and SEO friendly web applications. I am proficient in writing fast code for projects requiring a "just get it done" approach.
I've led and managed small to medium sized teams for the last 4 years, providing not only technical oversight but also administrative supervision.
In my free time, I enjoy game development, contributing to Open Source, hardware modding and creating projects in new languages. My latest projects include a 3D platformer using the Godot engine, a personal finance app written in Go (server), Mongo (database) and Dart/Flutter (front-end).
I've held the role of the tech/team lead on multiple projects/clients since 2017 which allowed me to grow in many directions both as a person and as an engineer. I've been successful in building up team morale and most importantly identity with the help of a healthy spirit of competition. I strongly believe that in order for a team to be technically successful it must focus on human relationships and communication within it.
I have an affinity for debugging and reverse-engineering in particular. Over the years I've taken upon multiple technical challenges created by Google, HackTheBox and similar. I enjoy the process of figuring out the thought patterns of the author in order to complete the challenge or fix a bug. One of the most interesting and difficult ones was reverse engineering a remote binary causing a buffer overflow and ultimately gaining a remote shell. I'm familiar with such tools as gdb, cLion IDE debugger and of course the built-in browser debugger. I've used the latter extensively in MFE projects.
I have a broad experience in OOP, design patterns, file/system manipulation and have used some TDD for several projects. I have used multiple frameworks such as Symfony and Phalcon before finally choosing Laravel for larger commercial applications, Lumen for smaller projects and have recently started work in CakePHP in order to have an alternative view on engineering and code implementation. I highly appreciate Laravel's dependency-injection and use of reflection which allow for flexible, type-hinted abstractions and interfaces. I very much enjoy working with Eloquent, QueryBuilder and Migrations as these enable almost human-readable code.
One of the more interesting and demanding projects was an eCommerce system which was split into several dozen interconnected components each having multiple complex, cascading relations. Multi-model authentication was a necessity for managers and clients, which wasn't supported by default in Laravel 4.2. One of the more interesting features was a live OS-like progress bar and detailed information for exports of large data sets of generated ZIPs, CSV files and images pulled from Magento with web-push notifications.
I have also had success implementing various payment gateways among which are Paypal, 2Checkout and Skrill as well as development of custom components and themes for Wordpress and Joomla.
I have a vast experience in engineering complex databases and creating advanced relations using the InnoDB engine. I am comfortable using the command line for data import and export which is a must when larger files can not be imported through web interfaces like PhpMyAdmin.
One of the more interesting projects was the migration and restructuring of approximately 50,000 entries from MongoDB into MySQL. A different application required communication between multiple databases, some of which were running MS SQL Server which was an interesting task to undertake.
I've created several CLI applications and tools for personal use as well as written a server and API with session management as well as JWT authentication. I have experience using reflection, data manipulation and various Gorilla framework packages like mux.
I've contributed to several open source security tools as well as written a multitude of CLI applications for systems automation or data processing/parsing. I have experience with the Django framework, sessions package and module packaging.
I've created several personal Flutter applications. One of the most difficult tasks was handling of images taken with the camera and generating various thumbnails as previews.
I've worked on several video games, wrote most of the graphics rendering for the engine as well as several tools for image processing and conversion into byte arrays.
I've used MongoDB on several projects, mostly personal in order to expose myself to the NoSQL realm as an alternative.
I have used GNU/Linux as my daily driver since 2016. I have used OpenSuse and Fedora before choosing Ubuntu as my main OS and Ubuntu/CentOS on servers. I am at home on the command line and vim, I have experience writing helper and deployment shell/python scripts, automating personal and server-side tasks via CronTab, mounting NFS/SAMBA shares.
I have an extensive experience using Git for project management and collaboration. I have used several work-flow methods in previous projects as well as bug-trackers and wikis.
I have experience working with Docker, creating and managing containers as well as incorporating them as part of the CI/CD pipeline.
Skills: React, Ionic, Capacitor, Contentful, TypeScript, Node.js, Webpack, Micro front-ends
Role: Technical Lead and Consultant. The goal was to transition the existing legacy Angular front-end client to a modern age React/Ionic driven Progressive Web App. By utilizing the Ionic ecosystem we were able to create a modern hybrid app that ran on web, mobile and desktop clients, cutting down development time and effort. With the help of Capacitor we were able to connect with the native code running the application to provide platform specific behavior. The application is fully content-driven by Contentful meaning that every page, layout, text, icon is fully customizable.
Challenges: The business required a dynamic content-driven hybrid application that could be configured and styled with little to no effort for any client as well as run on multiple platforms and operating systems. We were able to achieve this with the help of micro front-ends and Ionic.
Role: Consulting on logging and performance improvement.
Skills: React, Node.js, TypeScript, Lambda, S3, ElasticSearch, DynamoDB, PHP
Role: Technical lead of 2 separate projects - front-end and back-end.
Challenges: One of the projects was development of both the client-facing UI as well as the administrative back-end UI using React as part of the modernization of the app. The biggest challenge was integrating the app within the legacy PHP application and API. The other project was focused on building a back-end API from scratch using Lambda, ElasticSearch and DynamoDB, this was my first introduction to this tech but I was able to get up to speed rather quickly and led my team to a successful delivery of the project.
Skills: Laravel, PHP, MySQL, jQuery, Vue
Role: Originally hired as a full-stack engineer, but promoted to technical/team lead after 6 months.
Originally authored as an experiment for the unreleased at the time Ionic 4 and Vue 2 after a successful proof of concept was shown to Ionic I was asked to continue development of a complete solution which was later contributed and merged back into the official repository. Several years after with the release of Vue 3 I have repeated the exercise. It was an amazing experience exploring an uncharted territory and creating something new out of thin air but most importantly knowing that your work is going to help others pursue their ideas.
I've contributed code to such projects like Laravel, React Native, LBRY and Capacitor and documentation to Ionic and Vue. Ultimately unlocking the Arctic Code Vault Contributor achievement on GitHub. This resume is built using a tool I've created specifically for this purpose.
Existing solutions for ACL and user permissions management did not meet personal needs. I wanted to be able to mange permissions through a UI and provide translation, The ability to use multiple authentication models was also important as well as assigning multiple roles to users. As an extra challenge for myself I added the option of performing AND, OR and XOR logic operations on user permissions and route groups. And created helper artisan CLI commands for checking and debugging of permissions which proven to be extremely helpful in production environments.
The main difference from other packages is that it uses extremely verbose middleware/filters directly on routes or controllers and the flexibility of inheritance logic of cascading permissions. One of the interesting challenges was providing support for older Laravel 4.2 version which inherently relies on older PHP versions.
During the development of numerous Laravel applications I have found myself in need of a strict, standardized and reusable abstraction layer. I have already had a general work-flow in place, but it's implementation was not forced in any way and led to differences between projects and implementations. This project represents my approach to a component based application which focuses greatly on inheritance, code reuse, interfaces and abstract classes. The result is a smaller code-base, logical abstraction, cleaner and maintainable classes.
One of the unfortunate issues is the lack of built-in PHP support for proper inheritance handling during method dependency-injection.
An eCommerce website powered by Laravel. I was responsible for the back-end as well as the implementation of the design mock-ups, UI/UX improvements, invoicing and payment gateway integration.
One of the more interesting server-side tasks was to enforce GeoIP blocking while at the same time allowing access for administrators from blocked countries. This was achieved with help of Cloudflare via htaccess, thus completely eliminating the access to the framework.
On the front-end I was able to achieve increased performance by leveraging CDN, caching, file compression and inlining of critical CSS as well as lazy-loading of non-critical assets.
I would be glad to discuss in greater detail my experience with Go, Flutter, Node.js, MongoDB, Python. I am using the Adobe suite extensively for digital photography and video production as well as GIMP, Kortana, InkScape and Blender as open source alternatives.