Skip to content

Instantly share code, notes, and snippets.

View nikolenkoanton92's full-sized avatar
:octocat:

Anton Nikolenko nikolenkoanton92

:octocat:
View GitHub Profile
@nikolenkoanton92
nikolenkoanton92 / .Frontend Technical Interview Prep.md
Created September 9, 2021 04:25 — forked from augbog/.Frontend Technical Interview Prep.md
Frontend Technical Interview Prep: A study guide of things I constantly re-review when interviewing for frontend.

Frontend Technical Interview Prep

EDIT: Well this has been linked now so just an FYI this is still TBD. Feel free to comment if you have suggestions for improvements. Also here is an unrolled Twitter thread of a lot of the tips I talk about on here.

I've been doing frontend for a while now and one thing that really gripes me is the interview. I think the breadth of knowledge of a "Frontend Engineer" has been so poorly defined that people really just expected you to know everything. Many companies have made this a hybrid role. The Web is massive and there are many MANY things to know. Some of these things are just facts that you learn and others are things you really have to understand.

Every time I interview, I go over the same stuff. I wanted to create a gist of the TL;DR things that would jog my memory and hopefully yours too.

Lots of these things are real things I've been asked that caught me off guard. It's nice to have something you ca

function Heap(compare = (a, b) => a - b) {
const arr = [];
return { push, pop, peek, size };
function size() {
return arr.length;
}
function push(v) {
arr.push(v);
@nikolenkoanton92
nikolenkoanton92 / introrx.md
Created February 3, 2018 18:56 — forked from staltz/introrx.md
The introduction to Reactive Programming you've been missing
//problem1
var kits ={
kit1: {
cost : 6.0,
components: ['one','two','three']
},
kit2: {
cost: 3.0,
components: ['three','two']
@nikolenkoanton92
nikolenkoanton92 / teamcity-agent-ubuntu.md
Created August 27, 2016 20:27 — forked from vibegui/teamcity-agent-ubuntu.md
Instructions to Setup Teamcity Agent on EC2 Ubuntu 12.04.2 Linux with NodeJS and PhantomJS
@nikolenkoanton92
nikolenkoanton92 / crypto-pbkdf2-example.js
Created August 17, 2016 16:58 — forked from skeggse/crypto-pbkdf2-example.js
Example of using crypto.pbkdf2 to hash and verify passwords asynchronously, while storing the hash and salt in a single combined buffer along with the original hash settings
var crypto = require('crypto');
// larger numbers mean better security, less
var config = {
// size of the generated hash
hashBytes: 32,
// larger salt means hashed passwords are more resistant to rainbow table, but
// you get diminishing returns pretty fast
saltBytes: 16,
// more iterations means an attacker has to take longer to brute force an
@nikolenkoanton92
nikolenkoanton92 / gist:f7d8e086a0ba8e1a320d67921ba2e01e
Created August 11, 2016 23:53
Simple node.js code style tips to improve code quality

Whether you use 2 spaces or 4 spaces, there are a few simple things that can make your node.js code easier to read. We've been using them in all the hapi modules for over 4 years now to great results. This list is by no means complete but it highlights the most useful elements that will give you immediate value in reducing bugs.

Required modules

JavaScript makes it harder than most languages to know where variables are coming from. Variables assigned required modules are particularly important because they represent a singleton object shared with the entire application. There are also globals and module globals, along with function variables and arguments.

Traditionally, variables starting with an uppercase letter represent a class that must be instantiated using new. This was an important semantic in the early days of JavaScript but at this point, if you don't know Date requires new Date() you are probably very new. We have adopted Upper Camel Case variable names for all module global variables

@nikolenkoanton92
nikolenkoanton92 / index.js
Created May 19, 2016 20:57
Experienced Frontend Engineer, test task for Citrusbyte
// input array
var notFlattenArray = [[1, 2, [3]], 4]
/**
* Convert unflatten array to flatten
* @param {Array} array
* @return {Array} flattenArray
*/
function convertArray(array) {
var flattenArray = []
@nikolenkoanton92
nikolenkoanton92 / The Technical Interview Cheat Sheet.md
Created May 3, 2016 21:00 — forked from tsiege/The Technical Interview Cheat Sheet.md
This is my technical interview cheat sheet. Feel free to fork it or do whatever you want with it. PLEASE let me know if there are any errors or if anything crucial is missing. I will add more links soon.

Studying for a Tech Interview Sucks, so Here's a Cheat Sheet to Help

This list is meant to be a both a quick guide and reference for further research into these topics. It's basically a summary of that comp sci course you never took or forgot about, so there's no way it can cover everything in depth. It also will be available as a gist on Github for everyone to edit and add to.

Data Structure Basics

###Array ####Definition:

  • Stores data elements based on an sequential, most commonly 0 based, index.
  • Based on tuples from set theory.
@nikolenkoanton92
nikolenkoanton92 / nginxproxy.md
Created February 2, 2016 17:49 — forked from soheilhy/nginxproxy.md
How to proxy web apps using nginx?

Virtual Hosts on nginx (CSC309)

When hosting our web applications, we often have one public IP address (i.e., an IP address visible to the outside world) using which we want to host multiple web apps. For example, one may wants to host three different web apps respectively for example1.com, example2.com, and example1.com/images on the same machine using a single IP address.

How can we do that? Well, the good news is Internet browsers