Caesar Cipher Decryption

The ability to manipulate a computer to perform tedious tasks on your behalf is an incredibly valuable, and increasingly necessary skill to have. Lots of software engineering deals with large programs, and high level architectural challenges. This post explores the other side of programming... small, one-of scripts designed to solve a specific problem. I'll walk through how I solved a small cryptographic puzzle posed online, and try to explain the process of problem solving via code at a micro-level.

Read On →

Sorting

Sorting is a fundamental, yet often overlooked aspect of computer science due to its status as an effectively 'solved problem'. The state of the art sorting algorithms at the fingertips of most developers are the result of much research and experimentation. This post serves as a crash course on sorting basics, leading up to an understanding of the modern algorithms.

Read On →

The Elements of (Ruby) Style

Simple, but powerful rules to enhance the quality of ruby code

Read On →

Introduction to Hadoop and Hive

A basic introduction to what hadoop and hive are, and what they are used for in contrast with a more traditional relational storage system.

Read On →

On Technical Debt

Technical debt is not universally bad, in the same way that regular debt is not universally bad. This post is a summary of my thoughts on how to think about and deal with technical debt in an intelligent manner.

Read On →

The Ruby Environment

An introduction to the ruby environment, and the tools necessary to successfully interact with and work in its ecosystem.

Read On →

Wholistic Health Criteria

Mainly for my own use, a short list of things I do to stay healthy.

Read On →

Workout Routine

This is the workout routine I used to get in the best shape of my life. It doesn't include the diet or cardio training portion, which I may create as separate posts.

Read On →

Hello World

I'm starting a blog...

Read On →