Denis Zhbankov

CTO (Chief Technology Officer)

profile picture

Last updated: September 27, 2022

PDF version: A4 | Letter

Passionate and open-minded person, who embraces infinite self-improvement and education.

More than 10 years of experience so far in professional programming and system engineering in both large corporations and startups (besides academic 6 years).

Interests

Technologies

  • TypeScript
  • React | Lit | Svelte
  • MobX, Inversify, Esbuild, Cypress
  • Node, Lambda, AWS CDK

Position

  • Domestic: executive or manager with part time coding
  • Remote: senior engineer with relocation perspectives

Assessments

Pluralsight

Badges could be seen at StackOverflow's Developer Story:

  • HTML5: 99th percentile
  • JavaScript: 98th percentile
  • React: 97th percentile
  • CSS: 97th percentile

IELTS

In 2018, on a scale from 1.0 to 9.0:

  • Reading: 9.0
  • Listening: 8.5
  • Speaking: 7.0
  • Writing: 6.0

About

Growth

  • Got master's degree in computer science and information security in 2011 at Moscow State University: #1 Russian, #90 globally.
  • Started from Java and Oracle in 2011, then switched to JavaScript, NodeJS and AngularJS in 2014, then to TypeScript and ReactJS in 2017, now I'm more focused on framework agnostic best practices, architectural decisions and project management.
  • In 2018 received an IELTS certificate: International English Language Test.
  • In 2021 completed an international MBA course: Master of Business Administration, #1 program in a local rating.

Character

  • I want to stay on the edge of technologies and trends. I'm eager to learn and do it constantly.
  • I am attentive to details and doing my best to make things consistent and logical.
  • I am extremely motivated, goal oriented and can work really hard. Moreover, I really like to. That's why I'm not into calm average 9-to-5 offers. I'd like to give more and expect more.

Hobby

As a hobby I'm curious about quantum computing nowadays. Started from the great Noson S. Yanofsky's book, can definitely recommend.

Education

Master in General and Strategic Management

Oct 2018 Feb 2021 2 years

GPA 4.89 from a 5.0 scale

Russian Presidential Academy of National Economy and Public Administration

Institute of Business Studies

Entrepreneurship and Corporate Management

Master of Business Administration

Oct 2018 Jul 2020 2 years

GPA 4.94 from a 5.0 scale

Russian Presidential Academy of National Economy and Public Administration

Institute of Business Studies

Entrepreneurship and Corporate Management

Specialist in Mathematics and System Programming

Sep 2005 Jul 2011 6 years

GPA 4.47 from a 5.0 scale

Lomonosov Moscow State University

Faculty of Computational Mathematics and Cybernetics

Specialist in Information Security

Sep 2007 Jul 2010 3 years

Lomonosov Moscow State University

Military Training Faculty

Additional Courses

May 2012 Jul 2012 0 years

  • EDU-IBM-R08: Writing effective use cases
  • EDU-SS-01: Domain modelling for creating business regulation documents and technical requirements

Interface Ltd.

IT Training and Consulting Center

Publications

Experience

Division Head

Sep 2019 today 2 years

  • Project management
  • Job interviews
  • Mentoring

Architect

Jun 2017 Apr 2021 3 years

  • Solution approaches
  • Best practices
  • Design patterns: IoC/DI, abstract classes, interfaces, factories, services, singletons, adapters, proxies, facades, etc.
  • Tests: UAT, integration, unit
  • Micro services
  • Micro frontends
  • Mono repositories

Team Leader

Jun 2017 Apr 2021 3 years

  • Work breakdown structures
  • Sprint plannings, statuses, retrospectives
  • Code reviews
  • Task tracking

Frontend Engineer

Jan 2014 Apr 2021 6 years

  • Languages: TypeScript, JavaScript
  • Standards: ECMA 5+
  • Packages: PNPM, Yarn, NPM, Lerna, Bower
  • Bundlers: Esbuild, Rollup, Webpack, Gulp, Browserify
  • Transpilers: TypeScript, Babel
  • Frameworks: React, AngularJS, React Native, Knockout
  • State: MobX, Flux, Redux, Redux Saga, Redux Thunk, React Context
  • Stylesheets: PostCSS, SASS, LESS
  • Tests: Jest, Cypress, Protractor, Karma, Selenium
  • Visualization: D3, SVG, ThreeJS
  • Internationalization: LinguiJS, i18next
  • API: REST, gRPC, WebSockets, SSE
  • UI: Bootstrap, Blueprint, AntDesign, NativeBase

