Functional Programming for Beginners (part 1)

This post is aimed toward beginning to intermediate JavaScript developers with a few years of experience under their belt.

Functional programming (fp) is getting a lot of attention in the JavaScript community, due to the visibility of libraries such as ReactJs, Redux and Rxjs.

But what is fp, how does it differ from typical object oriented programs, and how can it make our programs better? Although fp can be a complex topic, we’ll distill fp to three main points:

Continue reading “Functional Programming for Beginners (part 1)”

Automate git Branch Housekeeping

While my house is not so tidy, I like to keep my local and remote git branches pruned after development milestones. For years I’ve used a very simple bash function to delete a branch locally and remotely.

I finally had a few moments to develop this a little more and created a gist called which you can find here.

Continue reading “Automate git Branch Housekeeping”

A New Era

I am leaving NCBI after 12+ years to work at MountainPass Technology. I will be focusing more on front-end development and mobile application development.

When I started, my eldest son was six months at the time—now he’s smarter than I (or so he thinks). I was hired before I could even program. Sure, I knew some HTML and CSS, but practically no JavaScript and really no backend programming language, apart from a bit of PHP. My manager hired me because he liked the way I think and figured he could train me to program. He was right.

Continue reading “A New Era”

Static Typing as Documentation

I’ve started to learn Angular5. What’s interesting to me at the moment is its use of TypeScript, a superset of JavaScript that adds ES6 features, and optional static typing.

For years, especially in the web-programming world, dynamic typing was the rage (Perl, JavaScript, PHP, Python). Now types are back. Python has add-ons and JavaScript has TypeScript. Continue reading “Static Typing as Documentation”


I’m pretty into mocking…though I went overboard years ago when I really first started implementing it in my tests. Now-a-days I keep it under control, really only mocking external services. If I must mock part of my own API (e.g. for performance reasons) I make sure I minimize the mocks per test.

In Python I’ve extensively used the mock and request-mock packages.  They’re great, but I find their APIs a bit clunky. Lately I’m doing more Node.js and needed to mock an HTTP request and response. Continue reading “Nocking”

Principles First

The aim of this post is to show that recent trends in Agile trainings, emphasizing improvisation over principles, can do a great disservice to teams and projects.

Using Agile buzzwords doesn’t mean a successful product, results do. When organizations attempting Agile don’t strike a balance between flexibility and discipline, the Agile process is often blamed, not its crappy implementation. For an Agile process to succeed it takes knowledge and discipline to stick to its guiding principles. It’s not “Agile” to fly by the seat of your pants. It’s just irresponsible. Likewise, it’s not “Agile” to be dogmatic. After all, our goal is to produce the right product at the right time, not “be Agile”. Continue reading “Principles First”

Why I’m riding fixed

Not all trendy things are worthy of scorn. Some things are hot because they’re simply good. Think microbrews, Arabica coffee and Amazon Prime.

Reading about fixies in cycling forums and contemptuous blog posts you may be tempted to disregard the phenomenon as a poser, hipster thing. You might even avoid owning one because people might think you’re trying too hard. After riding one for a few weeks, I say hogwash. Continue reading “Why I’m riding fixed”

The spoked wheel

The old saying “Familiarity breeds contempt” is often true. Once you really know the object of your desire it often loses its spell over you. I can’t say this is the case with the spoked wheel. The more I understand it, the more it amazes me with the way it ingeniously solves the difficult problem of balancing light weight, resiliency and strength.

My infatuation with the spoked wheel began early even though I only recently understood how it works. I’m an avid trick unicyclist, unicycle commuter, and mountain unicyclist. But I’m not completely abnormal. I also ride a bike, regularly commuting seven miles to and from work on my customized Surley Crosscheck and Wabi Classic fixed gear. Continue reading “The spoked wheel”