Building a Personal Cloud Computer

Wednesday I presented a talk at the Austin Personal Cloud meetup about Building a Personal Cloud computer.  Murphy was in full effect, so both of the cameras we had to record the session died, and I forgot to start my audio recorder.  I’ve decided to write out the notes that I should have had, so here’s the presentation if it had been read.

Personal Cloud Meetup Talk.001

In this presentation we’re talking about building a personal cloud computer.  This is one approach to the personal cloud, there are certainly others, but this is the one that has been ringing true to me lately.

Personal Cloud Meetup Talk.002

A lot of what people have been talking about when they speak about the personal cloud is really personal pervasive storage.  These are things like Dropbox or Evernote.  It’s the concept of having your files everywhere, and being able to give permission to things that want to access them.  Think Google Drive, as well.

These concepts are certainly valid, but I’m more interested in software, and I think computing really comes down to running programs.  For me, the personal cloud has storage, but it’s power is in the fact that it executes programs for me, just like my personal computer at home.

That computer in the slide is a Commodore +4, the first computer I ever laid fingers on.

Personal Cloud Meetup Talk.003

Back then, idea of running programs for yourself still appealed to the dreamers.  They made movies like TRON, and we anthropomorphized the software we were writing.  These were our programs doing work for us, and if we were just smart enough and spent enough time at it, we could change our lives and change the world.

Personal Cloud Meetup Talk.004

This idea isn’t new, in fact AI pioneers were talking about it back in the 50s.  John McCarthy was thinking about it back then, as Alan Kay relates when he talks about his 3rd age of computing:

They had in view a system that, when given a goal, could carry out the details of the appropriate computer operations and could ask for and receive advice, offered in human terms, when it was stuck. An agent would be a ‘soft robot’ living and doing its business within the computer world.

That’s been the dream for a long time…

Personal Cloud Meetup Talk.005

But that never really happened.  The personal computer revolution revolutionized business, and it changed how we communicated with each other, but before the Internet things didn’t interconnect to the point where software could be a useful helper, and then we all went crazy making money with .com 1.0 and Web 2.0, and it was all about being easy and carving out a market niche.  Then something else hit…

Personal Cloud Meetup Talk.006

Mobile exploded.  If you’ll notice, mobile applications never really had an early adopter phase.  There was no early computing era for mobile.  You could say that PDAs were it, but without connectivity that isn’t the same as the world we have now.  Most developers couldn’t get their app onto a mobile device until the iOS app store hit, but that platform was already locked down.  There was no experimentation phase with no boundaries.  We still haven’t had the ability to have an always-connected device in our pocket that can run whatever we want.  The Ubuntu phones may be that, but we’re 6 iterations into the post-iPhone era.

Personal Cloud Meetup Talk.007And who doesn’t love mobile?  Who doesn’t love their phone?  They’re great, they’re easy to use, they solve our problems.  What’s wrong with them?  Why do we need something else?  Well, let’s compare them to what we’ve got…

Personal Cloud Meetup Talk.008With the PC we had a unique device in so far as we owned the hardware, we owned our data, and EULA issues aside, we owned the software.  You could pack up your PC, take it with you to the top of a mountain in Nepal, and write your great novel or game or program, with no worries about someone deactivating it or the machine being EOLed.  Unfortunately the PC is stuck at your house, unscalable, badly networked, loaded with an OS that was designed for compatibility with programs written 25 years ago.  It isn’t an Internet era machine.

With the web we got Software as a Service (SaaS), and with this I’m thinking about the Picasa’s and Flickr’s and Bloggers of the world.  No software to maintain, no hardware to maintain, access to some of your data (but not all of it, such as not having access to traffic metrics with Flickr unless you paid, and only export rights if you were paid up).  But in this new world you can’t guarantee your continuity of experience.  Flickr releases a redesign and the experience you’ve depended on goes away.  The way you’ve organized and curated your content no longer makes sense.  Or maybe as in the case of sites like Gowalla, the whole thing just disappears one day.

Mobile has it’s own issues.  You often don’t own the hardware, you’re leasing it or it’s locked up and difficult to control.  You can’t take your phone to another provider, you can’t install whatever software you want on it.  Sometimes it’s difficult to get data out.  How do you store the savegame files from your favorite iPhone game without a whole-device snapshot?  How do you get files out of a note taking app if it doesn’t have Dropbox integration?  In the end, you don’t even really own a lot of that software.  Many apps only work with specific back-end services, and once your phone gets older, support starts to disappear.  Upgrade or throw it in the junk pile.

Cloud offers us new options.  We don’t have to own the hardware, we can just access it through standards compliant means.  That’s what OpenStack is all about.  OpenStack’s a platform, but OpenStack is also an API promise.  If you can do it with X provider, you can also do it with Y provider.  No vendor lock-in is even one of the bullet points on our homepage at HP Cloud.

Implicit in cloud is that you own your own data.  You may pay to have it mutated, but you own the input and the output.  A lot of the software we use in cloud systems is either free, or stuff that you own (usually by building it or tweaking it yourself).  It’s a lot more like the old PC model than Mobile or SaaS.

Personal Cloud Meetup Talk.009

All of these systems solve specific types of problems, and for the Personal Cloud to really take off, I think it needs to solve a problem better than the alternatives.  It has to be the logical choice for some problem set.  (At the meetup we spent a lot of time discussing exactly what that problem could be, and if the millennials would even have the same problems those of us over 30 do.  I’m not sure anyone has a definitive answer for that yet.)

Personal Cloud Meetup Talk.010 Personal Cloud Meetup Talk.011

This is what I think the Personal Cloud is waiting for.  This explosion of data from all our connected devices, from the metrics of everything we do, read, and say, and what everyone around us says and does.  I think the Personal Cloud has a unique place, being Internet-native, as the ideal place to solve those problems.  We’re generating more data from our activities than ever before, and the new wave of Quantified Self and Internet of Things devices is just going to amplify that.  How many data points a day does my FitBit generate?  Stephen Wolfram’s been collecting personal analytics for decades, but how many of us have the skill to create our own suite of tools to analyze it, like he does?

Personal Cloud Meetup Talk.012

The other play the Personal Cloud can make is as a defense against the productization of you.  Bruce Sterling was talking about The Stacks years ago, but maybe there’s an actual defensive strategy against just being a metric in some billion dollar corporations database.  I worked on retail systems for a while, it wouldn’t surprise me at all if based on the order of items scanned out of your cart at Target (plus some anonymized data mining from store cameras) they could re-construct your likely path through the store.  Track you over time based on your hashed credit card information, and they know a whole lot about you.  You don’t know a whole lot about them, though.  Maybe the Personal Cloud’s place is to alert you to when you’re being played.

Personal Cloud Meetup Talk.013In the end I think the Personal Cloud is about you.  It’s about privacy, it’s about personal empowerment.  It’s uniquely just about you and your needs, just like the Personal Computer was personal, but can’t keep up, so the Personal Cloud Computer will take that mantel.

Personal Cloud Meetup Talk.014 Personal Cloud Meetup Talk.015

The new dream, I think, is that the Personal Cloud Computer runs those programs for you, and acts like your own TRON.  It’s your guardian, your watchdog, your companion in a world gone data mad.  Just like airbags in your car protect you against the volume of other automobiles and your own lack of perfect focus, so your Personal Cloud protects you against malicious or inconsiderate manipulation and your own data privacy unawareness.

Personal Cloud Meetup Talk.016

To do this I think the Personal Cloud Computer has to live a central role in your digital life.  I think it needs to be a place that other things connect to, a central switching station for everything else.

Personal Cloud Meetup Talk.017

And I think this is the promise it can fulfill.  The PC was a computer that was personal.  We could write diary entries, work on our novel for years, collect our photos.  In the early days of the Internet, we could even be anonymous.  We could play and pretend, we could take on different personas and try them out, like the freedom you have when you move to a new place or a new school or job.  We had the freedom to disappear, to be forgotten.  This is a freedom that kids today may not have.  Everything can connect for these kids (note the links to my LinkedIn profile, Flickr Photos, Twitter account, etc in the sidebar), though they don’t.  They seem to be working around this, routing around the failure, but Google and others are working against that.  Facebook buys Instagram because that’s where the kids are.  Eventually everything connects and is discoverable, though it may be years after the fact.

Personal Cloud Meetup Talk.018

So how do I think this looks, when the code hits the circuits?  I think the Personal Cloud Computer (or ‘a’ personal cloud computer) will look like this:

  • A Migratory – Think OpenStack APIs, and an orchestration tool optimized for provider price/security/privacy/whuffie.
  • Standards Compliant – Your PCC can talk to mine, and Facebook knows how to talk to both.
  • Remotely Accessible – Responsive HTML5 on your Phone, Tablet and Desktop. Voice and Cards for Glass.
  • API Nexus – Everything connects through it, so it can track what’s going on.
  • with Authentication – You authenticate with it, Twitter authenticates with it, you don’t have a password at Twitter.
  • Application Hosting – It all comes down to running Apps, just like the PC.  No provider can build everything, apps have to be easy to port and easy to build.
  • Permission Delegation – These two apps want to talk to each other, so let them.  They want to share files, so expose a cloud storage container/bucket for them to use.
  • Managed Updates – It has to be up to date all the time, look to Mobile for this.
  • Notifications – It has to be able to get ahold of you, since things are happening all the time online.
  • and Dynamic Scaling Capabilities – Think spinning up a hadoop cluster to process your lifelog camera data for face and word detection every night, then spinning it down when it’s done.

