← Back to list
Registration: 09.04.2020

Vasilij Teljatnikov

IT
senior
Specialization: Fullstack-developer

Portfolio

Pincom

Co-founder, Lead developer, March 2015 - July 2016. The goal of this project was the unified delivery platform for shops, sellers, cafes, restaurants, etc. It was one of attempts to create my own startup and learn new technologies. Frontend: Angular 1.x, Angular Material, Bower, Cordova/PhoneGap, Google Maps/Yandex Maps, Gulp, Yeoman, Google Fonts, LocalStorage, jQuery, Lodash, Angular UI Router, Angular Translate, Restangular, Font Awesome, SASS, JSHint, Karma, Moment.js Backend: Ruby on Rails, MySQL, Puma, Mina, Bcrypt, Kaminari, Pundit, JWT, RVM, mailgun_rails, HAML, phony_rails. Public site: Ruby On Rails, Angular.js, Browserify, ES6, Bootstrap.

ZAYAVKI.BIZ

Founder, Developer, July 2012 - March 2018 This is an online-journal of client requests for housing companies. I developed the first version in MS Access with MySQL ODBC Driver, which could work only with VBA (Visual Basic for Applications) scripts. I have an intermediate version of the project that has not been released but I defended my graduation thesis with this project in the PetrSU with high estimation in 2014 and learned MongoDB + Node.js stack. Intermediate version backend additional npm packages: MongoDB GridFS, Redis, Schedule, uuid, Expect.js, Mocha, Optimist, Should, Superagent, Stylus. In September 2016 the project was released with several local clients. Frontend: Angular 1.5, Angular Material, Webpack, LocalStorage, Babel, ES6, ESLint, Pug (Jade), Moment.js, jQuery, SASS. Backend: Express.js, Bcrypt, JWT, MongoDB + Mongoose.js, Validator.js.

Spritos

Founder, Developer, July 2014 - January 2018 This is a small special tool for compiling and editing spritesheets from the separated animation sequences produced by animation packages like Adobe After Effects (on it’s time). Develop a small copy of Greeder.js framework with Canvas 2D render and render tree implementation. This software had user-friendly features to manipulate separated files (like layouts in Photoshop) in canvas - move, resize, change opacity and z-index position. Frontend: Angular.js 1.2, Bower, ES5, Lodash, Font Awesome, Grunt, LocalStorage, SASS, JSHint, Karma.

Skills

Angular 1.x/2/4/5/6
Apache
Babel
Bash
Bower
Chai
Cordova/PhoneGap
CSS3
Docker
ERB
Express.js
Git
GLSL
GoLang
Go Macaron
Grunt
Gulp
HAML
HTML5
HTML5 Canvas
Jade/Pug
Java 8/11
JavaScript
Jest
JSHint
JWT
Markdown
Mercurial
Mocha
Mongoose.js
Nest.js
Nginx
Node.js
NPM/Yarn
PM2
PostCSS
Python 3
React.js up 16.8 and higher
React Native
RegExp
Ruby
Ruby on Rails
SASS/SCSS
Spring Framework 5
Starlette
Stylus
TS|ESLint
Vue 2/3
WebGL
Webpack
Yargs

Work experience

