Emmanouil Liakos

Emmanouil Liakos

Software Engineer

Hi, I'm Manos :)

I am Full Stack Software Engineer from Greece, currently focusing on Front End technologies. I usually speak JavaScript!

I created this blog to document my development journey, share my thoughts and concerns about technology and self-development, while solidifying my everyday learning.


Browser frame budget

July 25, 2021

A refresh rate of 60 FPS is typical for any device these days. This means that in the timeframe of 1 second, the browser has to draw 1 frame on the screen, which in turn means that each frame has a time budget of 16.6ms (1 second / 60 frames = 16.66ms). Drawing this frame in 16.6ms includes:

  • Executing JS
  • Calculating styles
  • Calculating layout
  • Painting pixels on layers
  • Compositing those layers

Since all of these tasks run in a single thread, when they take more than ~10ms (not 16ms, because there is also other work being done by the browser), frames start to drop. Drop enough frames and visually perceptible lagginess starts to occur.

Sources: Rendering Performance by Paul Lewis

CRLF: Mind the line

June 15, 2021

Problems line endings might create, why different operating systems sometimes use different line endings and how to configure git to save yourself from headaches.

read more →


Arrays passed to template literals get coerced to strings

December 4, 2020

Nice little thing I learned today: When you pass an Array as a value to a template literal, it gets implicitly coerced into a String. Behind the scenes String.prototype.concat is used, as stated in the ECMA-262 specification document.

const fruits = ['apples', 'oranges'];
console.log(`${fruits}`); // 'apples,oranges'


© 2021. Made with ♡ by me :)