Personal Cloud Meetup Talk.022So how do we actually make this happen?  What bits and bobs already exist that look like they’d be good foundational pieces, or good applications to sit on top?

Personal Cloud Meetup Talk.023No presentation these days would be complete without a mention of docker, and this one is no different.  If you haven’t heard of docker, it’s the hot new orchestration platform that makes bundling up apps and deploying lightweight linux container images super-easy.  It’s almost a PaaS in a box, and has blown up like few projects before it in the last 6 months.  Docker lets you bundle up an application and run it on a laptop, a home server, in a cloud, or on a managed Platform as a Service.  One image, multiple environments, multiple capacities.  Looking at that Ubuntu Edge, that looks like a perfect way to sandbox applications iOS style, but still give them what they need to be functional.

Personal Cloud Meetup Talk.024

Hubot is a chat bot, a descendant of the IRC bots that flourished in the 90’s.  Hubot was built by Github, and was originally designed to make orchestration and system management easier.  Since they connect and collaborate in text based chat rooms, Hubot sits in their waiting for someone to give it a command.  Once it hears a command, it goes off and does it, whether it be to restart a server, post an image or say a joke.  You can imagine that you could have a Personal Cloud Computer bot that you’d say ‘I’m on my way home, and it’s pot roast night’ to, and it would switch on the Air Conditioner, turn on the TV and queue up your favorite show, and fire up the crock pot.

Personal Cloud Meetup Talk.025

The great thing about Hubot, and the thing about these Personal Cloud Bots, is that like WordPress Plugins, they’re developed largely by the community.  Github being who they are, Hubot embraces the open development model, and users have developed hundreds of scripts that add functionality to Hubot.  I expect we’ll see the same thing with the Personal Cloud Computer.

Personal Cloud Meetup Talk.027

I’ve talked about Weavrs pretty extensively here on the blog before, so I won’t go into serious depth, but I think that the Personal Cloud Computer is the perfect place for something like Weavrs to live.  Weavrs are social bots that have big-data derived personalities, you can create as many of them as you like, and watch them do their thing.  That’s a nice playground to play with personalities, to experiment and see what bubbles to the top from the chaos of the internet.

Personal Cloud Meetup Talk.031

If you listen to game developers talk, you’ll start to hear about that initial dream that got them into game development, the dream of a system that tells stories, or tells stories collaboratively with you.  The Kickstarted game Sir, You Are Being Hunted has been playing with this, specifically with their procedurally generated British Countryside Generator.  I think there’s a lot of room for that closely personal kind of entertainment experience, and the Personal Cloud Computer could be a great place to do it.

Personal Cloud Meetup Talk.032

Aaron Cope is someone you should be following if you aren’t.  He used to be at Flickr, and is now at the Cooper-Hewett Design Museum in New York.  His Time Pixels talk is fantastic.  Two of the things that Aaron has worked on of interest are Parallel Flickr, (a networkable backup engine for Flickr, that lets you backup your photos and your contacts photos, but is API compatible with Flickr) and privatesquare (a foursquare checkin proxy that lets you keep your checkins private if you want, or make them public).  That feels like a really great Personal Cloud app to me, because it plays to that API Nexus feature.

Personal Cloud Meetup Talk.033

The Numenta guys are doing some really interesting stuff, and have open sourced their brain simulation system that does pattern learning and prediction.  They want people to use it and build apps on top of it, and we’re a long way away from real use, but that could lead to some cool personal data insights that you run yourself.  HP spent a bunch of money on Autonomy because extracting insights from the stream of data has a lot of value.  Numenta could be a similar piece for the Personal Cloud.

Personal Cloud Meetup Talk.036

That’s the Adafruit Pi Printer, Berg has their Little Printer, and they’re building a cloud platform for these kind of things.  These devices bring the internet to the real world in interesting ways, and there’s a lot of room for personal innovation.  People want massively personalized products, and the Personal Cloud Computer can be a good data conduit for that.

Personal Cloud Meetup Talk.037

Beyond printers, we have internet connected thermostats, doorknobs, and some of those service companies will inevitably go away before people stop using their products.  What happens to your wifi thermostat or wifi lightbulbs when the company behind it goes way?  Personal Cloud lets you support that going forward, it lets you maintain your own service continuity.

Personal Cloud Meetup Talk.038 Personal Cloud Meetup Talk.039

Having an always-on personal app platform lets us utilize interesting APIs provided by other companies to process our data in ways we can’t with open source or our own apps.  Mashape has a marketplace that lets you pick and switch between api providers, and lets you extend your Personal Cloud in interesting ways, like getting a sentiment analysis for your Twitter followers.

Personal Cloud Meetup Talk.041

In addition to stuff we can touch over the network, there’s a growing market of providers that let you trigger meatspace actions through an API.  Taskrabbit has an API, oDesk does, Shapeways does, and we haven’t even begun to scratch the possibilities that opens up.

Personal Cloud Meetup Talk.042

One thing to watch is how the Enterprise market is adapting to utility computing and the cloud.  The problems they have (marketplaces, managed permissions, security for apps that run premises, big data) are problems that all of us will have in a few years.  We can make the technology work with enterprise and startups, but for end users, we have to make it simple.  We have to iPhone it.

Personal Cloud Meetup Talk.045

So where do we start?  I think we have to start with a just good enough, minimum viable product that solves a real problem people have.  Early adopters adopt a technology that empowers them or excites them in some way, and whatever Personal Cloud platforms appear, they have to scratch an itch.  This is super-critical.  I think the VRM stuff from Doc Searls is really interesting, but it doesn’t scratch an itch that I have today in a way I can comprehend.  If you’ve been talking about something for years, what will likely happen is not that it’ll eventually grow up, it’s that something radical will come out of left field that uses some of those ideas, but doesn’t honor all of them.  That’s my opinion, at least.  I think the Personal Cloud community that’s been going for years with the Internet Identity Workshop probably won’t be where the big new thing comes from, but a lot of their ideas will be in it.  That’s just my gut feeling.

Personal Cloud Meetup Talk.046The last caveat is that Apple and Microsoft and Google are perfectly positioned to make this happen with vendor lockin easily.  They all already do cloud.  They all have app stores.  They have accounts for you, and they want to keep you in their system.  Imagine an Apple App Store that goes beyond your iPhone, iPad and even Apple TV, but lets you run apps in iCloud?  That’s an easy jump for them, and a huge upending of the Personal Cloud world.  Google can do the exact same thing, and they’re even more likely to.

Personal Cloud Meetup Talk.047 So thanks for your time, and for listening (reading).  If you have comments, please share them.  It’s an exciting time.

OSCON 2013: The Source Must Flow

OSCON 2013It’s summer in Texas, which means one thing: It’s time to get away.  Last week I got away to OSCON, O’Reilly’s annual Open Source conference, in lovely, Portland, Oregon.  Herein is the account of that trip.

OSCON is a two and a half day conference preceded by two days of related tutorial sessions.  HP was a Diamond sponsor this year, so I finagled a free badge, and decided to go to the whole thing.  We didn’t have extra travel budget in my team, though, so I paid hotel and airfare out of my own pocket.  More on whether that was a worthwhile expense or not at the end of this post.

OSCON takes place at the lovely Oregon Convention Center across the river from downtown Portland, Oregon.  I lived in Portland for a year when I was in elementary school, and took a turn on the stage as Mr. Tumnus in Hinson Memorial Baptist Church’s production of The Lion, the Witch, and the Wardrobe.  I remember it being a lot larger than it apparently was.  That was a long time ago, and Portland’s a very different city now.

OSCON Networking RibbonsOSCON is a pan-technology conference.  As long as the project is Open Source, it’s welcome at OSCON.  Therefore you get a lot of variety, which is evidenced by the gigantic array of networking ribbons.  I didn’t stick one on, but I saw a few people with displays that would have made a Texas High School homecoming corsage maker jealous.

When I was picking tutorials I tried to focus on things I hadn’t gotten into before, but things I’d heard of, and wanted to know more about.  I ended up going for the R Predictive Analytics Workshop, Introduction to Go, Building a Distributed Sensor Network (with Arduino and XBee), and Erlang 101.  Some weren’t so great, some had unfortunate supply issues with parts.

Arduino AssemblyThe Distributed Sensor Network tutorial seemed really promising, but unfortunately we were missing the micro USB cables we needed to power our Arduinos.  Oh, and the Adafruit XBee Adapters we got were supposed to be pre-soldered, but weren’t.  Not an easy problem to solve when you have no soldering irons and only two and a half hours to do the whole tutorial.

The intent was to have an Arduino based sensor mote with temperature, humidity, IR-based movement and volume (sound pressure) sensors, which transmitted its data to a remote computer via the wireless XBee system.  Unfortunately we didn’t have the XBee adapters, and until half way through the class we couldn’t even power our Arduinos.  Fortunately one of the volunteers managed to run to Radio Shack and get us USB cables, but by then half the class was over.  We did manage to rig up a sensor to our Arduinos and get the data appearing via serial, and we have all the parts and the book with instructions to finish the project, but it was feeling like two and a half strikes in a row before I went to the Erlang talk…