Backend Engineer

Feb 2013 Jan 2017 4 years

  • Languages: Java, JavaScript
  • Frameworks: Spring, Express
  • Databases: OracleSQL, PostgreSQL, MongoDB, Redis, RabbitMQ, Neo4j
  • Tests: JUnit, Mocha, Chai, Jest, Supertest
  • Clouds: AWS, Heroku, Kubernetes
  • VC: Git, SVN

Business Analyst

Oct 2011 Feb 2013 1 year

  • Analysis: SQL, PLSQL, UML, BPMN, IDEF
  • Requirements: use cases, scenarios, workflows
  • Optimization: KPI, business processes, etc.

Computer Science Student

Sep 2005 Jul 2011 6 years

  • Languages: C, C++, C#, Python
  • Projects: automated trading software, machine graphics, neural network applications

Employment

CTO (Chief Technology Officer)

Nov 2021 today 1 year

CoreTechs | Startup

An ambitious local startup in an international retail betting, aimed to revolutionize the market and outperform its competitors with bleeding edge technological solutions.

Roles

  • Member of management board
  • Department head

Highlights

  • Last quarter we've successfully risen up to 0.5M unique visitors with 5 figures in total count of sport bets and casino spins.
  • My upcoming goals are long term technical vision and roadmaps, systematization of possibilities and risks, operational improvements.
  • Our next goal as a company is to reach break-even point in sales and make it to next round of funding fully prepared.

Head of Engineering Department

Apr 2021 Nov 2021 0.5 years

CoreTechs | Startup

An ambitious local startup in an international retail betting, aimed to revolutionize the market and outperform its competitors with bleeding edge technological solutions.

Roles

  • Member of management board
  • Department head

Highlights

  • In 2020 we opened business based on crypto currencies in South America, got first real clients and grew to nearly 50 employees, 3 full stack feature based development teams (17 engineers).
  • Now I focus on organizational tasks, internal climate, strategic planning and hiring new people.
  • Next goal is to further increase our customer base and improve operational effectiveness via measurable metrics.

Head of Frontend

Sep 2019 Apr 2021 2 years

CoreTechs | Startup

A recent investment of SoftPro into a proximate business area: an ambitious local startup in an international retail betting, aimed to revolutionize the market and outperform its competitors with bleeding edge technological solutions. Plans to go live in 2020.

Roles

  • Member of management board
  • Member of architecture board
  • Team leader in multiple teams
  • Division head
  • Chief frontend engineer

Highlights

  • After my few months working in SoftPro itself, our best backend colleague and I were invited to lead backend and frontend development respectively in this new company with ~20 employees so far, and we plan to hire more. I will continuosly apply my knowledge from the ongoing MBA courses to develop the skills of our frontend team while at the same time I will ensure the best frontend practices to be followed.
  • Technologically speaking, I plan to extensively apply my new experience with MobX, achieved at SoftPro; use dependency injection via InversifyJS; depend on abstract classes and interfaces instead of concrete implementations; prepare the ground for a substantial share of automated testing; apply strictest linter and Typescript rules; separate the code into a set of loosely coupled modules with strictly defined API and a tiny core to localize changes, achieve predictable cost estimations for new functionality and probably delegate these modules to different people, as I've already done before at SMMplanner. I fully concur with the ideas from "Clean Architecture" by Robert C. Martin.
  • After 3 months of work we have risen up to ~35 employees (6 frontend engineers, mostly seniors), I have implemented my architectural ideas in one project with tens of thousands of legacy code lines and they proved to be extremely valuable for a couple of brand new features.
  • In a span of next quarter we have successfully accomplished a more challenging frontend task of merging with the second big project to share our business entities and logic between them.
  • Next plan is to further improve business processes, use our current experience to create a foundation for an additional internal system, and finally go live.

Frontend Engineer

Apr 2019 Sep 2019 1 year

SoftPro | Company

Professional betting tools for VIP clients, including custom trading terminal, market prices aggregator, custom events browser, mobile messenger, etc.

Highlights

  • Although from a technological perspective it was a fairly common stack these days (TypeScript, React, Redux, Storybook, Jest, sometimes MobX and a little of Angular), I had my very first but pleasurable encounter with MobX, because while it takes just a fraction of an effort compared to Redux to implement the same feature, it also gives more incapsulation, modularity and readability, so it brings frontend closer to the proper SOLID principles.
  • Also, our company has significantly endeavoured to improve the overall product delivery process, including phases of focus group interviewing, collecting requirements, thorough analysis, tasks decomposition and assessment, both architectural and UI/UX design, resources planning, automatic and manual testing, CI/CD best practices. The example of managing a fairly large group of people (100+ employees) was especially valuable for me as an MBA student.

