I’ve seen a strange amount of bickering about this particular pattern, and it honestly surprises me that there are two sides of this. Let me explain why one side’s opinion is so very wrong.

For a start let me get one thing very clear. ORMs are a tool that I support. That doesn’t mean I think that all ORMs are good by default. You can make a dogshit version of an excellent pattern. Stating that UnicornTearsORM is hot garbage doesn’t make ORMs hot garbage in general, it makes UnicornTears a bad library.

I say this as a user and supporter of ORMs who thinks Sequelize is a punishment for my varied, and enthusiastic sins.

One thing that seems to be abundantly clear in the debate is that people fundamentally misunderstand what ORMs are for…


These terms come up all the time but are rarely defined or discussed. So we’re going to have a look at these different ways of thinking about and writing code, and where advantages between them lie.

There are different ways and means to program. Some of them come up only occasionally, while some are becoming increasingly prominent. What defines these things, though, is not so much syntax or pattern as it is the way of thinking about things. These are paradigms.

The paradigms we’ll discuss are Procedural, Object Oriented, and Functional programming. As a baseline we’ll discuss these paradigms largely in JavaScript syntax, as it’s capable of all of the above, but will diverge into other languages as and when needed.

Procedural or Imperative Programming

Programming procedurally is a very explicit, step-by-step way of coding. …


I’m currently big on avoiding tribalism with regard to frameworks, and wanted to take a look at the component syntax in four major frameworks.

Every framework has its own syntax and approach to components. These approaches change over time and the last year has been one of fairly substantial shift across the industry, with major players replacing large sections of API. It can be difficult to keep a finger on the pulse of each of these technologies, and know what the current state of the art is.

I thought I’d sit with each and take a look, see how they compare in their implementation of the most trivial of components in the first instance.

The Contenders

The examples written here will be done in four frameworks…


Woman wearing a surgical mask and holding fruit in a supermarket
Woman wearing a surgical mask and holding fruit in a supermarket

The Australian Government wants everyone to participate in its public health initiative. But there are good reasons for people’s concerns.

I wanted to weigh in on the CovidSafe app the government has recently released. In part because I think the discussion of it has taken an ugly turn.

For a start I need to clarify two things. First, I’m not in Australia, I am in Thailand, so I don’t have to install this thing. Secondly, I want to clarify that I am not a rabid libertarian. I completely understand that health, law enforcement and social welfare is often in tension with individual freedom and I am completely fine with a compromise.

But this app is pure poison.

There are a…


There was a call for articles under the hashtag #emberjs2019 to discuss the future roadmap, priorities, and issues with Ember. I never did that in a timely fashion because I’m a bad person. So here it is anyway.

This is mostly in response to another article on Ember that was posted on Reddit. I wanted to respond to that in comments, but I thought my response served reasonably well as an article in its own right.

I actually don’t agree with this article at all. Or more particularly I agree with a lot of its concerns, but not its conclusions.

Ember Lost

Yep.

Ember Deserved To Lose

More debatable. And it’s also debatable why Ember lost and deserved to. I’m going to give my take in contrast to this one.

He is unquestionably right about the impact of…


One interesting thing about the Redux pattern is how much of it can just… go away. Here we look at how.

The first time I encountered Redux, I have to admit I wasn’t impressed. For a start, I was trying to learn React at the same time, and tangling the two technologies together in my head made it a bit challenging.

Mostly, though, it was the sheer amount of boilerplate that got to me. It was just… so much cruft. By comparison to something like Ember or Angular, which already have a store available out of the box, the amount of pageantry required just to get a basic state management seemed absurd.

It took me some time to get the hang…


Tailwind is a utility-based css framework that inverts a lot of assumptions about how CSS classes should work, and forms a very viable alternative to something like Bootstrap. So let’s take a deeper look.

I’ve been using beta versions of Tailwind on a few projects of various scales for a couple of years. But version 1.0 finally came out recently and I thought it was worth talking about it.

This article isn’t intended to teach you Tailwind. It’s intended to discuss Tailwind in general terms, what it’s for, and why you’d use it instead of another alternative.

So What Is Tailwind?

Tailwind is a utility-based CSS framework, intended to facilitate rapid development of modern web applications. The key is that it’s utility based. …


Parcel has been around for a few years now, quietly serving as an alternative to Webpack. In fact it’s quite a surprise that it has been such a quiet alternative — it’s actually better in a lot of ways.

Webpack is the incumbent in build and task-runner terms. It supplanted Gulp shortly after that tool replaced Grunt in turn. Though that whole period of rapid churn was a dark time, things have definitely stabilised. Webpack has become the default. It’s the core of CLI build systems for React, Vue, and Angular. It’s the assumed build process.

Anything challenging this as an option needs to provide a significant point of difference, and a significant benefit.

Thankfully, Parcel does.

The real key difference is a zero config development experience.

If you’ve ever worked extensively with Webpack you’re aware that “zero config”…


Lots of people ask questions about when they’re ready to apply for jobs, or why they aren’t succeeding at getting one. They often forget one critical factor.

People often ask on communities like Reddit whether they’re qualified for jobs, whether they should be applying to junior positions, or what they need to learn in order to get one. They seem to ignore or forget that it actually doesn’t entirely matter what you know.

There is a mistaken impression that hireability is a boolean. You are either ready for a job and should get one, or you’re not.

The simple fact is there is more than one applicant for every web development job. That typically doesn’t change whether you’re going for senior positions or intern roles, but junior…


It often comes up as a question: how do you build a scalable app? The simple answer is that scalability isn’t a thing. Scalability is a much more complex beast than that.

First of all, and as usual, I need to clarify what I’m saying and what I’m not. I’m not saying there is no such thing as scalability. When I say it’s not a thing I mean that it’s not a thing. It’s a number of different things, some of the least of which are used like they’re the exclusive meaning, while vastly more important factors are often ignored.

Dealing with Large Volumes of Users

In fact, I’d argue that the meaning most commonly given is by far the least interesting and important. …

Matt Burgess

Senior Web Developer based in Bangkok, Thailand. Javascript, Web and Blockchain Developer.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store