Which was awesome!  Erlang is the weird friend you never knew you needed.  She does all the things that your other friends are terrible at, and after a long heart to heart at the local brewery, you totally get her.  Conference saved.  If multi-actor, highly scalable, multi-core programming is interesting to you, there are some great resources on its page, including Francesco Cesarini’s slides.

Erlang and Go seem to be two different implementations of similar ideas, trying to solve the massive concurrency problem in a structured, production-ready, robust way.  Go’s the hot new kid on the block, while Erlang has been in production for nearly 20 years.  Erlang seems to be a more interesting solution to me, though if you really like writing Java, C or C++, you might prefer Go.

You might have used Erlang if you’ve used CouchDB, Couchbase, Riak, Facebook Chat, Chef, RabbitMQ, voted in any of the UK Big Brother style SMS voting events, or ever sent data over a mobile phone network.  It grows across cores beautifully, and seems like it’ll be a really great solution when 64+ core processors hit the big time.  So, Erlang = Awesome, Conference Tutorials = Very Risky, Arduino Sensor Motes = Someday.

OSCON Space Party

Thursday’s opening party was space themed (I heard that last year it was Camp OSCON with merit badge activities and the like).  They had a jumpy balloon rig, space themed arcade games, interactive art, an indoor inflatable planetarium, a make your own space helmet craft table, and laser tag.  It was fun and loud, but the food options were limited for those on a diet, and as a non-social person, I soon wandered back to my hotel.

Every year OSCON has a nerd-oriented competitive activity.  Beat the game, win a prize.  This year the game was to collect 20 puzzle pieces (which you got from visiting booths, attending keynotes, having lunch, etc), and the prize was an OSCON 15th anniversary hoodie.  As a puzzle oriented and easily obsessed person I got my hoodie Wednesday morning, a few hours after the last piece had been made available.  I was somewhat disappointed to see that there were still hoodies available the last day, but I guess it’s good that those slackers were able to win, too.

Juju on HP Cloud at OSCONWednesday morning kicked off with keynotes, which were presented in an interesting, 10-20 minutes per speaker format.  One of the opening talks was by the president of Canonical, the company that produces Ubuntu and the cloud-oriented app orchestration system Juju.  He demoed Juju’s graphical cluster creation system running on top of HP Cloud, which was nice for us.  Juju looks like a neat system that compliments the existing solutions well, and it’s high on my list of things to look into.  There was also a great keynote about ‘My Robot Friend’ by Carin Meier, where she bravely did live hardware demos on stage, including a Clojure controlled quadcopter.

The most interesting keynote, though, was from Numenta.  Numenta’s keynote was presented by Jeff Hawkins, one of their founders and the guy who started Palm and Handspring.  Their technology simulates the neocortex, the part of your brain that remembers things and predicts patterns (specifically in their software, a 64,000 synapse slice of one of the layers).  They call it the Cortical Learning Algorithm, and they’ve open sourced it in the form of NuPIC (Numenta Platform for Intelligent Computing).  You feed data into this thing, and over time it builds up a map of the patterns in the data and can start to predict what will happen next.  The science is beyond me, but the demo and keynote was great, and you can (should) watch it on YouTube.  I went to their panel later, and they recommended Jeff’s book On Intelligence as a primer for those interested.  There are code samples (in Python!) with the NuPIC library up on their github account.

HP MoonshotThe keynote was impressive, and provided a nice start to the real meat of the conference.  While walking in I also happened to run into Pete Johnson, formerly of HP Cloud and now with ProfitBricks.  It was nice to see a friendly face.  HP also happened to have a booth in the trade show, doing demos of HP Cloud and showing off the oh-so-drool-worthy Moonshot Server.  (Drool worthy server shown at right.)

HP covered lunch for everybody on Wednesday, but I can’t remember what it was.  (I started doing a DietBet last week, so I only ate salads the entire conference.)  The conversations at lunch, though, were great.  On Wednesday I sat at a table with a Wisconsin lo-power FM radio and wholesale ISP guy, someone doing Hadoop at Disney (who’d previously worked at AWS), someone running a private cloud in Vancouver doing simulation-based pharmaceutical discovery, some guys from BlueHost (one of Code for America’s biggest sponsors) in Orem, and a guy who worked for an Apple accessory manufacturer in Portland.

The other panels I went to on Wednesday were one on the temporary cell phone network they setup up during Burning Man, a walkthrough of the parts and software needed to build your own cell phone with an Arduino (did you know that cell phone brains like the SIMCom SIM900 operate with an AT-command derived control setup, like your old 28.8 modem, including AT+HTTP commands to fetch web urls?), a talk on discreet math, and then one on getting kids to code (check out drtechniko.com, a robot language for kids to ‘program’ people, and Alice, a programmable machinima generator).  The last panel of the day was An Overview of Open Source in East Asia, with some really interesting insights into the Open Source community in China, Korea and Japan (and they gave us all free fans!).

OSCON OpenStack 3rd Birthday Bash

OpenStack Birthday Bash3 years ago at OSCON the OpenStack project made its debut, so that means it was time for a 3rd birthday bash.  Fellow HP Cloud-er Rajeev Pandey and I walked over, enjoyed some gazpacho shots, picked up a t-shirt or two, and marveled at their giant paella (seriously, they were like 3 feet wide).  We ran into a few other HP Cloud folks there, including Monty Taylor.  There was a cute birthday cake and lots of cupcakes, but after nibbling and conversing and drinking lots of water (it was surprisingly warm in Portland), soon it was time to go.  Happy Birthday, OpenStack, in software years you’ve almost hit puberty.

The Thursday morning crowd was a bit more subdued, with a fair number of attendees probably partying a little too hearty the night before.  Keynotes were good, with a great talk about Technology diversity by Laura Weidman Powers, co-founder of CODE2040. Licenses were a hot topic as well, including a talk about licenses effecting communities from HP’s own Eileen Evans.  It’s hard to top brain simulation and flying robots, though.

Docker StickerThursday I attended Tim O’Reilly’s talk on Creating More Value Than You Capture (and as an aside, I felt both sorry for Tim in only getting 30-40 attendees, but also better about the 15 my talk pulled in at SXSW), and a great intro to Docker from dotCloud.  If you haven’t looked at Docker, check it out.  The way they bundle up app binaries on top of base machines is awesome.  Then came lunch, with another great group of folks including someone managing DevOps for Disney.com (the entire thing on 60 VMs!).

After lunch was a really great talk on Kicking Impostor Syndrome in the Head by Denise Paolucci.  If you ever feel insecure about your skills, dig up a video of her giving that talk, it was really great.  After that was Designing the Internet of Things with the 3 Laws of Robotics, and then From Maker to China, where Brady Forrest described the challenges and pitfalls of taking a concept from prototype to small-scale manufacturing in China.  One book he recommended for those interested in the product design and manufacturing process was From Concept to Consumer, which now rests on my Amazon wishlist.  After that it was Hardware Hacking with Your Kids, with some funny slides and interesting anecdotes from Dave Neary, and then we were done for the day.  That night I worked on my SXSW panel proposal, and went to bed early.

Trade Show Caterpillar Head

OSCON SwagThe trade show went on Wednesday and Thursday, and had a good mix of big companies, lots of non-profits, and some interestingly unexpected exhibitors (League of Legends maker Riot Games).  There were some great shirts, including this Cloudera one: Data is the New Bacon, and its sister, Data is the New Tofu, one from the Kenyan data mapping non-profit Ushahidi, and plenty of other knicknacks and stickers for the kids back home.  PyLadies was there, Wikimedia was there, Craigslist was there, FSF, EFF, and the Linux Foundation were there.  Everyone was hiring.  The Tizen folks are giving away $4,040,000 (that’s four, count em four… million…) dollars in app development prizes.  There were more hosting and big data software companies than I have fingers and toes.  It’s a good time to be in technology.

Friday was only a half day, so after a keynote exhorting us to join the ACM, one noting that everything important has already been invented, and some group singing, we settled down to business.  First up was Cryptography Pitfalls with John Downey of Braintree.  That was a great talk, and though I knew a lot of the gotchas he mentioned, it was still nice to hear them laid out by a professional.  In short: Use a slow one-way hasher for passwords, don’t build your own crypto implementations, and always check SSL cert validity in your application code.  The slides are up, you should take a look at them.

OSCON ChalkboardAfter a break we headed into Open Source Social Coding for Good, with Benetech.  I’d run into the folks from Benetech in the trade show the day before, and was really excited to learn that they were doing hackathons already with HP’s Office of Global Social Innovation through their SocialCoding4Good project.  I’m really hoping to connect both of them to HP Cloud and do a hackathon in Austin.  The panel was great, and it was good to hear about nonprofits getting traction from corporate hackathons and volunteers.  We need to do more of that.  After that it was Polyglot Application Persistence, and then the conference was over.

So, back to my original question, was it worth it?  Would I go again?

