If you are preparing for Data Engineering position interview you must know all the main concepts of databases. And it’s not a click-bait. A few month ago I had several data engineering interviews and all of them included questions about the topics I’m mentioning in this article. Even if you are not preparing to the interview, you still may want to check those concepts and refresh them in your head.

Also, it will be useful not only for data engineers, but to a wide variety of professional working with data from databases: data scientists, ML-engineers, software developers and many more.

Photo by Christopher Gower on Unsplash

“Indeed, the ratio of time spent reading versus writing is well over 10 to 1. We are constantly reading old code as part of the effort to write new code.”

― Robert C. Martin, Clean Code

As developers, we spend a lot of time reading the code. We read the code of our colleagues, open-source repositories, and of course our own code. And sometimes it is a hard job. Mental overhead of reading a “dirty” and unreadable code is huge, you know that without me. …

For a long time I wanted to create my personal resume/CV website. Luckily, some time ago I bought a domain with my name — olegagapov.com. In this article I want to share my experience about creating CV website from scratch and deploying it to GitHub Pages. Let’s go!


For this project I will use VueJS. One can say that for simple portfolio/CV website it’s overkill, but I have my reasons to do so. First reason I want to separate data from view. This will allow me in future to simply migrate my data to another platform/solution and give me freedom…

JSON Web Tokens (JWT) are very popular nowadays. Modern web-development is aimed at building Single Page Applications (SPA) using latest JavaScript libraries such as Angular, React or Vue. Because of that reason, JWT becomes a standard of authorization and communication between SPAs and web servers. In this article, I want to build a Flask web server with JWT authorization.

Full source code + code for each part you can find here:


Attention! [edit: Apr 2021]

The code in this article is working, but uses old versions of the packages. If you want to follow along you need to install versions listed here.


In this tutorial I would like to show you how to connect Vue.js single page application with Flask back-end.

Basically, there is no problem if you want to just use Vue.js library with Flask templates. Well, actually the one obvious problem is that Jinja (template engine) uses double curly braces for rendering stuff as well as Vue.js, but there is a nice workaround explained here.

I wanted a bit different case. What if I need a single page application built with Vue.js (using single page components, vue-router in HTML5 history mode and other good features) and served over Flask web…

In part 1 we’ve created a basic structure for our app. In this part we will add a Firebase and implement an authentication functionality.

In this tutorial I want to focus on email/password method of authentication. This is a common way to add authorization to app. Still, with Firebase you can set up several OAuth providers like Google, Facebook and Twitter.

If you would like not to start this part from scratch you can clone previous part with:

$ git clone -b part-1 https://github.com/oleg-agapov/basic-spa-vue-firebase demo-app


In this tutorial I want to describe how to build a basic scaffold application with Vue.js and Firebase which includes:

  1. Authentication
  2. Real-time database
  3. Nice user interface based on material design

From technical point of view I will use the following:

  1. Vue.js — modern JavaScript framework
  2. Vue-router — for routing
  3. Vuex — for state management
  4. Firebase — for authentication, real-time database and hosting
  5. Vuetify — nice framework to create material design UI

This tutorial is not for complete beginners. The main prerequisite is knowledge of ES6 and at least basic knowledge of Vue.js. Having said that, any experience with front-end frameworks…

Oleg Agapov

Random guy on the internet

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store