Why I hate receiving awards

I’m a highly competitive person and have always been such. But one thing I hate is receiving an award.

When I was a kid I spent a lot of time ‘achieving’ as much as I could. I was in All State Band, I competed in piano competitions (and won scholarships cause of it), I played trombone in a semi-professional big band that toured the world. I received my eagle scout award when I was 13 years old (there were only two of us that year that got it that early). I graduated high school with a community college degree and graduated from UW with two bachelor degrees.

I’ve continued to receive awards over the years. Lately I’ve received numerous commendations and awards from Toastmasters (my title is ACB, ALB if you like alphabet soup).

None of this means much to me.

I’ve been stewing on one major concept which really upsets me about awards. Many times awards have 100% to do with the recipient, or politics. Having a degree in mathematics is something I did personally, earning my eagle scout award is something I did quickly by optimizing my time. They don’t affect many others besides me.

The things that have been truly rewarding to me I have received no reward or award for. I wrote a book that got a whopping 2 stars on Amazon, but it has affected people around the world by teaching them something. Guiding opportunity scholars during conferences is more exciting than receiving yet another sheet of linen paper to hang on my wall.

What do you think? Do you agree? Feel free to comment!


11 Lessons I’ve learned being an adult for 10 years

Last wednesday was my birthday! I turned 28 enjoying myself in Sonoma county celebrating playing bocce ball and drinking amazing wine. While arbitrary 10 years is a long enough time to warrant some sort of retrospection and I thought I’d share with you the top 10 lessons I’ve learned over the last 10 years.

For those of you who like TL;DR’s here’s the outline of this blog post which should be somewhat long for a blog post (10-15 minutes reading):

  1. Just cause you have a degree in a subject doesn’t mean you know how to practice the subject.
  2. Math is a universal language. It also happens to be a rare and valuable skill.
  3. Working hard pays off if you work on the right thing at the right time.
  4. Not everybody who works in a lucrative field makes a lot of money.
  5. There’s no such thing as a secure job.
  6. Everybody has an amazing skill locked away inside. You just have to look for it.
  7. Math doesn’t solve every problem.
  8. Success boils down to having good working relationships.
  9. Freelancing isn’t free.
  10. Strive to work with people smarter than you.
  11. Everything is arbitrary including this list.

Lesson 1: Having a degree in business doesn’t make you a business guru

When I was 18 years old I started school at the University of Washington to study Business. My goal at that time was to get a business degree, from a selective school, graduate and start my $100M Biodiesel company. Obviously things have changed. I still enjoy learning more about business everyday and am still entrepreneurial except I learned a quick lesson. Just cause you have a business degree doesn’t mean you can own a business.

You see when I entered UW and started taking pre-requisites I realized something quickly. What UW, and other schools, teach you has less to do with running a business and more to do with what is easy to teach. Subjects like Finance, Accounting, Marketing (for Fortune 100 companies), were the required classes. These subjects are important sure but as a business owner today I can tell you that I don’t need to know Accounting as in depth as they taught it.

I realized early that the business program wasn’t for me since it wouldn’t actually teach me much on how to run a business. Instead I decided to focus on math and economics which I will get to in the next lesson.

Side note: However there is a good business education I can suggest

While traditional business education didn’t yield great results for teaching me how to run my businesses, there are great resources I have found on the subject.

The Personal MBA (personalmba.com) reading list is invaluable. I have read over half of the books and it has changed how I think about business.

The other resource is selling on ebay and craigslist. If you want to learn how to run a business, try to find something cheap on craigslist and sell it on ebay, and vice versa. You’ll learn marketing, sales, and finance quickly just by doing it.

Lesson 2: Math is universal, as well as a rare and valuable skill.

When I turned 19 I knew that I didn’t want to do business, but of course I had to do something… In finishing up some of my pre-requisites I took integral calculus and found myself knee deep in a subject I loved.