If you’re in Portland, or the Portland area, I think it’s a no-brainer.  It’s a great conference, the attendees are sharp, it covers a ton of stuff, the keynotes are good, and I’m sure there’s something interesting every year.  The trade show’s great.  If you can’t snag a speaking slot or a super-discounted badge, you could get a lot of the value by getting an expo badge and watching the keynotes online.  If you’re paying for it yourself, and traveling to do it, it becomes a much murkier question.  So many conferences are putting everything online these days, what you’re really paying for are the networking opportunities and the experience: That conference euphoria of anything is possible.  That has a lot of value, but if you’re on a budget, maybe local conferences, hackathons, or meetups are good enough.  I hope I’ll be back at OSCON next year, but if I’m not, you’ll all just have to have fun without me.

Developer Resources: Programming & Computer Science Books

One of the things those of us who don’t go through a traditional computer science program miss is a strong foundation in the hard science of computers.  I don’t have a really strong algorithm, programming language design, or compiler background, but I want to learn.  A few months ago I was geeking out with Rajeev Pandey, one of our Distinguished Technologists at HP Cloud (and all-around great guy), about how programming languages are like human languages and how they color our perceptions of the world.  Rajeev mentioned that he could probably come up with a list of the top 5 programming language design books he’d read, and I jumped on it.  I got that list from him a few weeks ago, he said it was fine for me to share it, so here it is on Amazon.  I’m especially interested in reading The Recursive Universe and The New Turing Omnibus.  Enjoy!

Dropping Up: A Life in Tech Without a Degree

I never went to college. I wish I could say that it was entirely intentional, that I knew exactly what I was going to do after I graduated and followed that plan, but that isn’t how it happened. The real story is a lot less romantic. For those thinking about switching careers, or standing at the threshold of ‘real life’ and unsure what to do, it might hold some lessons, so let’s get started…

What really happened was that I was exhausted by school, terrible at working on things that didn’t have an immediate impact, and didn’t really get how the college application thing worked. My family has never been big on debt, and with the grades I had (from being terrible at things that didn’t have an immediate impact, like homework), I certainly wasn’t getting a free ride. I wanted a break, I wanted a chance to do real, practical things. The only problem was that I didn’t know what those real things were, and didn’t know anyone doing them.

Find an Open Door

Scanner SelfieIn 1995 when I graduated high school the most exciting things were happening on the Internet. I’d learned a little HTML after getting online in 1994, but the web was still very much a “We’re trying to figure things out” space. Spaces like this are great, because even if you don’t have tons of experience, there isn’t a huge pool of best practices already to get up to speed on. I connected with some folks who were starting an Internet Service Provider in late 1995. This connection was something of a fluke, someone I knew from church. These days there are much better networking options for technology, but never turn down an opportunity.

Fortunately I had some useful knowledge about how to get MacOS machines online. It wasn’t a lot, but along with the HTML skills it got me in the door. These days the equivalent of that knowledge might be Photoshop skills from making LOLcat gifs, video editing skills from making meme mashups, some hardware skills due to school MindStorms programming, linux administration from running a Minecraft server, or social marketing skills from running a popular Twitter account, Tumblr blog or Facebook page. Anything that’s hard to master in a few days can get you in.

Don’t Expect it to Pay

When I first started doing Mac tech support for that little ISP in San Marcos I made a little over $200 a month. That isn’t much money, but it put gas in the car and put me in a position where I could play with the toys. Your job, once you have toys to play with, is to play the heck out of them.

iTouch.net NewsletterIn the first 6 months after I got my ‘job’ at the ISP, I built them a web site (you can still see it here) setup San Marcos’s first quake server, created Austin’s first streaming radio station (I registered mix947.com in February of 1996, and got the streaming working with a demo license of Real Media Server for BSDI and an old shop boombox), created a weekly user newsletter, started weekly user meetups at the shop, and even got involved with the local Internet Users Group at the library (which I ended up running).

You only do those kind of things if you’re in a space where there are no conventions or expectations. When there aren’t any streaming audio stations, setting one up with a 5 stream limit isn’t a deal-breaker. When all your users are early adopters you don’t need a marketing expert to write a user group email. You just do it. Luckily the ISP was run by Chad Neff, a great artist and stalwart defender of the user. He encouraged me to try things, and was my first great mentor in technology.

Hold on Passionately, but Loosely

I Fight for the UsersAn early, hard lesson to learn is when to let go. I didn’t let go of that job well, and though there were extenuating circumstances, and more people than just me were caught up in it, it made my life really messy for a few years. When you’re in the middle of the job, fight for the users as hard and as passionately as you can. If you aren’t creating things for someone, it’s a waste. Whether you’re knitting hats or writing tweets, you’re doing it for someone. Strive to make them as happy as possible.

Conversely, you have to know when it’s time to go. All things come to an end, and being able to sense that end and depart gracefully is a skill. Learn it. If you’re going into tech, read founder stories, especially the stories from founders who get kicked out. There’s a shift at each phase of a project or company life-cycle, from startup to growth and growth to long-term maturity. Finding out which phase you fit into best is important, as is being able to sense when that shift is coming.

Aside: Do you like to experiment, throw things together and see what sticks, with little heed for long term consequences? You’re probably startup minded. Do you like some stability, but enjoy seeing success build, working long nights to land the next client? Maybe growth is your bag. Are you risk-averse? Do you like long-term stability, dependable processes and maybe even enjoy corporate politics and intrigue? Then maybe you want a project in its mature phase.

Also, strive to recognize when things are heading for the toilet. There’s some honor in being the last one to turn off the lights and lock the door, and I’ve done it more than once, but it’s rarely the best thing for a career. Try and step back once in a while and assess things from the outside. Get some opinions from people you trust. Do right by your users, but recognize that not every situation is salvageable.

It’ll Be Embarrassing

Not a German design school
Not a German Design School

For a long time I had a vision for starting a web design firm like Vivid Studios, a bay area web design shop that had the mid-90’s Wired techno-punk aesthetic nailed. It was a techno rebellious company producing amazingly creative, cutting edge work for great clients, and I wanted to be just like that. Unfortunately I was in San Marcos, Texas, not San Francisco, California, and I didn’t know anything about running a business, much less a hip design business. I didn’t know Bauhaus from an outhouse, if you know what I mean.

I carried that dream around for a lot of years, wanting to belong in a group of smart, forward thinking creatives. The dream took a lot of different shapes, and matured as I did. The first attempts were… laughable. In 1997 I started doing business as 57th Street Productions (yes, we apparently offered ‘innovative thinking’ as a service), which in 1999 became 57th Street, Inc. 57th Street lasted a year and a half before ceasing to be.

Aside: A while ago I’d read something that said you can find a lot out about a person by how they view their youthful mistakes. People who think ‘look at me, I was so stupid’ versus people who think ‘look at me, I was so cute’. People who realize that youth and inexperience is a perfectly valid excuse for shortcomings are more likely to grow and be happy than people who judge themselves harshly. Don’t be down on your past. Everyone has been the fool. Don’t settle for that being the whole story, though.

When you read stories about Bill Gates or other tech luminaries starting companies in their 20’s and being wildly successful, what you don’t read is about the support networks they had that made it possible. You don’t hear about the people they knew who had business experience, the years they’d had access to computers in their teens, the contracts they’d gotten due to flukes. When you don’t know how to get from point A to point B in business, don’t assume you can just muddle through. Go out and read some business books. Realize that if you don’t know people who need your services/product/etc, you can’t make money. Realize that if you only have one of these clients and don’t have any way to find a second, your business isn’t really a business, it’s just a relationship. Go find people who run real businesses, and get them to teach you the ropes. Ask them how they find clients, especially if they’re in a business similar to yours (say, physical engineering services to technology consulting). If you can’t sell your product for more than it costs to make, again, no business. You don’t need an MBA, but you need to know how to balance a checkbook, forecast earnings, pitch a client, close a deal, and make a profit.

I ended up doing some things I’m not really proud of at 57th Street in the hope of forcing that Vivid Studios dream into reality. I made some bad decisions (hiring people for personal reasons, not diversifying the client base, not making enough connections), and the only reason we made it as long as we did was that it was hard not to make money in technology in the late 90’s. If you’d like to get a taste for my embarrassing phase, you can check out these two tours, one from my ISP days at itouch.net, and one from my days as 57th Street, Inc.

You’ll Get a Break

Cory and JonWhat seems to happen is that eventually, if you keep plugging along, you’ll get a break. It will almost always be a result of some risk you’ve taken, or avenue you’ve explored. If you’re well connected, I guess it could be a connection your parents or buddies have, but that wasn’t my experience. In 1997, after joining The WELL, I met Jon Lebkowsky. We got into an online discussion about FreeNets, something I was interested in from my connection with the San Marcos Internet Users Group, and ended up having lunch at the Waterloo Ice House. We ate at the Ice House because it was next door to Jon’s gig at the time, Internet Guy at Whole Foods Market.

Nearly everything that has happened since, I can trace back to meeting Jon. Jon was having some trouble with Whole Foods in-store kiosk system. They were Windows NT Workstation based PCs with touch screens that browsed an internal web site in a locked-down browser. They were always breaking, stores shipped them back to WFM Central, and they had to be fixed. Jon needed someone to do the fixing, and I took the job. Your break may not be glorious. For me it was a windowless room fixing and re-imaging Windows NT machines, but it was a foot in the door at a company that had real enterprise-level problems, and even better, I got in at a very unique time.

Don’t Be Afraid to Go Up