Typical tasks

  • Implementation of new features
  • API design
  • Code review
  • Candidate interviews

Head of Frontend

Jun 2017 Apr 2019 2 years

SMMplanner | Company

Automated SMM (social media marketing) tools and services: scheduled posting to multiple social media, advertisement campains (audience parsing, targeting), services for technical support.

Projects [NDA]

  • Legacy frontend for the main application: AngularJS, Gulp, Vanilla JS, jQuery.
  • New frontend for the main application: TypeScript, React, Redux, Sagas, code splitting, full internationalization. The main challenge was to design the new system to be: a) developed and released in little portions; b) highly modular and spread across different programmers with little to no interconnections; c) gradually integrated into the highly coupled and entangled legacy one with dynamic (lazy) loading of code chunks, where every chunk might have custom reducers and sometimes its own middleware.
  • Completely new service written from scratch featuring web and mobile versions: Lerna, TypeScript, React, React Native, React Context with custom Redux Devtools integration, fair amount of abstraction, monorepo approach with shared REST API, business logic, context (data itself and data manipulations), utilities, language features. All logic is separated, so the app can be easily ported to a different UI system, e.g. desktop.
  • HTML5 video editor, which allows to preview, crop, trim, add and free transform image overlays on a video right in browser: Ffmpeg (custom build ported with AsmJS), TypeScript, React, Canvas.
  • Realtime notification service: SSE, Websockets, TypeScript, React, Node, Express, RabbitMQ, Redis.
  • A tool to mimic Instagram stickers and overlays, which uses quite complex and low level text measurement, positioning and aligning calculations: TypeScript, Vanilla JS, Canvas.
  • More libs, e.g. custom UTM management, cookies; more pull requests: Ghost blog, Material colors, Angular intro, etc.

Typical tasks

  • Design a new feature | system | process | logic
  • Implement most complex concepts | integrations | components
  • Help, consultations, architectural decisions, API validation
  • Code review, repo and branch management
  • Choosing and adopting tools, e.g. TSLint, Prettier, pre-commit hooks
  • Team planning, scrum meetings, board management
  • Interviews if any
  • Some UX

Frontend Engineer

Jan 2017 Jun 2017 1 year

Pronto Media | Holding

The holding owned few popular job search and general classified ads websites in Russia. Unfortunately, it went bankrupt.

Highlights

  • Legacy and partially new frontend for the classified ads board: jQuery, Vanilla JS, ExtJS, PHP templates, then we entered React, Redux, Webpack.
  • The legacy code survived few transfers between different teams and contractors, including foreign ones. Discussions were very limited and nobody really cared about quality until the main investor got tired of losing money and decided to give it the last try. They started to hire smart people, but the task of reviving the system was really challenging. Indeed, we had made a decent progress, but the additional investments ran dry nonetheless.

Typical tasks

  • Refactor a little feature
  • Fix some production bugs
  • Code review, mentorship
  • A lot of interviews

CTO & Full Stack Engineer

Jan 2014 Jan 2017 3 years

Gigman | Startup

New way of concert organization which delivers low cost tickets. Instead of usual fixed price customers would get a market exchange-like service. Sadly, the project was postponed a few times in spite of 100% technical readiness, has experienced vast number of organizational issues, and now is freezed.

Highlights

  • Truly realtime market via SocketIO and PostgreSQL notifications.
  • Backend on Heroku, Amazon S3, Godaddy, PostgreSQL, Redis, TypeScript, Node, Express. All business logic is fully covered with tests and implemented via (fairly complex) DB prodecures with transactions, SQL/PLSQL part alone is ~5000 LOC, the rest backend is rather thin and scales mostly to handle concurrent websocket connections.
  • Frontend utilizes AngularJS, Gulp, ESLint and is fully responsive from mobile to large desktops.
  • More then 550 unit and integration tests (including multiple OAuth-autorized users trading assets and communicating through SocketIO), done in several browsers through Mocha, Chai, Superagent, Protractor, Selenium, Karma.
  • Also, everything (migrations, backend, frontend, tests) is decoupled and placed in different packages inside a mono repository.

Typical tasks

  • Being a CTO and full stack engineer, I designed and implemented everything by myself.

