For a technical interview over video chat for an API Developer position, I was asked to write a function while sharing my screen that would compare two strings and determine whether or not they formed an anagram. This article outlines my approach to solving the problem.

Read More

An exponential big-O is represented by: O(c^n)

The n in an exponential problem means that the time of each consecutive computation of n will increase by c^n.

Recursively computing the Fibonacci sequence is a simple example of exponential big-O problems. Let’s take a look:

package main

import "fmt"

func main() {
    fmt.Println(fib(40))
}

func fib(n int) int {
    if n <= 1 {
        return n
    } else {
        return fib(n-1) + fib(n-2)
    }
}
Read More

In the Go programming language, I often see errors being handled in a careless manner that is difficult to maintain. This common mistake has prompted me to make a video that demonstrates the basic fundamentals of error handling in Go:


The Effective Go guide points out the appropriate way to do error handling in Go and is a great place to turn for further reading.

With its popularity on a wild rise for several years in a row, Go is a language worth spending some time with in your spare time.

Six months ago, I wrote my first Go program for a project at work and I have been in love ever since. While I would never advocate using the language in a place where it doesn’t make sense, I don’t see a reason why it wouldn’t be used in every place that it does.

Read More

Zach Holman’s recent post got me thinking about my own situation and how I have still managed to maintain forward progress over the years no matter what the circumstances have been.

Defining a target is great. Knowing how to hit the target is even better. That’s the takeaway that I get from Zach. Here’s a bit about how I got a jump start on aiming for my target.

Read More