My time at Whole Foods, in retrospect, was very strange. I’m sure some people have had similar experiences in other places, but now that I look back on it, it was kind of crazy. I think, though my memory is a little foggy, when I started working contract for Jon on the kiosk project I was making about $15/hour doing run-of-the-mill PC maintenance. Over the next 3 years my rate ended up peaking at something like $150/hour, and I was on a 40 hour a week retainer. Somewhere near the end the CIO of Whole Foods Market asked me into her office and offered me the chance to rebuild their programming team, hiring whoever I wanted. I was… 22. So, it’s a weird story.

Whole Foods SelfieI think my experience at Whole Foods comes down to two things. One, the luck to be in the right place at the right time, and two, never saying no to a problem. When I started on the kiosk project I was just re-imaging systems, fixing ones that were broken, and shipping out the replacements. That’s $15/hour work. Eventually the vendor that was supplying our keyblock software (so you couldn’t get out of the browser and break the machine) disappeared, so I offered to write a new one. I’d never written Windows NT device drivers before (or really any C code), but you don’t know you can’t till you try. Once you’re maintaining source code you’ve suddenly become more than an IT tech, and I think my rate bumped to $35/hour.

Now comes the right place/right time side of the story. This was in 1998. The Internet was hot, E-Commerce was boiling hot, and all the sharp programmers who’d toiled away for years on awk scripts and maintenance software wanted to go do the hot new thing. Whole Foods Market started WholeFoods.com, and nearly all the programmers from inside of Whole Foods left to join it. This left a gaping hole in the company that was being filled by one person.

Simultaneous to this exodus I, too, was exploring the job opportunities at WholeFoods.com. They made me an offer for $35k a year, and after verbally accepting it, I drove over to Whole Foods to get some dinner. In the parking lot I ran into Mark Mills, that one guy holding closed the gaping hole in internal development. While swinging around a pole in the parking lot, Mark gave me my next big break. Come to work for me, he said, and I’ll pay you $85/hour contract full time. You don’t have to be great at math to know that’s a lot better than $35k/year, so I declined WholeFoods.com’s offer, and went to work for Mark. Sometimes the opportunities are obvious.

You Have Potential in Others Eyes

When I joined Mark on the programming team, I was not a great programmer. I wasn’t even an ok programmer, but Mark, like Jon and Chad, must have seen potential, so he gave me problems to solve, and let me solve them. He gave me advice, showed me some tricks, and let me do things how I needed to do them. Mentors like this are great, seek them out, cleave to them, and strive to be like that when you’re in a position of authority.

After a few months of building data exports, Mark left Whole Foods as well. And then there was one.

Again, this is a right place, right time story. I had web skills, sys-admin skills, network skills and programming skills, and was in a large company with no internal programmers. Over the next few years I was able to build a suite of web applications (job posting, CMS, inventory management, document management, etc), working directly with the teams who would be using them, without any real technical oversight. I like to think that I did a good job, but I suppose that isn’t for me to judge. I just know that they were still using some of those applications years later, and the people I worked with always seemed happy to see me.

WFM TMNOnce you get an opportunity to work on projects, it’s a chance to prove yourself and get experience shipping real product. During this phase I never had a project cancelled, I always delivered them on time, and I supported them myself. Strive to be the best, work professionally, and treat your users and customers how you’d want to be treated. You’ll make mistakes (always compress uploaded documents in a document storage system, your network storage admins will thank you later), but you learn from them.

Surprisingly, during this phase I even got called back in to WholeFoods.com (and later WholePeople.com) by Jon to build some integration software with Yahoo! Store, and managed to deliver in a few weeks what another consulting firm said wasn’t possible. This is your ‘don’t know it isn’t possible’ phase, enjoy it. Work your butt off, learn as much as you can, try new things. Responsibility comes next, and it’s a bear.

Out of the Garden

Eventually the gravy train ends. Whole Foods Market’s CIO offered me the job as lead developer, and the opportunity to hire anyone I wanted to rebuild the programming team. My life would have been completely different if I’d accepted, but I couldn’t in good conscience. I was 22. I didn’t really know what I was doing, but I knew I didn’t know what I was doing. I didn’t really want an employee gig. I turned her down.

The next few years heralded the popping of the dot-com bubble. I drifted away from Whole Foods Market as they hired programmers internally, though I kept maintaining the systems that ran the WholeFoodsMarket.com web site until they replaced the entire thing in the late 2008. From the time we launched it (on time) in 2000 to 2008, it was powered by the same Apache Server-Side Include based architecture, running on a single Sun machine.

Polycot PieAfter WholePeople.com imploded with the dot-com bubble, Jon Lebkowsky and I started talking about starting a web consulting company. Visions of Vivid Studios started dancing in my head. I even managed to rope my buddy Matt Sanders into joining us. Together we founded Polycot Consulting, and started learning all those business lessons the hard way.

Remember how I said that a business with only one customer and no way to find more isn’t a business? That was us at Polycot. We spent a lot of time in the wilderness, trying to find work in the post-dot-com rubble. It wasn’t easy. We learned a lot of lessons the hard way. A few of them:

  • You can’t pay your rent with leads, you can only pay your rent with paid invoices.
  • There’s a difference between the things you want to get the job done and the things you need to get the job done.
  • Doing cheap jobs for ‘exposure’ is a trap. You will end up just doing cheap jobs, and your customers will expect the world.  Our CPA once told us that Pro Bono work was a great way to get other work, but the other work will always be Pro Bono.
  • Corporations view the world differently than non-profits and mom-and-pops. Don’t ask a Fortune 500 if they want to pay $100 extra for a life-time license of some software you’re using, that isn’t real money to them.
  • You need someone who knows how to sell. You can evangelize a product, but you have to sell consulting.
  • Make a product, and make sure that everyone’s willing to put the time into it. Better yet, make a bunch of products. When you’re scraping by on hourly work it’s easy to say ‘this doesn’t pay, I’m not going to do it’, but look at it this way: Each of those products is a learning opportunity, and in consulting, if you don’t learn you die. One might even make some money.
  • Evangelize your successes. Write up each project that you do. Publicize the heck out of it. If you did something awesome and no one knows, it doesn’t matter.
  • Recurring income is what keeps consulting businesses afloat. Just because you, as a scrappy developer, think that support contracts are a ripoff doesn’t mean they are, and if they didn’t exist, most of the things you like wouldn’t, either.
  • Running a business is crazy hard, most of them fail, if yours doesn’t, good for you, but be open to the possibility that it should have.
  • Realize that you could very well be doing work in technology for the rest of your life. Take every opportunity to learn a new thing. The more you know, the more valuable you are, and in the end…
  • You are your product.

The Soft, Cozy Womb of Corporate Life

One upside to doing a bunch of projects for a bunch of people is that we met a bunch of other technology people. I did a few projects for Mitch Kapor (of Lotus fame), we had Matt Mullenweg in our office before WordPress got huge, I worked with the guy who designed Google+ on a project, and some guys we worked with are behind SB Nation, The Verge and Polygon. Once you meet smart people and show them you’re a decent sort of person, other doors start to open. These doors are sometimes soft, inviting, and open onto worlds of bureaucracy and 401k plans.

TechConOne of the last projects we did at Polycot before the founders went their separate ways was MindBites. MindBites is a video commerce platform, and after we built the prototype, we migrated the customer to a company called Squeejee for ongoing development work. A few years later, some folks from Squeejee would end up at Hewlett-Packard, brought in to spearhead HP’s push into the public cloud space. They would bring on Matt Sanders, and thanks to the good impression I apparently made, me.

I’ve been at HP for two and a half years, and I’m finding that a lot of the lessons I learned earlier still stand. Namely:

  • Look for a space where people believe in forgiveness over permission. Then do what you feel needs to be done.
  • Look for smart people and learn from them. Communicate. Converse. Network, even if it’s hard.
  • The people above you want solutions, so when you’re presented with a problem, come up with one, and do it.
  • People in the corporate world are used to passing the buck and bureaucracy They are impressed by responsibility and rapidly delivered solutions.
  • Take credit when it’s due, share it when it should be, make sure contributions aren’t overlooked.
  • Don’t let yourself get stuck. Corporate life can be a trap. A slow moving, slow progressing trap. Always be on the lookout for the next spot, the way to gracefully exit, the new problem. This counts double if you’re a startup phase person.
  • Many (most?) corporate projects get the axe eventually, some before they even ship. Don’t take it personally. Try to lead the inevitable downturn. Play from a position of innovation. If they want to kill it, be the person proposing the exciting new possibility.
  • Take every opportunity the company offers to learn, present, meet, train, etc. Just because you got a job doesn’t mean you get to stop hustling. Again, the cardinal rule is…
  • You are still your product.

Fill in the Gaps

One thing I’ve come to realize, the longer I’ve worked in tech, is that the knowledge space is huge. Enormous. There’s no way to know everything. There are entire fields you haven’t heard of, entire ecosystems that have existed for years that you know nothing about. Your job in improving your product (yourself) is to fill in those gaps as much as you can. It’s better to be a generalist than a specialist. It’s better to know two programming languages than one, and better to know three than two, especially ones that compliment each other, like Python, Javascript and Go or Ruby, Javascript and Node.

