Kirill Novikov

Full-stack Javascript Developer



About

I have more than 10 years experience, working in both startup and big enterprise projects. During this time I have come to understand that being a good developer is not just about writing code. A good developer should solve tasks in conditions of uncertainty, decompose requirements, search for a balance between technologies and business, think first about business value, and should have the ability to support the solution with tests and a solid environment. He should also have good communication skills and be able to quickly learn new things.


Skills

Key skills

  • FP and OOP paradigms
  • Algorithms and data structures
  • Design patterns and architecture patterns
  • Team leading, agile, scrum, code review

JS

  • Languages: JS (ES5, ES6, ESNext), TypeScript, Flow, Ramda
  • Web: React (Redux, Sagas, Router, Styled, PostCSS, SSR, etc.), MobX, VueJS etc.
  • Mobile: React Native, Android (Java)
  • Frontend: HTML5, CSS3, Bootstrap, Foundation, SaSS, WebAPI
  • Backend: NodeJS, Express, PM2, PhantomJS
  • Environment: Webpack, Babel, Gulp
  • Test: Jest, Sinon, Mocha, Chai, Selenium, Webdriver

Data storage

  • Postgres, IBM DB2, MySQL
  • MongoDB, Redis
  • Kafka

Java

  • Languages: Java, Groovy
  • Frameworks: Spring, Hibernate, Apache Lucene
  • Environment: Maven, Apache Tomcat, Jenkins
  • Test: JUnit, Selenium

Other

  • AWS (EC2, Serverless, S3, etc.), Docker, Nginx, HAProxy
  • REST, GraphQL, Server-Sent Events, WebSocket
  • GIT, Github, CircleCI
  • Ruby, Clojure

Employment History

Hive / Full-stack javascript developer (React native) (2018-present) / Remote work

  • Hive is a leading company in IoT in the British market. Hive has 3 million active users and at least 30 different IoT devices such as thermostats, bulbs, heating, boilers and etc. Hive mobile application is an essential part of the business.
  • Our team had 2 goals. The first goal was migrating from IOS/Android native development to React native. The second was building a production-ready process of development, and testing and delivering this new application. It was a challenge because the existing native applications had a lot of functionality, which was expanding every day.
  • As a result we moved all existing applications to React native, migrating UI to next modern 2.0 version, improved stability and quality of releases. We built an automated QA system with react native web.
  • We have achieved almost native application performance even for slow devices and our application rating speaks for itself (4.6 with 53k stars for IOS and 4,5 with 13k stars for Android)
  • We have built some very difficult user flows for example a troubleshooting bot with a simple chat UI where users can solve a lot of problems with devices without any intervention from the support team.

Hippo LLC / Full-stack javascript developer (React native) (2017-2018) / Remote work

  • As a React native developer I created different functionality: notifications, refer a friend system, buy screens, a/b testing and featuring functionality, created wrappers for native libs.
  • As a web developer, I worked on a customer experience portal where a support service can solve user's problems. I worked on creating both frontend(React/Redux/Blueprint) and backend(Ruby/NodeJS) parts.
  • Was involved in creating the first version of a web application(React/MobX) with the same functionality as in the mobile application.
  • All infrastructure in AWS with Terraform management around.

Solidopinion / Full-stack javascript developer (2016-2017) / Remote work

  • As part of the R&D team I had to create a new tech stack for the main company product - commenting widget. The main goals were to reduce complexity, improve performance and stability and create a modern development environment with CI and CD processes and good test coverage in all levels. Unit tests, e2e and etc.
  • First we created a boilerplate starter based on React with server side rendering support and a protocol for communicating between widgets on the page.
  • Server Side Rendering application on NodeJS supported communication with Kafka for receiving updates about new comments from backend and Redis for caching.
  • As a result, we refactored most of the widgets to a new stack, created a lot of documentation for the main team and migrated them to this new stack.

Wiley / Full-stack javascript developer (2014-2016) / Office work

  • Our team worked on an education platform and our goal was to create a new version of the web part of this Efficientlearning.
  • As a developer I worked on creating a new architecture and implementation for web application with modern JS support and also an automated build system.
  • Create an e2e testing platform based on Webdriver I/O and Selenium
  • Build integration with external LTI systems like Imsglobal

DaSystems / Team lead, Web developer (2012-2014) / Office work

  • Led team of 4 people with Agile and Scrum, hired developers
  • Designed and Implemented EDM system, complex system for creating digital environment for communicating and signing a digital document maybe inside the Pension Fund’s systems. Nearly 1000 users, millions of documents.
  • Designed and Implemented ESB system, a universal system for integration different corporate information system together with common business protocol.
  • Working on a new UI version based on AngularJS, migrating from JQuery approach.

NPFE / Java developer (2010-2012) / Office work

  • Design and development for Accounting system using ZK Framework. I developed both the backend and frontend with a Java tech stack.
  • Integrating this system with existing company infrastructure.

LASP / Team lead, Java developer (2010-2012) / Office work

  • Led team of 6 people, hired developers.
  • Supporting and creating new modules and functionality for AIS Pegas.
  • Migrating data from other systems.

IT Sfera / Software Developer (2007-2009) / Office work

  • Management systems for internet banners, design and develop the management systems for internet banners
  • Game 100 to 1, creating the analog of the game 100 to 1
  • Management system for a dogs’ nursery, design and development of the management system for a dogs’ nursery

Freelance projects

UpWork / Lymba / Web developer, Team lead (2016) / Remote work

  • Led project from scratch. This is an application which can extract information from books and prepare tests based on this information. On client side you could manage those tests and the results from pupils.
  • Design and develop SPA based on React



AutoMosGroup / Web developer (2016) / Remote work


UpWork / Carsumo / Web developer (2015) / Remote work

  • Create frontend for vehicle adverts aggregation website
  • Create scrapers for popular vehicle adverts websites such as: cars.com, ebay.com with NodeJS and PhantomJS

UpWork / MagicForms / Senior Java and Web developer (2014-2015) / Remote work

  • Application for building and managing forms (analogue Google Forms)
  • Implement Server and Client side
  • Create REST API for IOS and Android clients


Creator and speaker of murom.dev community

JAM stack - how to build websites in 2k19



Active speaker of biggest JS community in Nizhny Novgorod

ES.Next features (ES7, ES8, ES9) (JSNN#10)

Styled components - another way to style React (JSNN#7)

NodeJS Unit testing (JSNN#6)


Open source

React-avatar - drag&drop crop avatar React component based on Canvas


Education

Vladimir State University / Engineer degree (2004-2009)


Languages

  • Russian native
  • English Upper-Intermediate

Hobby

  • Skiing
  • Tourism