Lead Software Engineer
since 12.2021 - Till the present day |Quantori
React with Hooks API, MobX, TypeScript, ESLint, Docker
- Develop Life Science projects, like chemistry molecules database, scientific publications relations search tool. - Work with Frontend and Frontend/DevOps tasks, reviews, etc. Design and implement specific data fetching algorithms for the 3-rd party table view. Pack frontend builds to Docker container with dynamic environment variables.
Lead Frontend Engineer
04.2020 - 12.2021 |dicehub
Frontend: Vue 2 and 3, Vue Router, Vuex, TypeScript, ESLint, Jest, GraphQL. Backend: Python 3 (Starlette), GraphQL, Docker.
- Develop and maintain dicehub.com frontend services - main site with core idea ‘GitLab but for engineers’, CFD templates, admin area. - Lead the frontend engineers team with architecture, vue.js ecosystem utilization, consistent code style. Brought TypeScript and strict ESLint to the project. Align common and frontend-specific design principles. - Work on full-stack tasks with touching API on Python and Postgres database, contribute to frontend building with Docker images. Leave reason: project has been developed for too much time and I was laid off because of the financial situation in the company.
Software Engineer
11.2018 - 04.2020 |Snapcart, Inc.
Frontend: React.js, TypeScript, ESLint, Jest/Mocha, TestCafe, Next.js, Semantic UI. Backend: Node.js, AWS Lambas/ECS, MySQL, Java SE 8, Spring Boot 5, Docker, Terraform.
- Developed several internal CLI tools for Data Factory assessment, written on Node.js/TypeScript, with Yargs as CLI API, Inversify for DI, Jest for unit testing. There are application fields for this toolset - Internal API clients, scoring algorithms, CSV reports, data fetching and processing. - Developed microservices from scratch with Spring Boot 5 (Java SE 8) + Netflix Conductor (microservices orchestration framework) in close collaboration with Data Science and DevOps guys. Maintain the related TeamCity configuration, pipeline setup, database management. - Developed DSL on a frontend application for flexible datasets annotation. - Maintained two major internal React applications: TypeScript migration, components split refactoring, Unit (Jest/Mocha) & Integration (TestCafe) tests introducing. Alongside with React it uses such popular frameworks, like Semantic UI, Next.js, Material UI, ESLint + Prettier, and so on. - Maintained and developed backend microservices on Node.js + MySQL on AWS Lambdas. Leave reason: laid off because of COVID-19 economical crisis.
Senior Frontend (then Fullstack) Developer
03.2018 - 09.2018 |payever, GmbH
Frontend: Angular 2+, Angular Material, Reactive X (RxJS), ngrx/store, Angular CLI, TypeScript, Custom Elements, Bootstrap, Moment.js, Jasmine + Karma, Istanbul, SASS. Backend: Nest.js (over Express.js), MongoDB (over Mongoose.js), TypeScript, JWT, Kubernetes, Jest, RxJS.
- Maintained and developed several web-applications for the rich “Commerce OS” ecosystem, including (multiple kinds of) Checkout, Point of Sale, Store, Contacts, Messenger and others. - Started from maintaining a few SPAs (Angular 2, somewhere Backbone/CoffeeScript) very related to backend monolithic system written on Symphony (PHP) - bug fixing, designs updating, etc. - Then continued with migrating apps to the latest Angular versions, fixing bugs on IE 11, maintaining a few micro-frontend apps, contributing to core library, etc. - Then developed brand-new apps using Custom Elements and new architecture approaches and covered a lot of modules of the inner frontend core UI library with tests, setting up Istanbul for Angular testing ecosystem to ensure 100% coverage. - At last I switched to the Fullstack position using Nest.js (which is rich and very similar to Angular architecture, but for backend) + MongoDB over popular Mongoose.js. I followed microservices architecture with Kubernetes orchestration. Also I developed multiple related apps from zero. Leave reason: burned out under high-intensive management pressure.
Senior Frontend Developer
09.2017 - 03.2018 |BlockSettle AB
Frontend: TypeScript, Knockout, React, React Router, Redux, WebSocket, SASS, Reactstrap, ImmutableJS, Yarn, Webpack, TSLint, Jenkins and others. Backend: Python, MySQL, Docker, Jenkins, Nginx.
- Rewrote frontend app from Knockout to React for the Bitcoin exchange platform BlockSettle. - Apply some DevOps functions: put all microservices, database and frontend clients to Docker containers and set up staging/UAT/production building & deployment with Jenkins. - Also I worked with setting up Nginx and SSL, DDoS protection. Leave reason: contract obligations was done and no more interests from my side to prolongate.
Senior Fullstack Developer
01.2017 - 07.2017 |GBooking
Frontend: Angular 1.4, ES6/ES7, Gulp, Stylus, Moment.js. Backend: Node.js for certain API and integrations, GoLang on microservices, MongoDB (over Mongoose.js), Redis, RabbitMQ.
Maintained several SPAs and APIs of the universal booking system, adopted for different international business fields like healthcare, beauty, car services, sports, and many others. Put the backend to Docker containers for the development environment normalization. - Developed a special caching system for booking. - Started working with a mobile app on React Native as a booking client for the system. Leave reason: bad work-life balance.
Senior Fullstack JavaScript Developer
03.2016 - 01.2017 |dicehub (ex-’SSP Engineering’)
Frontend: Angular.js 1.x, ES6/ES7 (via Babel), Webpack, Stylus, Jade, ESLint, Karma, Lodash, Moment.js + TZ, Socket.io, etc. Backend: Node.js, Express.js, MongoDB + Mongoose, PM2, Socket.io, Redis, Passport.js, Chai/Mocha, GoLang, Elasticsearch, Docker, Amazon AWS SDK, Amazon Infrastructure, etc.
- Developed the main site (SPA) which works like GitLab but for engineers. - Developed Admin area SPA for this site with all server-side controllers. - Developed Wiki subsystem for engineering documentation stored in the main site, which uses git repos for saving Markdown files. And applied integration of this system to the main site. - Refactored some frontend parts to a `true` Angular module system - when every component is contained in a separate folder with all relative files like controllers, styles, templates, with DRY principle applying. - Setup ESLint with strict rules in the project with adoption to the existing codebase. Leave reason: low compensation rate because of the long MVP stage.
Senior JavaScript Developer/Ingame Team Lead
05.2013 - 01.2016 |AST222
Initial stack: Vanilla JavaScript, HTML5 Canvas, Box2D physics engine, Sound.js, Preload.js, Hg/SVN/Git Later stack: Greeder.js (ingame framework developed by me), OOP, still Vanilla JavaScript, HTML5 Canvas & WebGL, ES5, Angular.js, Express.js, MongoDB + GridFS, CoffeeScript, Gulp/Grunt, JIRA/Scrum, Slack, Git + GitLab
- Developed three games released on social media platforms - “Candy Dale”, “Sweetland”, “Treasures of the Pirate Bay 2”. And also there were two non-released games. Develop and maintain the infrastructure instruments for them which help other team mates working with ingame content (spritesheets generator, 2D animations generator). The game engines I worked with were written with HTML5 Canvas, and wrapped with Angular.js (by another team). - Created internal infrastructure of applications for simplifying 2d graphics development - Greeder.Spriter, Greeder.Animator. - Created replays system which saved player steps and random core seeds, encoded for compression, sent to server via lobby. Then any replay data could be replayed and we could track each user’s behavior. - In the last year in this position I became a team lead of a small 'ingame' team - make daily scrum meetings, tasks planning prioritizations, tried to complete sprints, make code reviews, RnD of new technologies, etc. - In each game I implemented game rendering, 2D animations (from scratch in my own framework on Canvas and WebGL shaders), player interactions (input events), levels structure and processing (via connected components), pseudo-physics of some game objects (in-space gravity, match-3 grid of falling-blocks, vectors of weapon shots, etc.), state machines, events cycles management, and other and other interesting things! - In any project I participated in I interacted with all teammates such as lobbyists, graphic designers, animators, game designers, mobile developers, QA, DevOps, their team leads, our chiefs, office cat and others. It's unforgettable experience in a very dynamic area of game development. And in released projects I had many cycles of optimizations - memory leaks fixes (together with Angular lobby wrapper), algorithms optimization, caching, app size decreasing. Leave reason: no solid production experience.

Educational background

Automated systems of information processing and management
2009 - 2014
Petrozavodsk State University

Languages

EnglishUpper IntermediateRussianNative