Gennady Dogaev

Fullstack JavaScript expert

JavaScript (es6+), HTML, CSS, Node.js, PostgreSQL, MySQL, Redis, RabbitMQ, Koa, Ember, Ember Data, Semantic UI, UIkit 3, Chrome APIs (extensions), React, Redux, a bit of React Native (Expo)

gendelflg@gmail.com

My blog

Contact me via Skype and get banned 😇

About me

  • 10+ years in web development, 8+ as independent contractor / freelancer
  • Experienced in both frontend and backend engineering
  • Reliable — can work few years at one place if we are a good fit
  • Fast learner

Projects

Merry Pint (React Native, Expo)

    Merry Pint is an Android app that helps user to keep a list of beers they've tried, rate them and track consumption data. All data is stored on user's device using expo-sqlite

    Features:

    • Add new beer to list / Update beer info
    • Rate a beer / Update rating
    • Add / Update consumption history
    • View list of beers
    • View list of consumptions
    • Attach photos to beer / consumption
    • Barcode scanner to add / navigate to beer faster
    • Open Food Facts API integration (fetch beer info using barcode)
    • View consumption stats
    • View charts (i.e. Top 30 beer styles by consumption, Consumption by months)
    • Backup / Restore data to user-available directory (can be used to transfer data to new device)

    Used stack:

    • React Native
    • Expo
    • AdMob
    • Sentry
    • Victory Native (charts)
    • Gatsby (for website)

    Google Play

    Website

    Timesheet (React, Google Spreadsheets API)

      Timesheet is a time tracking web application utilizing React and Google Spreadsheets API. Does not use any backend, all processing is done in client's browser and data is stored in Spreadsheet

      Features:

      • Timer
      • Editing of tracked activities
      • Workspaces support (each workspace is a separate file)
      • Can also track earnings if provided with per-task hourly rate
      • Builds charts
      • Stores data on user's Google Drive using Google Spreadsheets API. Therefore, users have better control of their data than with other tracking apps
      • Internationalization
      • Data generator for demonstration and testing purposes (generates data for selected amount of years)

      Used stack:

      • React
      • Redux
      • Google OAuth, Google Drive API, Google Spreadsheets API
      • UIKit3
      • Plotly.js (to build charts)
      • Web Workers (to move heavy calculations out of rendering phase)
      • Nginx

      timesheet.gennady.pp.ua

      github.com/GendelfLugansk/timesheet

      Tradary (Koa, Postgresql and Ember.js)

        Tradary is a web-application for traders which allows to log and analyze client's deals on financial markets

        Features:

        • Parse data from user-uploaded files
        • Edit data
        • Filter data
        • Build statistical reports (mostly charts)

        Used stack:

        • Ember.js (frontend framework)
        • Plotly.js (charts)
        • Semantic UI
        • Koa (backend framework)
        • Postgresql
        • RabbitMQ (for heavy tasks such as data import)
        • Redis
        • Nginx (serving static files, load-balancing between app instances)

        share.tradary.com/demo-en/reports/common/balance

        DOU enhancer (Chrome extension)

          One of my favorite online-forums supports some HTML codes in posts and comments but does not provide any visual editor. I decided to fix that problem by creating Chrome extension.

          Features:

          • Convert textarea of reply form into WYSIWYG editor
          • Add ability to highlight code in posts and comments
          • Add preview for image and youtube links
          • Replace UTF-8 smiles with corresponding images

          Used stack:

          • Chrome Extension APIs
          • TinyMCE
          • Gulp
          • UIKit3

          chrome.google.com/webstore/detail/dou-enhancer/nhklbdmnfeelpcppmpbgldeamflkijdn

          github.com/GendelfLugansk/dou-enhancer

          Jira Stats (Ember.js, without backend)

            Jira Stats was created to analyze estimate / spent time ratio for various development tasks. Time was logged into Jira but I didn't find enough information in built-in reports. In order to save development and deployment time, I choose to implement app without server side.

            Features:

            • Parse data from user-uploaded files
            • Filter data
            • Build charts to analyze how precise estimated times were for various devs and types of tasks

            Used stack:

            • Ember.js (frontend framework)
            • Plotly.js (charts)
            • UIKit3 (UI framework)
            • ForerunnerDB (client-side database)

            jira-stats.gennady.pp.ua

            github.com/GendelfLugansk/jira-stats

            Client feedback

            • Gennady is an amazing engineer. World class results. One of the best engineers I've ever worked with.
            • Gennady is a world-class engineer. Understands how product, engineering and the user experience works together in a seamless way. We will continue to work with Gennady on all other projects. He is a master of Ember.js and full-stack development. Rare find.

              Resume

              Name

              Gennady Dogaev

              Location

              Ukraine, Lviv

              Contact information

              gendelflg@gmail.com

              Work experience

              Frontend Engineer at Siemens Energy; August, 2021 - now

              Used stack: Ember, Bootstrap, Highcharts

              Working on internal tools

              Full-stack engineer at Tradary; January, 2019 - July, 2021

              Used stack: Node.js, Koa, Ember, PostgreSQL, Plotly.js, Semantic UI, RabbitMQ, Redis, NGINX

              Tradary is a web-application for traders which allows to log and analyze client's deals on financial markets

              This is my own project, therefore I was responsible for everything - from UX to deployment

              Lead full-stack engineer at TradeLanes; November, 2018 - January, 2019

              Used stack: Node.js, Hapi, Ember, MySQL, Foundation

              In this role I was leading a small team of full-stack engineers. My responsibilities included:

              • Analyze customer's requirements and write specs for new features
              • Break big tasks into smaller ones
              • Manage workload of engineers
              • Help team members as needed
              • Review code and approve PRs
              • Hold small meetings with a team, 3 days per week
              • Contribute to frontend and backend code

              Frontend engineer at TradeLanes; September, 2016 - November, 2018

              Used stack: Ember, Ember Data, Foundation

              In this role, my key responsibilities were:

              • Add new features to frontend part of web-application
              • Improve UX
              • Refactor code as needed
              • Work with backend engineer to integrate API with frontend

              Full-stack Web Developer, freelance; August, 2016 - April, 2017

              Used stack: Ember

              • Developed a frontend part of application for warehouse tracking

              Full-stack Web Developer at Trader's Statistics (marketstat.ru); October, 2010 — September 2016 (active development); October 2016 - January 2022 (support)

              Used stack: PHP, Kohana (framework), JavaScript, JQuery

              • Developed a web application that helps stock traders to store, analyze and share their trading results.
              • Created more than 100 parsers for brokerage statements in a range of formats, from csv to pdf.
              • Implemented more than 40 indicators which allows trader to evaluate how good their strategy are.
              • Created more than 60 charts.
              • Introduced few convenient ways of sharing one's trading stats. For example, user may generate a link to allow someone to see all their data; embed virtually any chart as a widget; embed a set of charts as a widget; save and share a chart as a static picture and so on.
              • Found a way to store and process market prices (for FORTS market) for a period of at least 4 years (more than 200GiB of data).
              • Moved heavy and long-running tasks to background and organized communication with them (using Gearman).
              • Organized caching to reduce server response times.
              • Created utilities to fetch such info as currency rates, quotes and instruments from third-party sites.
              • Integrated an application with 3rd-party services (payment, mailing lists) via APIs.
              • Created a few private secured APIs for client's partners.
              • Introduced a way to configure application for separate domain names, which allows to create customized copies (with different look or even different databases) of web application without duplicating a source code.
              • Provided assistance to support team in solving technical issues. Personally communicated with users when it was needed.
              • Discussed new features with the client and wrote formalized specs.

              Software Engineer at iLogos; September, 2008 — July, 2010

              Used stack: PHP, JavaScript, JQuery

              As a member of a team, developing an e-commerce CMS for one of our customers:

              • Participated in development as a frontend and backend developer.
              • Solved few complex problems with cross-browser compatibility.
              • Refactored code to make it more clear and maintainable.
              • Helped other developers to solve javascript-related problems.
              • Helped junior developers to understand main concepts and start to work on a product.
              • Participated in QA process.

              At other projects:

              • Programmed a site with simple administration features (content editing, feedbacks management, etc).
              • Participated in creating of a web socket chat for company's customer.

              Other experience

              • Developed a Chrome extension for favorite forum.
              • Using Expo, developed an Android app for personal beer rating and consumption tracking
              • Learned AutoIt in two evenings just to automate some routine things in online game.
              • Sometimes I'm helping other developers on Stack Overflow (with Ember/React).

              Technical skills

              List of my skills includes JavaScript (es6+), HTML, CSS, Node.js, PHP, PostgreSQL, MySQL, Redis, RabbitMQ, Koa, Ember, Ember Data, Semantic UI, UIkit 3, Chrome APIs (extensions), React, Redux, Expo

              Other skills

              • Able to grasp main concepts of new technology, framework or tool and start using it in short time.
              • Able to understand and debug other's code.

              Languages

              • Native Russian and Ukrainian speaker.
              • Upper-intermediate English speaker.

              Education

              Master of Physics, East Ukrainian National University, 2003 — 2008.

              © 2020, Gennady Dogaev