This blog's purpose is two fold :
  1. To help other developers when they are googling for a solution.
  2. To force myself to write better notes.

With this in mind, this blog has a broad focus of Computer Science.  You may see posts here about Alfresco, Postgres, or obscure linux command line one liners.   It's probably not going to be a page you bookmark, but is one you will end up looking at as a result of a google search for some obscure problem.

I feel I have been  doing people a disservice, many of my posts are the result of trying to solve a bigger longer problem; an epic.  I am adding a "My Epic" pull down menu at the top that will tie together multiple blog posts under a single epic.  I hope this will help tie in multiple blog post together and make a more interesting read.   

My Story (as it pertains to CS)

When I was a young lad, I was in Boy Scouts, troop 382 to be precise.   While there, I earned a bicycling merit badge.  Earning that badge started my lifelong love of bicycling.  A few years later I got a job as a bicycle mechanic at Bill's Bike Shop in Idaho Falls, ID, where I worked for four years.  This job increased my love for all things bicycling.  I aspired to work someday in the bicycle industry, in an engineering role.  Because of this, I decided to study Mechanical Engineering and Metallurgy at the University of Idaho.  After my first year, I abandoned the idea of double majoring in ME and Metallurgy and focused on ME.   

Fast forward a few years, just as the WWW was starting to take off, I decided to create a website which focused on Bicycle Repair (that later became bicyclerepairshop.com .. this site was later closed down and the url is no longer owned by me).   This propelled me more into the world of coding and I decided to get a minor in Computer Science, as well as, my BSME.   Within this period, I was contacted by Steve Smilanick of S and S Machine to add a link to his company on my links page.  I looked over his website and thought his coupling product was a real innovative idea for folding travel bikes.  During this time, I was making 3D animations, so I decided to make a small animation of his product.  He liked the initial animation and asked me to make one that looked more professional.  He sent me a S&S coupling and a set of calipers, for accurate measurements, in order to make a more detailed animation (I still have those calipers on my shelf).  I created the animation and it is still on his website after all these years (http://www.sandsmachine.com/smovie.gif).  He then asked me to work/intern at his machine shop for the summer in Roseville, California, which I gladly accepted.

That summer was a fun one.  I learned about the CNC machining business, got in great shape biking almost everyday with Steve, and I was introduced to some realities in the bicycle manufacturing industry.  This industry is not all that substantial, especially not big enough to support a plethora of Engineers.  I figured it would be difficult to get into this industry and after having won the fight, the pay might not be substantial enough to raise a family.  I decided my heart and soul was definitely in engineering, but maybe not solely dedicated to bicycle manufacturing.

After finishing my BSME at college, I figured I would settle down and get some engineering job that utilized my Mechanical Engineering skills and, on occasion, my minor CS skills.  What really happened was very different.  I worked for Black & Veatch, a large engineering company in the Kansas City area, and while there I did some programming (a simple web interface to a simple database to maintain a sign off sheet for a reading list).   I enjoyed this work and kept getting pulled into it, in spite of not being anywhere in my job description.   Work dried up on the project and I was laid off, along with most of the members of my project.

So I moved from Kansas to Denver, CO.  Geographically, Colorado was a better fit.  Growing up in Idaho, I have a love for nature and gazing at mountains out of my window.   I was fortunate enough to obtain a great job with Raytheon within a few months of moving to Denver.  Raytheon was my first "real" job that was solely coding.  While there, I wrote code for ground systems that run satellites.  Sounds pretty cool huh?  And it really was.  I worked there five years.  The last project I worked on was the NPOESS project.  I was even lucky enough to help, in a very small way, some engineers preparing proposals for the James Web Satellite (think Hubble 2.0).

Raytheon had a round of layoffs after not winning a big contract.  I was one of the unlucky (in hindsight lucky) ones who was a part of this layoff.  Looking back, I am grateful that they did 'kick me out of the nest'.  It forced me to become a better programmer.  Now, I can admit that I had become too comfortable in my little niche, at Raytheon, and had not expanded my skills much beyond what was required for the job.

At the same time that I left Raytheon, I started my Masters Degree in Computer Science at CU Denver.  There are some great professors there and I highly recommend them to any "working stiffs" trying to further their education in CS (if you are in the Denver Metro area go check em' out).

From Raytheon, I went to Solidware, a small startup company working in static analysis of Java code.  There, I learned that I did not know much, and that I had a long way to go to be competitive in the marketplace.  While at Solidware, I had a lot of great 'on the job' tutoring from Nathan Ryan in the computer sciences, filling in some gaps I had in my education... having only a minor in CS.  Nathan Ryan is a very intelligent and capable software engineer with a PhD in Computer Science and a great mentor.  He is a true force multiplier to a team, which I hope to be myself someday, minus the PhD.  Unfortunately for me, my time at Solidware was short, only about 6 months.

After Solidware, I have had several jobs, some short term and some a few years in length.  Here is the list:

  • Green.com a failed startup'ish' company where I met my good friend Kevin Swearingen.

Flatirons Solutions
  • Working in the world of custom Document Management.  I was introduced, in a big way, to VMWare and the world of virtual machines.

Custom Loyalty Concepts 
  • My first CTO position.  Here I was able to lead a team and be a force multiplier.  I was also able to substitute many of their legacy systems with AWS cloud systems.  This position allowed me to work in the "cloud" and Alfresco in a big way. 

  • Wellkeeper monitors oil wells, in order to prevent oil spills in remote locations.  This position got me more interested in DevOps and embedded systems.

  • A national construction firm for whom I provided some excellent lockout tagout tracking software all written in .Net.  This work was done under my company name 10x13.  

Time Warner Cable
  • My current position, as a contractor.  This job is tremendously rewarding.  It thus far has introduced me to Splunk, Graphite, Sensu, Puppet, and grails; just to name a few technologies I am touching there.  

Also, in 2010 I finished my Master of Science in Computer Science.

For anyone preparing for your defense of your master's degree in computer science, try and incorporate Legos. I used Legos, as a tool, to help explain my thesis to my wife.  My wife encouraged me to use this same model to show my professor's during my defense.  It was a big hit.  Even a room of highly intelligent and serious PhDs love Legos, and a good visual is always better than a speech.

If graph theory gets you really excited, my thesis was on transitive closures as applied to transit systems (think metro bus routes).

If you have read all the way down to here, I hope you can see how taking a merit badge as a young man can lead to a long chain of events where you end up with a Master's degree writing code at exciting companies with some very smart people.  Encourage your children in the way they should go.

-Patrick Bailey