Articles

What it means to be a backend developer

What it means to be a backend developer I see more and more flame wars on twitter regarding front VS back- and who's stack is the most complex. Not only does it annoy me beyond reason due do it's inherent pointlessness, it also pains me to see how backend is perceived at large. 80% of backend is CRUD. 🤷‍♂️ — A Cosmic Designer (@henryikoh_) June 25, 2020 Ignorance is thinking that you have it the hardest, or that a whole stack can be boiled down to a single pattern. If not CRUD, then what is backend ? Here's my definition: Backend is the management and enforcement of business rules, security and data at scale. Let's break it down. Management and enforcement of business rules Businesses evolve, sometimes faster than code is able to follow. Models and patterns that made sense a year ago may be completely irrelevant now.  Beyond that, you may want to segment your business rules based on regionality, A/B testing, client type (browser, mobile app, etc) and even network typ

Taming node_modules

Image
It's no secret that node_modules, while a wonderful solution to local package management, is also regarded as a swarming nightmare of files, which create a lot of pressure on disk IO and space. This can be very problematic for smaller devices running node as is now more popular in IoT. There are a couple of neat solutions to bundle all of your dependencies in a single js file, like  yarn's PnP  proposal explores. Unfortunately, this doesn't necessarily work for IoT devices with low computing power as parsing such a large JS file would lock everything for a few seconds, or perhaps longer. This concept has been well explored in this fantastic article:  The cost of javascript in 2018 Instead, I tried understanding *what* exactly can be found in your node_modules. The results may shock you... - Benchmarking suites - Wikis and documentation (with image/video assets) - Test suites - Internal tooling - Raw sources (alongside transpiled modules) - Code samples Ri

Tool: AWS region to region latency calculator

We had a project for work to create a secondary infrastructure in Europe, our main one being in Canada (for legal reasons). During the conversation, there was a question as to whether we would need to replicate everything, or if the European services could leverage some of the Canadian ones. Of course that would allow us to save a pretty penny on EC2 costs, but what about the end user performance impact of making requests that need to physically travel back and forth the Atlantic Ocean. I embarked on the (quick) journey to build a tool that would estimate the minimum amount of time (ms) required for a packet to make that trip, based on physics. The premise is that a packet of information may not travel faster than the speed of light. This premise is backed by the fact that the speed of light is the fastest speed at which energy, matter and information can travel. ( source ) With this constant, along with the geographical positions of AWS data-centers, plus some maths for the ac

Blogging isn't for me

I hate writing. I've been working on a couple of really cool projects as of late, but I lack the motivation to write blog posts or articles on that. How do you folks do it? #javascript #opensource — Fred Charette (@fed135) December 11, 2019 I have dozens of ideas and concepts that I want to explore every day. But hours in a day are precious, there's work, family, friends, house projects, *cough* gaming *cough*. And, well, I have a lot of trouble publishing words that I'm proud of as opposed to code. I've amassed over the past few years a grand sum of 21 unpublished articles on various topics and various degrees of completeness. Ranging from tidbits of info on specific topics all the way to scientific white papers. At the root of it all I guess there's one reason why I don't publish these. I'm afraid of being outed as a fraud- the infamous impostor syndrome. I freeze at the notion that someone could look at my work and point out to me that what