This gesture is more than just a mere wave or thumbs up. The shaka is a symbol of the “Aloha spirit,” which is the coordination of the mind and spirit to think and exude good feelings to others. (by Megan Denny, www.padi.com)
by Justin Gordon with help from the ShakaCode Team, September, 2015
It’s the global web development software consultancy and product company started by Justin Gordon, AKA “railsonmaui” in the Ruby on Rails world. We’re focused on what we believe to be the best technologies for web development. Today, those are Ruby on Rails and React. But it’s not just us, we like to think that it’s the larger WE in the open source community that loves collaborating on beautiful code.
Why Change the Name from “Rails on Maui?”
We’re polyglots and we’re not just based in Maui. When Justin Gordon started out, he was focused on just Ruby on Rails, and “Rails On Maui” was the name he used for his Twitter handle and blog.
The “shaka” is really the embodiment of the philosophy, culture, and team behind ShakaCode as well as our community of open source collaborators. In order to fully explain this, we’ll need to tell you a bit about the meaning of the “shaka symbol” as well as a lot more about us. Let’s first summarize the key points:
We love open source collaboration (the friendliness of the Shaka meaning) and we love to code. These go hand in hand. We love code so much that we want to share it! And we only want team members that love it as much as us. With a team that loves to code, we don’t need to be handcuffed to an office. We need a good computer and a decent Internet connection anywhere in the world. The company was born in Hawaii, and all early company employees love surfing and tropical beach culture. Sunshine and surf perfectly balances intensely passionate coding!
Read more if you’d like the details. Or go surfing! Or skiing, mountain biking, etc.
The ShakaCode Philosophy
Here’s a bit more about us:
We’re passionate about what we do and we all love to write and read code. Because we’re 100% remote, we can only hire team members that love code. Jeff Atwood put this well in his article On Working Remotely. “But the minimum bar to work remotely is “to find someone who loves code as much as you do”. It’s … enough.”
We love open source and helping others. There’s probably no movement that’s changed software in the past 10 years like open source. Open source is not just about creating some well known project, like Linux or Ruby on Rails. It’s about doing what you can in a system of freely sharing ideas and helping others. This might be writing blog articles, participating on Stack Overflow,or working on open source projects. We believe this open source philosophy complements the definition from Wikipedia of the shaka symbol: “Aloha Spirit”, a concept of friendship, understanding, compassion”
We almost all surf, and we all love to get outdoors and do fun, athletic things. In fact, Dylan met Justin from surfing in Maui, and Justin contacted Alex when he saw that his Facebook profile page featured a picture of him in Bali. Samnang does huge mountain bike rides around Cambodia. We want to structure our lives to pursue our passions, which is coding and doing fun sports like surfing. This is akin to how 37signals Works Remotely.
Part of loving code is viewing it as an art. It’s like creative writing. When you first see really beautiful code, what is it that you see that is special? It’s a bit like looking at a random page of an Ernest Hemingway novel and seeing clear, short sentences. Great software is written such that it’s simple and clear. It’s easy to read.
“Beautiful code is similar to beautiful prose: Succinct, it has flow and rhythm, and it’s an expression of clear thinking that doesn’t jump around different layers of abstraction all the time.” from the article David Heinemeier Hansson: Geek of the Week.
DHH’s RailsConf 2014 keynote on “Writing Software” nicely summarizes this philosophy.
Is ShakaCode a Service or Product Company?
We’re both, and we’re open source contributors! Our company role model is 37Signals. They started off as a web development shop. Out of their work, they developed the program “Base Camp” to address their own needs for more organized and effective client interaction. From that work, they extracted Ruby on Rails, undoubtedly one of the most successful application frameworks ever created.
Why is it important for us to have an internal project?
Our ultimate mission is to maximize our creative contributions. This includes:
- Helping our clients achieve their goals through well-written software.
- Building a useful product.
- Contributing to open source, including source code and articles.
Goal #2, building a product, is a critical component for several reasons:
We can experiment with the latest technologies, such as React, projects of rackt, including redux and react-router. Our clients often don’t want experimentation with the latest technologies. An internal project allows us to gain the expertise needed in order to conservatively apply such new technologies for our clients.
We can work on the latest, often beta version of software. It’s almost impossible to contribute meaningfully to open source when you’re working on ancient versions of open source. Almost all the action and collaboration is happening on the leading edge, as it should be.
We have a training ground for introducing team members into the ShakaCode style of development. We can interview prospective team members by pairing with them on open source. We can hire junior level engineers who are not ready to be placed in front of clients, and groom them into senior engineers.
Our internal project epitomizes how want our client code to look. It’s sparkly, shiny, and fresh. It’s how we believe code should be written and how projects should be organized. It’s a living example of what we intend to do for our clients. There’s no better “training” or “documentation” than a living example of a real software project.
We intend to give back TONS to the open source community. And that requires “Extraction” rather than “Design” by itself. Ruby on Rails was an extraction of the 37Signals App, Basecamp, and Twitter Bootstrap was an extract of the UI framework used by Twitter. This article Extraction vs. Design nicely sums this up:
David Heinemeier Hansson (the driving force behind Ruby on Rails) is a huge believer in using extractions as a method to add functionality to your projects, typically in the context of a framework. You need some particular functionality, you write it, and if it’s good enough you extract it from it’s original context and make it generic enough that it can be used by other people. You could also call this “building stuff you need” instead of “building stuff you think you might need”. It’s part of the whole YAGNI philosophy of programming, I guess.
Our Internal Project: Friends and Guests
This application solves the problem of “I’ve got a vacation home that I want to share with my friends, but not with the general public. What’s the best way to do that?” It’s based on our experiences sharing Sugar Ranch Maui with our friends and with long-term tenants. One such long-term tenant was Beau Hartshorne, a YC and Facebook alum, who also expressed a need to share his places with his friends, and not the general public. It turns out that many of our friends on Maui have a similar need, as Hawaiians typically have space for family and friends to visit. Thus, “Friends and Guests” is designed to scratch the itch of our friends. It’s not about “what we can build to make the most money”. It’s about, “what we can build to enrich the lives of our friends”.
We believe that the part of the enjoyment of a vacation home is to share it with your friends. To that ends, we’ll be part of the means with the “Friends and Guests” application.
Anti Discrimination Policy
Part of ShakaCode is that we don’t discriminate on:
- Geography and Time Zone
- All the normal stuff, like gender, race, age, tattoos, piercings, sexual preference, etc.
- Degrees and credentials. Justin has degrees from Harvard, UC Berkeley, as well as a CFA credential. However, based on his experience working with great software engineers, education is only one of many signals. In fact, education is less important than passion and great taste.
- Working remotely (that’s what we do!).
We do discriminate against:
- People that discriminate on the above.
- People that view writing software as a job, and not as an enjoyable creative endeavor. Passion is critical.
Here’s some of our favorite influences:
Definitely listen to this interview of David Heinemeier Hanson on The Changelog for some great thoughts on the influence of David and Ruby on Rails on the ShakaCode philosophy. Plus, see this article: David Heinemeier Hansson: Geek of the Week
As Jeff Atwood said on “On The Meaning of “Coding Horror” (why he blogs):
But that’s not the complete story. I’d be lying if I didn’t admit that there’s an element of selfishness at work here. I love computers and programming. I love it so much it borders on obsession. When I saw the movie Into The Wild, I was transfixed by the final note written into the margins of Dr. Zhivago by a doomed Christopher McCandless: “Happiness only real when shared.”