Backend Engineer

Feb 2013 Apr 2014 1 year

Trading System Administrator | Corporation

TSA runs the wholesale market of electric power in Russia (roughly similar business to stock exchanges).

Highlights

  • Adapted a primary internal backend framework for a modern Java and Oracle: moved forward few major versions, nobody else wanted to do this.
  • Proposed and started to use frontend frameworks instead of primitive JS or at best jQuery.
  • Complimented for the best UI among new internal projects.
  • Outside of work created for business analysts a friendly wrapper around Jira (which was also extremely outdated) with extra functionality.

Typical tasks

  • Create or modify one of internal proprietary subsystems to align with new government or market regulations.
  • Backend worked on Java and Oracle PLSQL, while frontend was usually written in Vanilla JS or jQuery, later I started using Knockout and then Angular.

Business Analyst

Oct 2011 Feb 2013 1 year

Trading System Administrator | Corporation

TSA runs the wholesale market of electric power in Russia (roughly similar business to stock exchanges).

Highlights

  • Pioneered a move forward from the extremely outdated IDEF (Integration DEFinition) notation and tools to UML (Unified Modeling Language) and BPMN (Business Process Model and Notation), which eventually was accepted as a company-wide standard.
  • Refactored from scratch a number of internal systems of business processes.

Hobby

Here are the most notable private projects (among 17 total), which I've managed in my spare time.

Option Toolbox

Sep 2014 Jan 2017 2 years

Online risk assessment and hedging toolbox for options traders on US stock exchanges. Initially created for myself as a much more user-friendly and functional replacement of broker's software, but exposed to the public later. The project was under active development when I was using it almost every day to manage my own portfolio. Also has a blog, where I had occasionally posted some relevant thoughts and ideas.

Highlights

  • Fully interactive mobile-friendly 2D (SVG) and 3D (WebGL) charts.
  • Black-Scholes financial model calculations done with my own open-source AngularJS module.
  • Delayed financial data from Google and Yahoo.
  • Realtime market quotes from the local Interactive Brokers' terminal through SocketIO.
  • AngularJS, NodeJS, Heroku.

Private Ads

Jul 2014 Jan 2015 1 year

Classified advertisements' place with additional features, intended to level up the usefulness of service. The project is currently turned off as a consequence of the time and advertisement budget underestimation. I thought it would be possible to run a full service by myself, I was wrong.

Highlights

  • Introduced flexible user-defined tags instead of predefined classification (tag relations and weights are stored in a graph database for handy search and suggesting)
  • Ability to add a desired map area to the search criteria (e.g. to find nearest offers)
  • Full i18n, live FX exchange quotes and UI translation on the fly
  • AngularJS, NodeJS, Neo4j, Heroku, Google Maps

Open source

Here are the most notable open source projects (among 34 total), where I've done full or a majority of work.

Kubernator

Jun 2017 Nov 2017 1 year

Kubernator is an alternative Kubernetes UI. In contrast to high-level Kubernetes Dashboard, it provides low level control and clean view on all objects in a cluster with the ability to create new ones, edit and resolve conflicts. As an entirely client-side app (like kubectl), it doesn't require any backend except Kubernetes API server itself, and also respects cluster's access control.

Highlights

  • 450 stars
  • 28 forks
  • 2 contributors
  • React, Redux, Sagas, Kubernetes
  • The tool is being actively used in our company for almost 2 years now without updates and any frontend issues

Sticky Cluster

May 2016 Oct 2016 1 year

In cluster environment SocketIO requires you to use sticky sessions, to ensure that a given client hits the same process every time, otherwise its handshake mechanism won't work properly. To accomplish that, manuals suggest the sticky-session module. My module is based on the same principles as sticky-session, but utilizes a more efficient hash function and also works asynchronously out of the box.

Highlights

  • 100 stars
  • 21 fork
  • 2 contributors
  • NodeJS
  • up to 10x faster than sticky-session
  • much better scattering over the worker processes than that of sticky-session
  • asynchronous out of the box, just run a callback when you're done initializing everything else
  • works correctly with IPv6

Angular Evaporate

Sep 2014 Oct 2017 3 years

AngularJS module for the EvaporateJS library (uploading files in chunks to Amazon S3 with pause/resume), with a complete example. Reinforces the EvaporateJS library to allow AngularJS-specific usage along with all the native functionality plus additional features.

Highlights

  • 27 stars
  • 15 forks
  • 4 contributors
  • AngularJS