Immediately I found myself applying calculus to everything and spouting off paradoxes to people who thought I was a bit nutty. By the end of my first year I decided I was going to go for an applied math degree to focus on math.

This of course confused my parents. Here they were paying for my education and I was switching from the sure thing of business to a MATH degree. My mother asked me occasionally “What on earth are you going to do with a math degree?.” Thinking retrospectively this makes sense. Math degrees are traditionally used for teaching math.

But I never wanted to be a teacher. Instead I had my mind focused on the idea of becoming a quantitative analyst who ran financial models all day long. Preferably living in a basement where nobody could find me all day.

Little did I know that math would become one of the biggest assets I own in my brain. It has propelled me into working on tough problems not found elsewhere. And it really helped me learn how to think.

Lesson 3: Persistence pays off

By the time I turned 20 I was starting to worry about finding a job. Since I entered college at 18 with an associates degree I was going to graduate the next year and had to start worrying about what I’m going to do with the entirety of my life. So I started working on finding my career and doing informational interviews. I talked with CEO’s at financial institutions around Seattle, as well as lots of job fairs and other networking.

One person gave me a chance to see what I could do. Brian Langstraat of Parametric was gracious enough to have me come down to their swank South Lake Union office and let me pick his brain with what I should be doing with my life. Like me he was a economics student from the UW. Giving with his time he decided to introduce me to Paul Bouchey who then offered me a internship with Parametric.

I was truly elated to be receiving money at an internship and working on what I thought was amazing work. I put in extra hours and reworked my schedule to work down there as much as I could.

Lesson 4: Not everybody in finance drives a Bentley

Parametric offered me a job as an Assistant Research Analyst; I can still remember the business card they gave me and how cool it looked. My starting salary was $45,000 a year and I negotiated up to $48,000.

Taking a step back, when I was 21 years old I became obsessed with becoming rich and making lots of money. I figured people in finance surely made money so it made sense to work at Parametric. Making $48,000 straight out of college isn’t bad! But it was far from Scrooge McDuck levels of money.

This gets me to a lesson that came to me hard at the time but makes total sense now as I’ve aged. Not everybody who works in a lucrative field makes boat loads of money. There are people in financial jobs who bring in $16M in a yearly salary. There’s people who make more than that! In the news these are the people we hear about for the most part. But underneath those enormous salaries there are a lot of people who make much less.

The lesson here is that while people and the media will tell you one thing that is lucrative, sometimes it just isn’t. Finance, drug dealing, even software development sometimes isn’t lucrative.

Lesson 5: Job security is a modern myth

Three days before my birthday in 2009 I was laid off from my first job. I was heart broken and came home to my then girlfriend crying and came apart at the seams. The 6 months after that were a time of reckoning with things I have overlooked as a young adult. Job security is one of them.

You see when I got my job working for a stable finance company with decent pay and a big ladder to climb I figured I’d work there for 10-15 years and then move on. That was what my parents did with their government jobs and what my grandma did with her teaching job.

Though weirdly, my grandfather and generations before him weren’t so secure in what they did. My grandfather owned an auto parts company, and his father owned the parts store before that. When the economy was tough they scaled back and didn’t make as much, but in the end it was up to them to make things work.

Understanding that job security doesn’t exist is a great thing once you come to terms with it!

When I finally came around to the idea that all jobs are fluid, and malleable I started thinking of things differently. I started building a portfolio of work. I became more adept at accepting change when it happened. This one lesson has truly influenced how I approach my work these days. Luckily I have never had to leave a job out of anger and have become objective about how I fit into things.

Lesson 6: We all have “Acres of Diamonds” hidden within us.

While unemployed I listened a lot to motivational tapes to get my spirits up. One of them was Lead the Field by Earl Nightingale and he explained a wonderful African story about ‘Acres of Diamonds’.

Effectively the story goes like this:

