servers and scrums and stuff

Michael Scoggins
4 min readSep 7, 2020

--

How does Node.js handle child threads?

node.js runs your (javascript) code in a single thread, but it is written in C, C++, and javascript, while using a C library called libuv to run asynchronous I/O in the background, concurrently with your code. libuv is able to accomplish this by using a threadpool. but it is abstracted into the background, and the programmer doesn’t have to worry that much about it. the ability to write code in a single thread effectively eliminates race conditions, or conflicts of code that need to finish in a certain order or happen concurrently — without cross-talk — so that the user experience is not interrupted or caught in a loop while e.g. some HTTP-request hangs in the balance (loading spinners of doom). this helps projects to scale up continuously, and to integrate almost without limits.

newer ecmaScript features exist such as promises, async/await, and the microtasks queue which provide functionality for dividing I/O into efficient, concurrent events that scale according to user experience needs (UX) while remaining lightweight.

in short, node.js handles child threads pretty cleverly.

How can you listen on port 80 with Node?

const express = require('express')
const port = 80
app.listen(port, () => { console.log('app is listening on:', port)})

What tools can be used to assure consistent style?

eslint, prettier, esHint, jslint, and generally agreeing on one style while working in teams.

List out the differences between AngularJS and NodeJS.

angularJs is a .js framework for designing single-page applications (SPA).

nodeJs is a .js runtime environment written mostly in C++ which is is used as an open-source server environment for scaling large network applications. it is a massive community of frameworks/libraries/modules to fit literally any development need if there is a good system conductor to tie them all together for a given project.

angularJs is used for designing flexible and fast web apps that are adept at handling data transfer between the client and server, without need for ever reloading the page (in contrast to multiple-page applications where each anchor leads to a new webpage (MPA)).

nodeJs is used for hosting, creating, and deploying web apps that scale easily and allow for almost any development-style to take over and implement for. one could develop a webpage with angularJs and then integrate and deploy it with nodeJs.

What are the advantages of NodeJS?

see above.

What is meant by JSON?

JavaScript Object Notation. it is a shape for data to take that is very lightweight, flexible, and transferable. attributes and their values, wrapped in quotes, are separated by colons and stored as pairs while separated by commas. it’s easier to just show you.

const friendsPhones = {
"Frank": "281-000-0509",
"Jack": "281-000-0210",
"Philip": "281-000-1550"
}

it’s simple to access properties (or keys) in json by using dot notation. i can return Philip’s phone number by simply entering console.log(friendsPhones['Philip'])

and if objects have objects inside them, like if friendsPhones were part of an object called friendsContactInfo then i could get Frank’s number from

console.log(friendsContactInfo.friendsPhones['Frank'].

Discuss your understanding of Agile so far.

Patrick White in his blog puts it perfectly:

Agile, or scrum, is a workflow process where you stay flexible and develop a product iteratively. Each sprint your team decides what features it will develop and works to that end. The workflow stays flexible and the product evolves over time with each iterative sprint.

How is scrum different from waterfall?

Waterfall Approach

in a waterfall approach, each stage happens in succession, linearly. each stage depends on the last stage, and previous stages are never revisited.

scrums are a part of an agile approach — an approach which encourages bundling up the processes/workflow according to the situation, and chunking them to team members or groups of team members. stages can be worked on collectively and/or individually, reviewed, passed between members or teams, and even revisited at a later stage. the key word here is flexibility. scrums — short meetings facilitated by a scrum master and held ~every couple weeks — are meant to ensure the team works as a cohesive unit and can self-organize against unforeseen challenges while still meeting them in a timely fashion.

scrums are much better for flexible teams under less rigid management who may have a less clear goal in mind compared to the more battle-hardened and linear waterfall approach, where micromanagement is the key word. the waterfall approach is good for projects where management already has a clear-cut goal and little to no ambiguity on the way to that goal, or has a disparate team that might not communicate with each other or even see each other’s work until it hits production.

What are the Three Amigos in Scrum?

the business amigo, the development amigo, and the testing amigo. these can pretty much be summed up as the before, during, and after of each work increment.

What is the “timeboxing” of a scrum process called? Describe, please.

the scrum master allots a maximum amount of time for an activity during the scrum. it’s the method scrums use to give deadlines for ambiguous tasks in order to more concretely define a complex workflow.

What are the roles of a scrum master and product owner?

the scrum master is the liaison for the product owner. the product owner reflects the client/user needs, and the scrum master facilitates the dev team toward each iteration of the product/project.

--

--

Michael Scoggins

graduate of Austin Coding Academy. looking for a full-stack (MERN... with a flexible M) web dev position.