The Two Classes of Software Engineer

coffee beans scaled

“Software engineer” has become a ubiquitous term for people who write, deploy, architect, or sometimes even simply test code. In reality, I think there are two classes of “software engineers”; those who understand computer science well enough to do challenging, innovative work, and those who just get by because they’re familiar with a few high-level … Read more

Top 8 Benefits of Functional Programming

calculus on a chalkboard

Functional programming is a way to writing code where programs are created strictly through functions. Functional programming has gained quite a bit of traction in recent years among the development community, mostly because of the benefits it provides. Functional programming is a declarative way to write provably correct code. Function definitions are expressions that simply map inputs to outputs, rather than a … Read more

Top 8 Tricks to Learn Coding Fast

fast motorcycle

The journey to becoming a gainfully-employed software engineer can feel long. The good news is, you can learn smarter not harder. Apply these eight tricks and you’ll be learning to program a lot faster than the average bear. There are no shortcuts. Learn the basics first Don’t watch YouTube videos Learn by doing. Hands-on courses … Read more

What Do Computer Scientists Do?

coding with coffee min

At work, computer scientists build and deploy programs, algorithms, and systems to solve real-world problems. In most tech jobs, they spend the majority of their time working in teams on new software products. Some computer scientists are more research-oriented however, and may spend time developing new algorithms or pushing the boundaries of what academia knows … Read more

Is There a Case for Programmers to Unionize?

worker union

I’ve seen a lot of buzz recently about software developers wanting to form unions. I’m particularly interested in this topic as the founder of Qvault, where my goal is to provide a university-quality CS education at dinner-and-a-movie prices. I also want to point out that at the time of writing I’m a full-time software developer … Read more

The Pros and Cons of DRY Code

desert landscape

Clean code is like clean garbage – it’s only clean if it doesn’t exist. In other words, the only clean code is no code. Let’s start with an acknowledgment that a perfectly clean (empty) codebase is useless. With that in mind, our pursuit of clean code will necessarily consist of tradeoffs. We’ll trade usefulness for … Read more

Building an NLP Engine Is Hard, but Not as Hard as Defining Terms

Wheel of Emotions Plutchik

In my full-time role at Nuvi, I’ve been lucky enough to work on a team where we’re able to push the boundaries in the natural language processing field. We built out several different “facets” that we score text on, including sentiment, emotion, vulgarity, tense, and currently, we’re working on promotion detection. While the technical side … Read more

Writing a Binary Search Tree in Python – With Examples

lone tree unsplash

A binary search tree, or BST for short, is a tree whose nodes each store a key greater than all their left child nodes and less than all of their right child nodes. Binary trees are useful for storing data in an organized way, which allows for it to be fetched, inserted, updated, and deleted … Read more

Building a Linked List in Python with Examples

writing a todo list

A linked list is a linear data structure where elements are not stored next to each other in memory. The elements in a linked list are linked using pointers or references. Linked lists are an ordered collection of objects, similar to a normal list. Linked lists stand apart from lists in how they store elements in memory. While regular lists (arrays or slices) use a contiguous memory block to store references to their data, linked lists store references (pointers) as part of … Read more