A farmer was tilling his crop one day and content with the world went back to his house to refresh himself. While returning a wise priest came by to visit and exclaimed to the farmer, “Why are you wasting all of your time tilling these fields, don’t you know that Africa is full of diamonds waiting for someone to find?!”. The farmer at this point great discontent with his work and decided he must leave his wife, sell the farm, leave his family behind and find diamonds. Until his death, he traveled the world looking for diamonds but found none. Meanwhile the farmer he sold his farm to was tilling the land one day and came across a pretty rock. He decided to put it on his mantle at home as a keepsake. A couple weeks pass and the same wise priest comes by and in astonishment looks at the diamond and explains to the farmer that he’s found the biggest diamond on record. They then rush out to the field to find not one diamond but acres of diamonds.

The lesson is simple we all have something inside of us; our respective “Acres of Diamonds”. When I was 22/23 I realized that all those years playing on Linux, programming little toys, and writing programs actually was a useful skill to have. I immediately found a great job doing something I already loved!

Lesson 7: Math doesn’t solve everything

After two years of working at my first full time programming job I became the Chief Scientist at a small startup in Kansas City. This job involved leading a small team of programmers, and building scientific algorithms around social interactions on things like Facebook, Twitter, LinkedIn, and others. My first two months I approached the problem academically and read lots of papers on how to find influencers in a social graph.

My approach was probably O.K. but what I failed to realize right away was just how math wouldn’t solve this startups problems. I still love math but it doesn’t solve all problems. Sometimes introducing an algorithm pushes you further away from the problem.

What they needed was a simpler program that solved a user need rather than more features like math algorithms.

Lesson 8: Success has to do with building good relationships with people

After leaving that position not knowing what I was going to do with myself, I decided to go to India to give a presentation on some Ruby best practices I had in my mind at that moment. Coming back from India I had work waiting for me at Ritani.com. I ended up freelancing for them for some time. My work there came down to the relationship I had built beforehand.

The president of Ritani, Brian Watkins, and I worked together at Wetpaint. He was the CFO and really is a great guy! I abused the fact that he was well connected in the diamond industry to help me get a ring for my now wife, Sophia, and since I was so please with his help went out of my way to make sure he was well thanked. Knowing him to be a Pearl Jam fan, I bought him a pretty cool looking poster of Mookie Blaylock (It’s really a cool poster and it says Pearl Jam on it riffing on the Basketball theme). While it was well deserved and I don’t expect that the reason I ended up with work was purely cause of that, the relationship that we still share has a lot to do with me being able to find work.

Building relationships with people is everything. Finding work means working with others and if you don’t have enough relationships to rely on then finding work will be tough.

Lesson 9: Freelancing isn’t free

Looking back to being 18 I was always dead set on being a freelancer and “working for myself”. Freelancing is full of surprises, both good and bad. I ended up having good work for a while and then there was the dry time where for a couple months I had nothing. When I had no work I ended up depressed that nobody wanted to hire me, and ended up watching probably too much Netflix as a result.

When I had work, I ended up working too much.

The lesson here is that while freelancing sounds wonderful, there’s a dark side to it as well. You end up becoming beholden to work as it comes in. When there’s none all you do is look for work, and when there’s work all you do is work. Far from freedom.

Lesson 10: Strive to work with people smarter than you

Pat Metheny said to play with musicians better than you and it’s great advice. I’ve always tried to take this advice to heart but didn’t really hit until I joined the Clymb as a full time employee last year. The Clymb offered me the opportunity to work with Mike Perham full time. Shying away from the chance at first I eventually came to the conclusion that this chance would probably never present itself again and so I had to take it.

Definitely chose right. While Mike and I worked together for 7-8 months only, those months were invaluable to the skills I have developed. In a short period of time Mike has challenged me in ways I couldn’t challenge myself in. For that I am truly grateful.

Being a competitive person I have to remind myself of this. I have this terrible affliction where I generally dislike people smarter than me for the first month or two and then they become really great friends later on. I guess I’ll work on that in the next 10 years.