If you’ve focused on the frontend, do some backend tutorials. If you’ve done HTML and CSS, try Drupal or Django or Rails. If you’ve done databases and integration projects, do some front end stuff. Look at jQuery. If you’ve done just web stuff try loading up a server, setting up backups, and installing software. If you’ve done server stuff, try creating some HTML5 Twitter mashups. If you’ve only done sites for a small set of users, go big, pull down some giant Twitter datasets and start playing with R and Hadoop. If you’ve used imperative scripting languages, try functional ones. If you’ve mainly done P-languages or Ruby, try Lua or Go or TCL or LISP. Write a compiler. Do some computer vision projects. Hack on Arduino or the Raspberry Pi. Write an Android app. Go outside your comfort zone.

As to how deep you get with these things, here’s an arbitrary rule of thumb I just made up: Learn enough that you could give a 45 minute talk about it. If you’re single, learn a major new thing every quarter. If you’re married, every 6 months. If you have kids, especially little ones, every year. Adjust as you see fit.

Above all, don’t beat yourself up if you find yourself behind some imaginary curve. If you’re 35 and only know Java, that’s fine. That’s great! There’s tons to learn, and it’s going to be crazy and exciting and you’re going to look at technology in an entirely different way. If you’re 50 and think you’d really enjoy this, there’s never been a better time to learn, and it’s never been easier to get from nothing to a working product. Try one thing. Pick one of these things that interests you, and spend a weekend on it, if you can. Commit to just getting one thing working. If you can relate it to your job and do it on company time, all the better. If you enjoy it, keep going.

Life Without College

So, I may have strayed from my original point about college. There’s a maxim I’ve heard that goes like this: Your degree gets you your first job, and after that it’s all about the work you’ve done. For people who don’t go to college, the trick is getting that first job, and filling in anything you may have missed by not going to school.

Look for under-saturated specialties. It isn’t a great time to get into small business web design. That ship has sailed to custom WordPress themes.  If the web really floats your boat, get into Drupal, but don’t stay there forever.  Technology moves, albeit sometimes slowly.  Mobile development was ripe a few years ago, but making a profit in it is really hard.  It’s a good skill to have, but a hard market to compete in.  Look at things like RubyMotion, to get your feet wet.  There are opportunities in DevOps (a fancy word for programmers who deploy their own code into production), big data, personal and business clouds, personal analytics, and integrated Internet enabled devices.  There are always jobs to be had in enterprise software.  Tech companies introduce software to solve new problems, so look at the announcements that are getting a lot of buzz.  CloudFoundry had a lot of buzz, and now Docker is really hot.

Getting your first job:

  • Find something you feel excited about (programming, networks, server administration, HTML, design) and do a bunch of it. If you’re a lecture-learner, watch videos. If you need practical applications, ask people for ideas of projects. If you have collaboration skills, pair program.
  • Meet people. Go to Meetups. Join online groups. Listen a lot. Don’t be afraid to ask questions. Follow the rabbit hole down. Don’t be afraid of not understanding. The pieces will fit with time. You have to practice, though. You have to actually write code, create graphics, code web pages.
  • Share what you’ve learned. If you can teach it, maybe you’ve learned it.
  • If you’re programming, share your code on GitHub. If you’re creating videos, post them to YouTube and Vimeo (I partied with those guys once, they’re cool, but New York-trendy).
  • Ask for feedback, don’t expect it to be glowing. Don’t try and change everything, but internalize what you get. You’ve created something, don’t doubt yourself. The goal is to get better, not to be perfect.
  • Talk at meetups with people from companies you respect. Look for open doors, even if they aren’t exactly what you want. Expect to do a lot of hard work that isn’t glamorous and isn’t fun. It’s better to do less fun work at a company you love than cutting edge work at a place you hate.
  • Get some experience doing contract jobs, say, on oDesk. It will suck. You will hate it, but it will teach you about shipping code, supporting code, and dealing with clients.
  • Technology managers rarely care about the jobs you’ve had, and almost never care about what school you went to. They care about the work you’ve done. When I’m hiring now, education is nearly irrelevant. How you spent 4 years as an immature post-20-something is nothing compared to how you spent the next 5 or 10. Google seems to agree. Google has teams where 14 percent of the folks never went to college… Google!
  • Hierarchical academic environments still exist (HP Labs is really oriented that way, I’ve heard), and are probably places you want to avoid. Most places like this have a reputation for being so. If you ask around, you can probably get the skinny.
  • If the opportunity appears, jump on it.

Once You’re In:

  • Never turn down an opportunity to do something that excites you.
  • Find a mentor, someone who shares your interests and has experience. Don’t go crazy with their time, but don’t underutilize them. People who’ve been around for a while want to share what they’ve learned, but they want you to show initiative.
  • Find excited, cool people. If you’re in a corporate environment it can be easy to get depressed. Don’t be an antagonist. Be the person you want to hang out with. The future is wide-open and unknown. The present is temporary. Always be dreaming.
  • Take advantage of learning resources and your newfound credibility.
  • Watch for the phase changes. Be sure you’re where you’re most productive. Seek out managers who understand that personality fit, and strive to keep you there.
  • If you get hired with no prior tech experience, you probably aren’t going to make much money. Work on your skill set, network, and realize that you may need to join a different company to work your way up the salary ladder quickly. Learn to negotiate salary. Google it. It’s important.

Once You’re an Old Hand:

  • Share your knowledge.
  • Protect those below you.  You’re experienced and have tough skin, sometimes they don’t.  They need to know the realities, but they may not need to know how the sausage gets made.
  • Look for people who need mentors. Encourage them. Connect them with things you think will help them.
  • Take the time to learn about the people you work with. Everyone has a story. Maybe they didn’t get a CS degree. Maybe they’ve had similar challenges. Maybe they have an amazing background or skill you knew nothing about.
  • People come into technology with different skill sets There is no such thing as the complete programmer. Look for your own gaps and those in others, and figure out ways to fill them.
  • Lead by example. Do good work, don’t be a jerk, and treat everyone with respect.

A Few Last Notes

Getting Started EarlyIf I’ve learned anything in the last 15 years of being in technology, it’s that patterns repeat. I’m sure there will be changes in the future. Once you have kids, your desire to really jump on those transitions may start to slow down, but in the end they’re what a career is about. I’ve been fortunate to meet some very smart people inside HP who’ve been there for 30 years or more. They started out on calculators and are now in cloud. Maybe I’ll start in the web and end up in synaptic AI. Maybe that’ll be at HP, maybe it’ll be somewhere else. There’s always something new to learn, and there’s always that product of ‘you’ to work on.

If anyone reading this is looking for specific advice, needs a mentor, or would like some feedback, let me know. A lot of very gracious people have given me a lot over the years, and I want to pay it forward.

