Hi. My name is Joel Hooks. I'm a software developer by trade, currently residing in Vancouver, WA. I'm a co-founder of egghead.io. Outside of lovingly shepherding software to release, I spend my time with my lovely wife Kristina and our 5 children.

If you'd like to reach me by email: joelhooks@gmail.com. I answer most of it!

I'm also on Twitter.

If you want to ask me a specific question, literally ask me anything on Github!

Below there be dragons...

photo credit: MamaT

This kid isn't me, but in third grade I too was tinkering on my school's TRS-80 drawing awesome geometric shapes via TELL TURTLE. It was glorious. A few years later I was always over at friends' houses, invading their space to get time on their Commadore 64s. Programming silly basic games, playing awesome games, and generally enjoying the concept of home computing.

Fast forward to high school, where I took a different direction and fell in love with drawing and painting. I was also privilaged enough to have access to Apple computers with Photoshop and Illustrator.

This was the tipping point. The confluence of two things I loved. Art and computers.

So off to art school I went. For two years I attended the Art Institute of Dallas working on a degree in computer animation/multimedia. From color & composition and figure drawing to 3ds/Alias and video editing, it was a great experience. This was around the time Toy Story came out in theaters and Doom hit PCs. Everybody in class (including me) wanted to be making cartoons or working on video games.

I was never able to break into either of these markets. Instead I went a more technical direction creating 3d models and animation for use in aircraft training applications. That gig is still to this day my longest running time at a single job, with 5 years. It was good experience. Building software is complicated and fun!

The career took a twist after that when I landed a job at an upscale dallas law firm that specialized in aviation accident litigation. It was funny because at the time my hair was really long, and I certainly didn't fit in at this place. They took a chance with me though, and I got into forensic animation. Sadly, the firm's partner that hired me passed away, and I was let go. They were cool, and found me a gig with a local accident reconstructionist.

This is when the real work started in my forensic animator career. This firm is a no-joke engineering firm. We would survey and photograph accident scenes. Create digitized point scans of wrecked cars and their unwrecked counterparts. This data would be imported into 3ds MAX and Rhino for surfacing. From there it went into a high end accident simulator. I had scripts developed that would take the simulator data and translate it to 3dsMax. Using the simulator data, I would add hi-res models, effects, and additional animation.

Here's an example. It was a lot of fun, but after years of "death on the highway" I was ready for a change. I quit and took a job with a company that was building a maitenance application on the F-18 Super Hornet for the Navy. It was a contract, and I eventually left for a position at a major airline building more aviation training applications.

This job afforded me the opportunity to learn ActionScript 3 for Flash development. AS3 and Flex were both fledglings, and I really fell in love and dedicated myself to becoming a "proper" software developer, and stop doing the graphics thing. So I dug in my heals and started reading, and reading, and reading (I am still at it, actually) until I finally quit this job... to go back to accident reconstruction work!

It was different this time though. I still wrecked cars and trucks, but I also had some minor programming chops. The boss had a horrible experience with a "consultant" that built a mangled piece of garbage that was supposed to be the core foundation for the business, software-wise. I convinced the boss that I could build something nicer (ie would work at all) and that since I knew his business, it could probably evolve into something nice.

He actually let me. Thank you so much Steve.

I set to work with 50% of my time devoted to building this thing. I dove deep into Adobe Air (Apollo at the time) and built out a robust application using Django as a backend. At the core, it was (is, it still runs to this day) a task management system and CMS. It automated mundane tasks that would have required hiring additional people. It provided real-time communication and push notifications between all of the clients running in the office.

Code wise, it was a steaming pile of noob spaghetti. Functionality wise, it works pretty damn well!

After a year, I was completely hooked and wanted to be developing software full-time. I tricked my (now) good friend Daniel into hiring me and spent the next year building software for schools.

During that year, I came across a tiny beautiful AS3 MVC framework called Robotlegs. It really struck me as something nice, and the developer (Shaun Smith) was extremely approachable and generally cool. I fell in love with the framework and started promoting it as far and wide as I could. I leveraged nerd bait (tshirts) and was able to coax people into writing blog posts and contributing to the framework. It got some traction, and is still a very popular framework in the AS3 world, and has ports in several other languages.

It was this experience that lead me to my current adoration/fascination with open source software. There is nothing cooler than a group of skilled people spending their free time to create software that anybody can use, for free, to build nice things. How cool is that?

I also saw real benefits with my participation. It lead me to my current gig building software. It landing me many speaking gigs and a couple of book deals. All of which I am extremely grateful for having the opportunity to participate in.


In November 2011, Adobe effectively cut the throat of Flex/Flash as a platform for building applications on. This was a tough blow to take. I'd spent a ton of time and energy on this platform, and now it wasn't viable?! Fuck me.

I'd been eyeing JavaScript and the rise of HTML5. I kept abreast of the latest happenings in the sphere. From the day that Adobe made the announcement, I've been going full bore into the realm of JS and HTML5. I threw out everything that I knew about developing "web pages" and started from 0, with an eye on best practices and the open web. It didn't take nearly as long as when I started learning AS3. I didn't think it would, but it is nice to verify that switching platforms isn't some sort of impossible feat that would take years.

Full-on Neckbeard.

I've went full-on neckbeard with my technology choices. I have no interest in investing heavily in proprietary closed commercial platforms. I want to contribute and work in the open web. It is such a wonderful space, with so many brilliant people working together to advance the state of the art.


In 2013, I convinced my friend John Lindquist to take his YouTube videos that he had been making them for years and turn it into a business. He was skeptical, to say the least, but over the years since we've grown egghead from a stack of free lessons to well over a thousand individual lessons coming from more than 50 instructors. It's been an amazing ride!

I handle the technical and business aspects of egghead. In the past, I used to say "I suck at marketing", but it turns out I don't. In fact, it can be fun, especially when you are selling a product that you believe in. Our general mission at egghead is to make the web a better place. We don't want to change the world, but we can do our small part to make it a bit better.