Lesson 11: Everything is arbitrary including this

The last lesson I’ve been dwelling on lately is that everything is arbitrary. Now that I’m 28 I’ve figured out that 28 is just a number in base 10 that is on it’s own meaningless. Lately I’ve been reading a lot of philosophy and have come to the conclusion that there are always multiple sides and to get the entire picture involves asking hard questions that you don’t want to.

This is probably one of the most useful lessons I’ve learned as it relates to software. Like building a house, software is malleable and always changing.  There’s always something else to be changing and more growth to be had.

Shout Out and Conclusion

It would be hard to finish this without pointing out that 10 years of my adult life also includes 10 years of being with my wife, Sophia, for which has impacted my life and lived through all of the lessons above. Here’s to another 10 years living the life!

Why I am learning Lua in 2015

Since I started programming 15 years ago I’ve had many ups and downs with programming language choice. First learning C and then C++, I eventually took a Java course at the University of Washington during my undergrad. At that point I knew I didn’t want to be a programmer because all I knew was C++/Java and some C#.

In 2008 that all changed when I started using Ruby on windows to script up a few text processing tasks I did at work. I loved the language! It was expressive, simple, didn’t involve casting everything to a specific type and just worked for me.

Over the last 7 years I’ve worked primarily in Ruby, with some work in Php, Python, Javascript, and other things mixed in. But since it’s 2015 I feel like it’s time for a change. Mike (Perham) has moved onto Go, and a lot of others have moved onto doing Rust development. The emphasis for me between these languages has been running fast code in a parallel fashion.

While I think Rust is very neat! I feel it’s still immature, and while I do like Go it just doesn’t excite me as much as Ruby did in 2008. That’s why I’m doing something a bit uncommon and switching a lot of my development to Lua. I’ll still be writing Ruby once in a while but I feel the world has changed more towards microservices, faster systems languages, and fundamentally away from languages like Ruby.

I think what Lua brings is quite impressive:

  • Fast runtime through LuaJIT
  • Prototype based language that isn’t full of quirks (javascript…)
  • Dynamic, strong, and duck typed (just like Ruby)
  • Beautiful interface with existing C libraries
  • Small footprint. Lua is amazing cause most of the time it’s embedded inside of a bigger program.

In case you’re wondering what I’ll be using Lua for. I plan on using it utilizing ZeroMQ to process a lot of template work, A/B testing, and monte carlo analysis.

Stay tuned to hear more. Would love to hear your thoughts about Lua.

ZeroMQ is the Redis of Distribution

Lately I’ve been toying around with ZeroMQ a lot more (or ØMQ). A couple of years ago I thought it was definitely interesting since it was optimized for speed, and handled a few patterns. It wasn’t until recently though it clicked for me and it all made sense.

ZeroMQ is the Redis of Distributing Work.

Redis is a great database but more especially for being something that exposes an API around common data structures. For instance, if you want a Set, Hash, List, SortedSet or much much more you just have a simple command to either create, read, update, or delete them. See http://redis.io/commands for more.

ZeroMQ on the other hand is an exceptionally simple message queueing library. It allows you to send data between endpoints with ease. But what truly intrigues me is the ability to easily set up Pub/Sub, Request / Reply, Push / Pull, or Pipelining of data using a simple Socket API.

What a joy! What this means is I can focus on sending the data and not how to send it.

Why did I write a Machine Learning Book in Ruby?

When I tell developers that I wrote a Machine Learning book in Ruby usually I get blank stares. After the initial shock they ask “why not python?” “or R?” “or even LISP??”.

There seems to be a long stigma as to what sort of language you use for what. Python is used in academia for machine learning, statistics, and general proofs of concepts. Ruby is really just a dialect of Rails and similar to javascript gets classified as only valuable in websites.

This blog post will outline the reasons why I decided to write an entire book about Machine Learning in Ruby. Not Python, R, Julia, or Matlab.

[Read more...]