HP Tech Con `13: The Magic Kingdom

After I joined HP two and a half years ago I started to hear tales of a magical event.  Tech Con, a technical conference for the top technologists in the company, showing off the best and brightest innovations of the year.  Moonshot servers, 3D displays, that kind of thing.  One guy on our team had gotten in on an honorable mention a few years before.  Nobody ever went to present.  Not from our small corner of HP, anyway.  But we could always dream.

To get in to Tech Con you have to write up an innovation you created, and then compete against nearly two thousand other proposals for one of less than 150 poster slots.  Out of those poster slots, fewer than 50 get speaking slots.  To put this in perspective, HP has 320,000 employees, more than 70,000 technologists, less than 1,000 get to go to the conference and fewer than 50 get to stand up on stage and talk.  HP Labs is always well represented, innovation is their lifeblood.  HP Cloud… had never sent anyone.

PodiumLast year I started working on something pretty cool, so a logical step while applying for a patent was to submit the innovation to the conference.  Fast forward a few months to late February.  While sitting on the couch at the end of a long day, I was checking my email on my phone and a message popped up.  It was an invitation to Tech Con.  Even more mind boggling, after I re-read the email for the third time, I realized I’d been invited to speak.  Queue the montage of presentation creation, practice, tweaking, throwing the entire presentation away, starting from scratch, practicing, tweaking, etc.

You can read about what other HP People higher in the company than me have to say about Tech Con: HP’s CTO Martin Fink highlighted it on the HP Next blog, and HP Fellow Charlie Bess has posted about it.  For those who haven’t had a chance to go to an event like Tech Con, a big, technical company event, I’d like to give a brief rundown of what it’s like, since it can be a once in a career experience.

Room KeyTech Con this year was in Anaheim.  The location is a closely guarded secret before the conference, because it’s chock-full of company trade secrets and unreleased products.  We were at a hotel a few minutes from Disneyland, and HP had booked nearly the entire thing for the conference.  There were a few vacationers, but pretty much everyone you saw was wearing the HP Tech Con lanyard.  Even our room keys had the conference logo on them.

LunchTech Con is a conference where you work hard and play hard, in as compressed an amount of time as possible.  We all flew in Sunday afternoon, and then had a reception and dinner that evening.  Being a teleworker I don’t get to see HP at it’s most mind-bogglingly huge, but this conference went all out.  HP logos on the walls, HP banners, even HP napkins.  When you work in a little 350 person department in the cloud it’s easy to forget that the company makes paper, ink and printers of all kinds.  (Not to mention servers, PCs, storage, networking, software, services…)

The conference is a mix of formal presentations and academic style poster sessions.  During the poster sessions my co-authors from HP Cloud and I got to stand in front of our poster and talk to technologists and executives from all over HP, discussing how we could work together, explaining our product and getting some really great feedback.  HP’s COO (and our boss’s boss’s boss’s boss) even dropped by our poster and talked with us for about 20 minutes.  It was amazing to get that level of recognition, and I think I managed to not completely embarrass myself.  Meg Whitman was on the poster hall floor, but unfortunately didn’t get to where we were.  She did talk to all of us, though, which was great for those of us who aren’t from the bay area and don’t see her regularly.

Tech Con Dinner

There were two blocks of scheduled activities, the first an outing to the Queen Mary that I missed to spend more time with some fellow HP Cloud folks (though everyone I talked to said it was really fun), and second an activities slot with things like whale watching, art walks, and the Warner Brothers studio tour, which I went on.

Nerd Herder

The highlight of that tour might have been seeing a real Nerd Herder from the TV show Chuck, but we also got to see the main set for The Mentalist, which was really cool.

Speaking at Tech ConI gave my talk Wednesday morning to a nice, big crowd, had some great QA, and then talked to a bunch more people at our final poster session.  It was great to hear from people who’d had 30 year careers at HP working on amazing products that they totally got our thing and thought we were on the right track.  That’s the kind of affirmation that can only come from a smart, diverse group of people like those at Tech Con.

Tech Con Room

Tech Con is a highly confidential conference, and they take IP violations really seriously.  I wanted to bring my poster home, since it was really pretty, and would go really well with my Whole Foods Market Milk poster.  I had some people ask about the possibility on my behalf, but apparently after the last session they were going to lock the door, ship them all back to Palo Alto, show them for a few days, then cut them up, boil them in acid, burn them, and bury them in the desert.  Oh well.

The conference wound down Wednesday afternoon, but I managed to walk over to Disneyland with one of my coworkers from HP Cloud to get souvenirs for the family, having a nice chat on the way.  The highlight of the conference is really those times, getting to talk to people you work with, or people from other parts of HP that you never have contact with.  I had conversations with people from Australia, the UK, Germany, India, China, Italy, Israel and Brazil.  It was really, really cool.

PyCon 2013: Three Days in the Valley

Last weekend I was in Santa Clara for PyCon.  Since then the story of the conference has been writ large in media outlets near and far, but you may not have heard anything about what the conference was really like.  So here’s my view, as someone who had never been to PyCon before (with some thoughts on the controversy interspersed)…

HP Cloud was a sponsor and exhibitor this year at PyCon.  I’m working on a new cloud service written in Python and will need developers at some point, so I traded manning the HP booth for a few hours for the trip.  I’ve been to Lone Star Ruby a few times and two RailsConfs, but I’d never been to a Python event.  Given Python’s reputation as a very friendly, open community, I wanted to get a feel for it it in person.

I’ve never been to the valley proper.  I’ve been to San Francisco a couple of times, but never down to Palo Alto, Mountain View, Menlo Park, Sunnyvale, Santa Clara, Cupertino, San Jose, and surrounds.  In tech, Silicon Valley inhabits a mythical place as the fount from which innovations flow.  Books have been written about how special the place is.  Barrels of digital ink have been spilled over the high cost of living, the startup life, and the bright lights up the 101 in the City.

The AvatarI flew in late Thursday night after a crazy week attending and presenting at SXSW, and then getting robbed.  On the approach vector into San Jose International the whole valley spreads out beneath you, tight, flat grid of civilization.  It’s very Tron.  After taking a taxi from the airport, the only thing that really struck me was that every building I saw over one story had the logo of a tech company I knew on it.  I didn’t book travel in time to get into the convention center hotel, so I was in The Avatar, the overflow hotel.  The Avatar is an 8 bit/robot themed hotel, but really it’s a refurbished 1950’s motor style Holiday Inn with some modern furniture.  At check-in there was a lady in front of me with green hair and big black boots, and in my post-travel haze, surrounded by tin robots and chrome, I remember thinking that this must be where all the cypherpunks had gone.

In the morning light, Santa Clara looked a bit more like every tech town USA, though there was still that ineffable California sheen.  I took the overcrowded bus over to the convention center, picked up my badge, and had a very nice breakfast.  It was a standard eggs and bacon affair, but they were pretty liberal with the bacon.  I think I saw a guy whose entire plate was bacon.

Keynote RoomI picked up my conference bag from a guy wearing a Wreck it Ralph tech team shirt.  Apparently Disney Animation was a sponsor this year.  Next up was the keynote from Eben Upton, where they announced that everyone was getting a Raspberry Pi.  There was a lot of cheering.  He also said that originally they were hoping to make a device that booted straight into python, so if you wanted to do anything you’d need to learn to code, ala the C64 and BBC Microcomputer.  The Pi in Raspberry Pi was originally for Python.  They’re still working on that idea.  The organizers also mentioned in the announcements about the Young Coder program they ran, with obligatory adorable pictures of kids peeking out from behind monitors.

The sessions were interesting, and since it seemed they were being recorded, I didn’t feel as much pressure to sit in every one that seemed cool.  The Messaging at Scale at Instagram talk was really interesting, as was the Making DISQUS Realtime talk.  It’s pretty incredible the traffic the DISQUS folks are pushing out of a half dozen physical boxes.  Whenever you’re on a page with DISQUS comments and you see one slide into the live comments box, you’re talking to one of those half dozen machines.  Crazy.  They had some interesting traffic graphs from the week the new pope was announced.

The Pope

After a few panels I decided to hit the trade show, which really surprised me.  It’s a good time to be a Python programmer.  The trade show at PyCon, a conference of only 2,500 attendees, was one of the best I’ve seen.  I’d never seen a trade show with Facebook, Oracle, Google, redhat, eBay, Microsoft, Amazon, Twitter, Apple, Netflix, Firefox, Hulu and of course, HP Cloud, all in one place.  We sponsored a happy hour the first day, and Heroku covered the second day with free sake.  There was even raspberry pi(e).

Lunch was really well organized, with 7-8 two sided serving tables and acres of big round tables.  The food was ok, nothing to write home about, but better than some conferences I’ve been to.  Breakfast was really their forte, the second and third days we had really satisfying baja breakfast burritos.

Lunch Lines

One of the trade show vendors, Thumbtack, a company that offers custom local service quotes (and is an awful lot like a site we worked on at Polycot, 45fix), had a programming challenge they were handing out.  I’m afraid to say that I burned more than a couple hours over the weekend working on it, and in the end I ended up with a fairly brute force approach that I wasn’t entirely satisfied with, but seemed to be the only straightforward way to solve it.  The programming challenge pages are here, if you’d like to take a crack.  The solution to the second page challenge ended up taking around 25 seconds on my Macbook Pro:

Thumbstack 1 Thumbstack 2

Donglegate

So let’s get into some controversy, shall we?  The Python community is known as an open, welcoming community.  Like any programming community there are plenty of hard core nerds who like to prove how smart they are, but Python was designed as a language that would be very consistent and easy to learn.  There was an entire track on how to teach python, how to run meetups and events, and how to get more women coders into the community.  PyCon has a code of conduct as well, something that attempts to directly address previous inappropriate activity in the programming community.  The Python leadership and organizers want to be really welcoming, they want a good gender balance, they were even talking about how the conference attendance was 20% female.  I think this number is probably skewed because it probably includes a lot of marketing folks who were only manning booths in the trade show, but they’re definitely trying.

There were at least 5 female programmer groups in the trade show: PyLadies, Women who Code, LadyCoders, CodeChix and The Ada Initiative.  There was a charity auction for PyLadies, and the Ada Initiative even had a feminist hacker lounge in the trade show:

Feminist Hacker Lounge

It was by far the most actively gender progressive conference I’ve ever been to, which makes the whole hullabaloo about dongles and forking so weird.  There was a lot of justified outrage after the Golden Gate Ruby CouchDB talk.  The Ruby community isn’t known for being as newbie friendly, and is generally a bit more rock star testosterone driven.  PyCon tried to do a better job, and despite all their good efforts, the takeaway from most of the people who read about the event will be, “Won’t those nerds ever learn to treat women with respect.”  That’s a shame, because they really tried.  If you’re interested in diving into this rabbit hole, the Geek Feminism wiki has a good page about it.

I keep thinking that the gender equality thing that PyCon tries to promote is a lot like the friendliness of the community.  It exists because we say it does, and the fact that there’s a conversation around it makes it real.  If you’re sitting next to someone at a conference that talks a lot about friendliness, you’re more likely to be friendly and open yourself up and risk rejection.  I had a lot of great, interesting conversations at PyCon over breakfast and lunch, including one with a young lady from Portland who had been to PyLadies and other female programmer meetups.  She said what she really wanted wasn’t get togethers to talk about how being female in tech is weird, she wanted meetups where they sat down and actually wrote code.  She said that if programming is a meritocracy, you should be able to prove yourself and grow by doing, which makes sense to me.  Less dongle jokes, more ladies, more kids, more code.  It’s a big tent.

Right after registration I was standing next to a group of people who had clustered together, and someone actually invited me over to join the conversation.  I’ve never had that happen at a tech conference, ever.  It turned out that none of the people in the group had ever been to PyCon before.  It wasn’t a passed down openness based on previous experience, it was because we all knew PyCon was open, because they make a point of saying it.  It’s right there on the conference web page: “Change the future – education, outreach, politeness, respect, tenacity and vision.”

I don’t have a good answer on how this whole thing should have played out.  It’s a mess.  It shouldn’t have been a mess.  I hope the folks who organized PyCon aren’t taking it too personally.  I don’t see that they could have done anything better than they did.

Booth Monkey Like Me

I went to PyCon, in part, to man the HP Cloud booth.  The last time I manned a booth was at SXSW, where while covering for the Creative Commons folks during their session, Bruce Sterling walked up to me and asked why he should give his books away for free.  I didn’t have a good answer.

Booth Monkey

This time was a little easier, the thing we’re battling the most with developer at HP Cloud is just awareness.  Most people don’t know that HP has a public cloud offering, so I was happy to explain what we did and get some insights from real customers.  Of course, the Spotify booth was opposite ours, and getting those insights can be a challenge when you’re competing with this:

Wrapping Up & Going Home

I never got to really see much of Silicon Valley.  I didn’t get to hit the Apple Company Store or visit the garage or the HP offices in Palo Alto.  Hopefully I’ll be able to go back soon.

There were some other really good talks at PyCon.  I know I need to start using iterators and generators more.  I may even take a poke around Python 3.3.  On Sunday they had a job fair and poster sessions, which was really interesting to me, since I’ll be presenting a poster in a month and a half at an HP conference.

PyCon Job Fair & Poster SessionsRecruiting was the activity of the conference.  It seemed like everyone was looking for Python developers, and like Ruby was back in 2007, there just aren’t enough to go around.

Bag-O-Swag

When I flew out to Santa Clara I only had my laptop bag.  Walking around the trade show I realized that I didn’t really need to bring extra t-shirts, nearly everyone was giving them away.  I ended up carefully packing an entire bag of swag, including my hard-fought goodies from Thumbtack.  Thankfully the San Jose airport’s bathrooms have child seats.  HP had some nice swag this year, a pen-shaped screwdriver set.  Someone even came up and gave me a compliment about it.

I decided to get some Python neckerchief wearing beanie snakes for the girls back home, which gave me a chance to take this picture.  I have had it with these pythonic snakes on this pythonic plane!

Pythonic Snakes on a Pythonic Plane

Austin’s a big tech town, so it wasn’t a surprise that I ended up sitting next to a fellow PyCon attendee.  In this case it was Chris Kucharski, the guy who runs the web team at Dimensional Fund Advisors.  We had a great chat about Python, Austin, teams and technology.  It was cool to find out that he hosts the Austin Learn Python Meetup at Dimensional’s offices.  The more supporters in the community and the more new developers, the better.  Maybe in a few years PyCon will be as diverse as we all want it to be.

Remote Workers and Corporate Culture

Garage DoorsOn the second floor of a generic office building complex in Fort Collins, Colorado, there’s a nearly life-sized photo of a garage.  There isn’t a sign, or a label, but everyone who works in that generic office building knows what that garage is and what it represents.  The photo is there to remind people who walk by it every day who they are and the legacy they have inherited.  The garage that photo is of is located 943 miles away in Palo Alto, California.  That garage is the birthplace of silicon valley.

There’s been a lot of discussion lately about Yahoo’s memo to remote workers announcing the end of work-from-home arrangements.  There are plenty of passionate responses against this move, mostly citing figures about remote workers being more productive, putting in more hours, working with fewer distractions.  Most of the people supporting Yahoo! cite their possible lost employee percentage, org chart orphans like Milton in Office Space.  But some focus on the culture, and that’s where I think the crux of the issue may lie.

It’s really, really, really hard to drive a spontaneous, passionate corporate culture in a distributed group, especially a really large one.  While companies like 37 Signals, who get to pick out specific personality fits when they hire, claim to be able to do it, I don’t think just anyone can.

The Whole Foods C-Suite Hallway, 2000
The Whole Foods C-Suite Hallway, 2000

I started working for Whole Foods Market in 1999, and while I was never a real employee, I spent a lot of my time there until we started Polycot in 2001.  During those years I did a lot of dropping in and chatting with the people I was building software for, and I learned a lot about the grocery business, store promotions pricing, the culture differences between organically grown and acquired regions, employee compensation systems, and the difficulty of sourcing and maintaining wide format dot matrix printers.

Towards the end our VPN access was becoming fairly robust, and I was getting really good at solving problems in ways that wouldn’t require me to sit at a desk for 8 hours a day, so I started working from home.  First it was a day or two a week, then became nearly all the time.  As time went by Whole Foods changed, and I wasn’t there to see it.  I still got the site-wide emails, but not being in the office regularly put me fundamentally out of the loop, and after a while I was a stranger.

Polycot Office 1.0
Polycot Office 1.0

At Polycot we really wanted to have an office, we had a dream of collaboration, long nights dreaming up great ideas, having those spontaneous conversations that can only occur in person, not over email.  Unfortunately we weren’t all located in the same town, and maintaining an office is an expensive proposition, so we eventually shut it down.  A few years later we re-opened in a sub-leased space at Enspire Learning, and then moved to the final Polycot office.  Working together in the same space was great, but we’d already built a culture between the founders of working remotely, and we were all introverts.  We had some good times at the office, but the culture never gelled like it might have if we’d started there and made it one of our founding principles.  Eventually people moved on, and in the end it was just two of us in the back.  At that point it was easier to work remote, and doing so was pretty much the death-knell for any spontaneously creative projects.

Companies work hard to build their corporate culture.  It’s what separates HP from Apple from IBM from Dell from Microsoft.  When you hire a remote worker, and that worker’s primary communications are through text chat or monthly phone calls, it’s really easy for that worker to just be an anonymous cog in a machine.  Their horizons may only extend to their immediate team, there are no spontaneous interactions with other groups, no hallway conversations that you randomly get sucked into.

I joined HP in 2010, and I’ve always been a remote worker.  Our Austin site for most of that time has been a big data center in a remote part of town, not the kind of place that inspires you to feel like part of a legacy, or inspires you to come up with great, creative ideas.  Our specific team is more than half remote, spread across 4 time zones and two countries, and while that gives us a lot of independence from the corporate bureaucracy and daily commute, I bet if you asked some of the newer folks what it meant to be an HPer, they wouldn’t have an answer.

A month ago my team had a face to face in Fort Collins.  It’s the kind of thing the accountants scream about, flying 20 people in from across the country (and beyond) to sit in a big room for three days.  If you’re going to have spontaneous conversations, though, that’s what you have to do.  If you’re going to dream up new things and get the real value of all the smart people you’ve hired, sometimes you have to put them in the same room.

Fort Collins

At one of our first team face to faces two engineers got together and nearly completely rebuilt a product in an afternoon.  They both had pieces to the puzzle, but neither of them knew it.  If every conversation they had over chat was about today’s deliverables or sprint planning, it never would have happened.

The most valuable thing for me, though, was walking by that photo of the garage on the way to lunch.  Because next to that photo of the garage, in a quiet hallway, was this.

Scanjet

That’s an HP ScanJet IIc, the first color scanner HP made, back in 1991.  It’s signed by the development team, a bunch of people who got together and carried on the tradition of inventing new stuff, the tradition that traces all the way back to the HP 200A Oscillator that Bill Hewlett and Dave Packard built in that Palo Alto garage.

The role of companies is the same as the role of countries and schools and institutions: Beyond their day to day services, they give us a foundation to stand on, a legacy of people behind us, who worked and strived to do the next thing, and do it better.  They cloak us in story, in myth and history, and they inspire us to do the next thing.  The greatest challenge we have going forward, as the panopticon gobbles us up, our tools dehumanize us, and the homogeneity of Facebook smushes us into an ad-targeted paste, is how we maintain that legacy: How we keep telling ourselves that story to inspire us to do more than be a cog in a machine, or a metered metric of lines of code committed.  Because in the end that’s what we want.  We want to be part of the story.

Patently Processed

One of the new experiences I had in 2012 was applying for a patent.  Patents are a hot topic these days, but you don’t always hear the perspective of the people doing the work.  I thought I’d share a little insight into what it’s like to go through the patent application process from the inside.

Continue reading “Patently Processed”

OpenStack Austin February Meetup Videos

Last night was the February OpenStack Austin meetup.  I took my handy little Canon S95 with me to record the proceedings for those of us who couldn’t make it.  Here are the two videos from last night, and a special bonus video from December’s meetup.

Unfortunately the S95 doesn’t handle auto-exposure well with the super-bright projector image, so the camera keeps under and over exposing these videos. Hopefully it won’t be too distracting, maybe next time I’ll bring a camera with more manual control.

First, Matt Ray from OpsCode talked about the history of OpenStack and Chef and the knife tools for managing OpenStack. YouTube Link

Zaid Sawalha from Rackspace talks about how OpenStack Keystone became an incubated OpenStack project, and lessons learned from their experience. YouTube Link

Zaid Sawalha from Rackspace talks about OpenStack Keystone’s implementation and development, plus a little QA. YouTube Link

Bonus! Blake Yeager from HP Cloud talks about Deployment strategies at the December 8th meetup. YouTube Link