-
Beyond the Buzzwords

Modern engineering has become extremely good at making ordinary mechanisms sound profound and inaccessible. Give a process a few more layers, add a hosted dashboard, place a protocol in the middle, wrap the infrastructure in a product name, and suddenly a small system begins to carry the posture of an industry.
The tools themselves are not the problem. The performance around them is. We describe simple interactions in language so inflated that the words begin to outrank the mechanics. A container is no longer a process with packaging. It becomes part of a platform story. A few services and some configuration become architecture. A script with side effects becomes orchestration. The naming grows faster than the complexity.
That inflation has a cost. Engineers begin to treat tools as territories instead of interfaces. Entire clusters of technology are discussed as if they require initiation rites before anyone is allowed to touch them. And so a lot of modern IT acquires a sense of difficulty and prestige it does not fully deserve.
-
Software Engineering Craftsmanship

Tools help, but craft comes from how you think. You don’t need a heavyweight IDE or a pattern catalog to design data structures. You don't even need a certification. What you need is a tight feedback loop. Chrome DevTools[1] is enough.
Open the browser, open dev tools, open console, open live expressions[2] and let's build something useful. No help, no go to definition, no refactoring, no fancy diagrams. Just a thought, crafted step by step.
-
Control flow (Part 2)

In Part 2, we delve deeper into control flow techniques. This time, we focus on code design skills rather than relying on tools integrated into the compiler/language. As a result, these techniques can be applied to any modern programming language or runtime of choice. While some of them are recognized as patterns, others involve manipulating language rules in a more nuanced way. Regardless, all of them merit our attention as novel approaches to resolving common programming challenges.
-
Control flow (Part 1)

It's been a while since my last post, but I'm back with more thoughts on managing execution control flow. How do programming languages control the flow or processing of instructions? We are going to be talking about tools far more interesting than control structures such as loops, conditional statements, functions, and exceptions. Not every language has them built-in, but most of them could be emulated. As such, this Part 1 article discusses the use of continuations, coroutines, and fibers for managing control flow in software programs. It explores the benefits and differences of each mechanism and provides examples of their implementation.
-
Passing JSNAD certification in one go

As somebody who recently passed JSNAD certification exam, I wanted to share some thoughts about the exam process and preparation tips. It should be useful for those seeking to pass the certification. It is not that difficult. But, as usual, it's all about details.
-
Reactivity in JavaScript

These days, all mainstream JavaScript frameworks have reactivity built-in. Understanding basic principles of reactivity behind fancy implementations could be helpful while tackling complex ideas and/or design decisions for a particular framework or library. In this post, we'll be talking about reactivity of interactive user interfaces and specifically reactivity of the UI-bound state.
-
Statistical analysis while staying at home

Quarantine times bring quarantine ideas. I've got one as well. How about building a website that shows COVID spread for the local area yet shows historical trends synced with the publicly available data sources? Sounds difficult? No way...
-
Producer - consumer file processing

My [previous post] got some questions about the front-end architecture and its potential improvements. So, this time, I am spending a bit more time within the JavaScript space with some modern front-end decisions that could be made here.
-
Packing larger files into Azure blobs

On November 4th 2019, Azure SDK team published[1] a release containing improved APIs for the blob storage manipulations. Finally, I got some time to try new features regarding existing use cases of dealing with larger files. Following is a step by step project setup for uploading/downloading large files using Azure blob containers.
-
Killing "IF" softly

There is a ton of material out there about the negative effects of nested if-else statements. Most of the time the problem description is accompanied by the refactoring tips and tricks to make the code more readable, flat, compact, etc. With this article, we are going to explore a different approach to dealing with the conditional "if" operator. We'll try to eliminate the "if" statements from the code usage, yet keeping all the benefits of conditional branching.