Writing a strongly typed flip function in TypeScript I've talked about flip functions before. At the request of a reader, it's time to explore a more robust, strongly typed version. Let's dive in.
Understanding a catamorphism (by writing a simple one) A lot of the time, people haven't heard of catamorphisms, or misunderstand what it is. Let's make it simple, and better yet, let's write one on our own!
Understanding isomorphisms by writing some in TypeScript I have mentioned isomorphisms before, but left it at a high level. Is there only one isomorphism from a type to another? How do we write them? Time to dig in.
Why my functions are usually curried Most functions I write are curried. Some people are put off by its unfamiliarity, while others love it. Are you scared? Let's unmask the spooky ghost and see it for what it is, scooby-doo style.
Abstractions, composition, and modularity A lot of the time, code is about sharing ideas, in addition to solving problems. In code, ideas are most often expressed as abstractions. And solving a problem is usually building up a solution using several small ideas put together. Interested?
On the ordering of function arguments A lot of people think I nitpick when I talk about the order of arguments in a function. Let's try to put an end to that!
How I use a custom domain email address for free - and you can too! Got a custom domain and want an email address to match, all within a tight budget? Discover how I set up my own email at hello@artful.dev without spending a dime.
The only thing I look for in a technical interview In technical interviews, there's one trait I hone in on. It's a litmus test for potential hires. Through careful dialogue and tailored questioning, I unravel this decisive factor. Curious?
The art of debugging: Reviving my mechanical keyboard Problem-solving is a universal skill, applicable in numerous scenarios, even when the context shifts from software to hardware. Today, I want to share a tale from my own experience, where I applied problem-solving strategies, typically used in software debugging, to an entirely different realm - a mechanical keyboard. My trusty
Beyond code: Cross-domain problem-solving in software engineering What truly lies at the heart of software engineering? Is it the lines of code we meticulously craft, or is it something more profound? Having navigated through various programming languages like F#, Clojure, and TypeScript over two decades, I've uncovered that the essence of software engineering lies not