Web: JavaScript, Front-end, Backend and more 

$ whoami

Senior Software Engineer

> about 6 years with GlobalLogic

> more than 7 years in Web Development

> Trusted Interviewer (Web)

> speaker and mentor at GlobalLogic JS community

> speaker and part of the program committee at JavaScript Fwdays

 

Inna Ivashchuk

Introduction

General description of technology & its usage

Web development is the work involved in developing a Web site for the Internet (World Wide Web) or an intranet (a private network).

Web technologies

Let me introduce the 3 main technologies that are used to build a website HTML, CSS, and JavaScript

HTML: website structure

The HyperText Markup Language, or HTML is the standard markup language for documents designed to be displayed in a web browser. It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScript. 

CSS: website style and colors

Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of a document written in a markup language such as HTML.

JavaScript: website functionality

JavaScript often abbreviated as JS, is a programming language that conforms to the ECMAScript specification.  JS is lightweight, interpreted, or just-in-time compiled programming language with first-class functions.

HTML

CSS

JavaScript

JavaScript applications

Websites

Web Applications

Presentations

Server applications

IoT

Games

Art

Smartwatch Apps

Mobile Apps

Flying Robots

Examples

....and many others

Interesting examples

JS Interactive Art

https://www.sbs.com.au/theboat/

Front-End vs Backend vs Fullstack JS engineer

Technology stack requirements and expectations for various seniority level

Front-End vs Backend

Front-end:

  • appearance (style, color)
  • controls (handlebar, gearbox)
  • wheels
  • sparks
  • etc

Backend:

  • engine
  • starter motor
  • radiator
  • ignition
  • etc

Client (Front-end)

Server (Backend)

"Hey, server, let's talk?"

GET HTTP-request

HTTP-response

How client communicates with server: visual representation

POST HTTP-request

HTTP-response

......

I'm a Front-end engineer and I like to create beautiful web apps with amazing design, animations and some business logic as well

Dinesh

I'm a JS Backend engineer and I like to write server code. And of course, my server has a name - 

Gilfoyle

ANTON

I'm a JS Fullstack engineer and I like to write server code and client (UI) code as well and even know a bit about DevOps

Gilfoyle

Dinesh

Richard

Front-end

Fullstack

Backend

The most popular Front-end libs and frameworks

The most popular Backend frameworks

Front-end

Backend

Playwright

QA Automation

Recruitment screening

What to assess at this stage?

What to check

Now let’s talk about the best practices for prescreening candidates:  

☐ Ask delivery leaders for a personal presentation of the project/vacancy 

 

☐ Understand the role of a project in simple words:

     Why is it needed, what are the inputs/outcomes, and what functional benefits, so you may efficiently engage the candidates according to their skills

 

Collaborate with your Trusted interviewers who support you in the technical interview

 

☐ Check English level

      Ask some general questions related to experience or even easy technical questions

 

Easy technical questions

  • Is JavaScript a synchronous or an asynchronous programming language? 

Correct answer: synchronous or synchronous with asynchronous ability

  • Name 3 principles of object-oriented programming

Correct answer: Inheritance, Encapsulation and Polymorphism

More questions can be provided by Technical Interviewer

Profiles showcase

Resume checks

Common recruiter's mistakes

  • Wrong technologies stack. A project looking forward for a React developer, but a Node.js developer suggested with no experience in React.

  • React developer for React Native position

  • English level is not checked. Please ask some basic questions in English to be sure a candidate has the required level.

  • Keep an eye on the main technology at the last project. If a vacancy requires knowledge of Angular, but a candidate has used this framework about 4 years ago - it’s a bad sign.

  •  Java engineer profiles are suggested for JavaScript positions

Mistakes

Why I've chosen Front-end

My Front-end journey has been started when I've created the first web site for my school 

Front-end is a combination of Designer and Programmer skills

Learning path

Front-end path

Front-end dev skills

or another framework/lib

must-have tech skills

Backend path

Backend dev skills

or another framework/lib

must-have tech skills

Nice-to-Have Tech Skills

How a web app communicates with a server

HTTP and WebSocket

      Hypertext Transfer Protocol (HTTP) is an application-layer protocol for transmitting hypermedia documents, such as HTML. It was designed for communication between web browsers and web servers, but it can also be used for other purposes. HTTP follows a classical client-server model, with a client opening a connection to make a request, then waiting until it receives a response. HTTP is a stateless protocol, meaning that the server does not keep any data (state) between two requests.

      WebSocket is a computer communications protocol, providing full-duplex communication channels over a single TCP connection. The WebSocket protocol was standardized by the IETF as RFC 6455 in 2011. The current API specification allowing web applications to use this protocol is known as WebSockets

Client 2

Server

Client 3

Client 1

Client 4

WebSocket and chats

WebSocket in TCP/IP protocol stack

WS

HTTP

DNS

FTP

TCP

UDP

IP

ICMP

ARP

DHCP

Ethernet

Wi-Fi

DSL

Application

Transport

Network

Data Link and Physical

Collect the data from the application software and format it for further processing

Packetize the data. Add sequecing and error correction info to each packet

Add source and destination IP address to each packet

Add source and destination MAC address to each packet and pass to NIC drivers

Client

Server

"Hey, server, let's talk WebSocket?"

HTTP-request

HTTP-response

"Okay!"

WebSocket protocol

Handshake (HTTP upgrade)

Bi-directional messages

WebSocket: visual representation

HTTP in TCP/IP protocol stack

WS

DNS

FTP

TCP

UDP

IP

ICMP

ARP

DHCP

Ethernet

Wi-Fi

DSL

Application

Transport

Network

Data Link and Physical

Collect the data from the application software and format it for further processing

Packetize the data. Add sequecing and error correction info to each packet

Add source and destination IP address to each packet

Add source and destination MAC address to each packet and pass to NIC drivers

HTTP

Client

Server

"Hey, server, let's talk?"

GET HTTP-request

HTTP-response

HTTP: visual representation

POST HTTP-request

HTTP-response

......

REST API*

      A REST API (also known as RESTful API) is an application programming interface (API or web API) that conforms to the constraints of REST architectural style and allows for interaction with RESTful web services. REST stands for representational state transfer and was created by computer scientist Roy Fielding.

*API - application programming interface

REST API criteria

  • A client-server architecture made up of clients, servers, and resources, with requests managed through HTTP.

  • Stateless client-server communication, meaning no client information is stored between get requests and each request is separate and unconnected.

  • Cacheable data that streamlines client-server interactions.

  • A uniform interface between components so that information is transferred in a standard form

  • A layered system that organizes each type of server (those responsible for security, load-balancing, etc.) involved the retrieval of requested information into hierarchies, invisible to the client.

  • Code-on-demand (optional): the ability to send executable code from the server to the client when requested, extending client functionality. 

I like that

JavaScript for Non-Technical specialist

By Inna Ivashchuk

JavaScript for Non-Technical specialist

  • 380