Never miss a beat

Join my newsletter.

The Archives

Programmer vs. Developer vs. Software Engineer

Published: 9/9/2017

Systems Programmer. Software Engineer. Applications Developer. Have you ever wondered what the difference between these role actually is? Well, your best bet would be to ask the job poster but if they’re not available, my opinion might just have to suffice. Worth mentioning – my opinions are modeled mostly after my own career and some reflection on the titles. Note: I do understand that there is a crowd of people that believe you can’t be a software engineer without an engineering degree. I…

A Brief Introduction to Tries

Published: 6/30/2017

Hello there! Welcome back! Today I’m talking about Tries (pronounced “trys”). Tries are a type of search tree commonly used for storing and searching single characters that make up one or more strings. What make a trie interesting is that the first node contains an empty value and the descendants of a node have a common prefix associated with that node. Like most data structures, tries are easier to reason about when you have a picture to help explain it. Let’s take the word “propane” break it…

Clojure + Kibit & Eastwood

Published: 6/28/2017

I’ve been writing Clojure for a while now, but my day job is still predominantly JavaScript and Java. There are two tools that I use every single time I write JavaScript and Java code. Respectively, a linter and a static code analyzer. Recently, I set out to search for similar tools in the Clojure domain. Enter Eastwood Named after a fantastic actor, Eastwood is a linter for Clojure code. Also like the many roles the actor plays, Eastwood is pretty aggressive in the checks that it runs against…

5 Programming Languages You Should Really Try

Published: 6/28/2017

For some strange reason, the vast majority of my blog readers are Python Developers. I wrote two articles on Python a long time ago and honestly try to avoid python when I can. So here’s an article for you purveyors of Python — you sultans of snakes. Note: This article is still likely relevant even if you’re not a Pythonista . For those who aren’t aware, Linguistics and Grammars are particularly interesting to me. I really, really enjoy looking into new languages and comparing them to what I…

KNN: My Nearest Neighbors

Published: 6/3/2017

Thanks for tuning in for another fantastic awesome hardcore slippery blog post! In this post, we’re going to cover KNN and it’s implementation in Clojure! What is KNN? KNN (K-Nearest Neighbors) is simply an algorithm, but you probably knew that at this point. For many, KNN is a terrifying first step into a domain that they’re often not too familiar with — machine learning. That being said, KNN gets looped into several much more complex things by categorizing it like so. Specifically…

An Informal & Practical Guide to Clojure.Spec

Published: 5/14/2017

Hello again! No witty intro this time, I’ve just been working with Clojure 1.9-alpha recently, and have decided to write about Clojure spec and some of the features it offers. Let’s get to it! Note: There’s a lot to Clojure Spec. I’m going to cover what I consider to be the practical aspects, or the aspects that I commonly use. My goal is to make this light and comprehensible. What is Spec? Clojure’s spec is a core part of the Clojure library as of Clojure 1.9. It allows you to declaratively…