Danylo H. Full-Stack Engineer

Full Stack Web, Telegram Bots and Mini-Apps

Summary

- Software Engineer with 5+ years of commercial experience building software from scratch;
- Good knowledge of main clean code principles like DRY, SOLID, YAGNI, KISS;
- Have experience building software solutions from the ground up: from discussion with clients or businesses to understand the problem, field of study and problem research, to deployment and post production support.
- Upper-Intermediate English.
- Available ASAP.

Experience

Full Stack Developer

March 2021 – Present

Interactive Kiosk for remote printing

2021.
Description: Developed interactive Kiosk (hardware + software) for remote printing. User
touchscreen and Telegram bot to upload documents (PDF, DOC etc) they want to print, software
calculates print cost, checks network printer availability, accepts payment through connected
POS terminal, and queues print task, informing user about which printer their task is assigned
to. Hardware is done on Raspberry Pi with touchscreen, Ingenico POS terminal and Ethernet
networking. Software is built with TypeScript on NodeJS (backend and queue service),
MongoDB as DBMS. Kiosk frontend is done using Vue with custom components, backend
interaction is based on Websockets.

A platform for public transport payments

2020.
Description: Developed MVP of a platform allowing public transport passengers in Ukraine to
pay fare using only their mobile phone. Platform includes a microservice backend written in
TypeScript, using GraphQL combined with REST-like API, PostgreSQL as primary DBMS.
Platform has two native apps written with React Native and TypeScript. Dashboard (back-office)
is written with Vue and Ant Design of Vue. As a full-stack developer.

A platform for Ukrainian government institution

2020.
Description: Developed solution for Ukrainian government institutions allowing them to monitor
bankrupt banks’ assets (real estate, ground, transport). Data is fetched from three different
registers (official asset registry of Ukraine and two open-data sources) and merged into one
dashboard. Dashboard allows to query, filter and modify data in databases and compare data to
see differences in data sources. Backend is written using TypeScript and JSON-RPC,
PostgreSQL and MongoDB as databases, frontend is written with Vue and Ant Design of Vue.
As a full-stack developer, mainly backend.

CRM for marketing agency

2019.
Description: Developed CRM for marketing agency to collect feedback about goods from 100+
Facebook pages in one place and auto-reply to frequently asked questions. CRM allowed
managers to create rule sets with predefined answers for the most common user intents, saving human time & money. Main challenge was in high demand – 100+ pages generated a lot of
events every second, and we needed to keep up and auto-reply users in less than a minute.
CRM has an internal messenger, allowing real-time communication between managers and
clients either in Facebook Messenger or in comments. Backend is written in TypeScript and
distributed across multiple EC2 instances, inter-service communication is done through
RabbitMQ. Queue management is based on Kafka. Frontend is written using Angular. As a
full-stack developer, mainly backend.

Project Under NDA

2019.
Description: Developed indexing solution that crawls a list of pre-defined digital repositories
(EPrints 3, DSpace) and extracts info about related publications. Info includes title, abstract,
content fragments, authors and tags. Extracted info is stored in MongoDB and linked to other
entities (like authors) if possible, i.e. the author already exists in DB. This info is then indexed in
ElasticSearch to allow full-text and fuzzy search. Implemented HTTP search service backed by
ElasticSearch with Algolia-like API. Frontend allows browsing, filtering and searching stored
records, users can generate search reports and download original content directly from
e-repository. As a full-stack developer, mainly backend.

A system for tracking bank managers’ productivity

2019.
Description: Developed solution for tracking bank managers’ productivity. Tracking is based on
daily polls at the start and by the end of the day. Poll is designed in a way to determine
manager’s efficiency. After the second poll, right before the end of the working day, the system
evaluates managers’ results and calculates their productivity (KPI). In case of underperforming,
the system helps managers with materials from a knowledge base. As a backend developer.

A search service for a drug store network

2019.
Description: Implemented search service with ElasticSearch for a drug store network with
more than 5000 products. Set up indexes on MongoDB to ease data polling, implemented time
and event-based replication from MongoDB to ElasticSearch indexes, keeping indexes in sync
with any changes in origin DB. Created rich, Algolia-like, search API to be used on websites,
chatbots and internally. Service supports omnibox-like (single input) search across all products
and their specs. Developed dashboard allows to monitor index and sync health and modify
indexed data if needed. As a backend developer.

A framework for chat-bots

2019.
Description: Developed a framework for internal use that allowed us to write a lot of simple and
complex chat-bots for three most popular messengers at a time: Telegram, Viber, Facebook
Messenger. Framework is messenger-agnostic, written in TypeScript, utilizes TypeScript best
practices – IoC, decorators. Framework supports state management (Redis), multi-context
dialogs, messenger-specific functions like Telegram Pay or Facebook Messenger cards. As a
lead developer.

Education

Master’s degree in Computer Science.
The Bohdan Khmelnytskyi National University of Cherkasy.