A Software Journeyman's guide to being jobless and homeless

@robashton

So you want to be a programmer?

Why?

To make games?

To make people happy?



To make millions of dollars?

So where did we end up?

Obligatory Audience Participation Time

Everybody stand up

Sit down if....

You work too much

You have too many meetings





(definition: meeting) - A practical alternative to work

You don't feel as if you're learning anything


You're planning on quitting in the next six months

 
don't be shy now ;-)

You're bored at work a lot




Those that are left....






Where do you work?
Are you hiring? ;)

My story


The year was 2012


I was working for one of those companies


I was so good at programming that...


I was asked not to code any more



I was doing....

  • 50% meetings
  • 20% politics
  • 30% managing a team
  • 0% building software

So one day....


I rage quit


I left the country


I threw away most of my belongings


I blogged



"I am not looking for a job"

My offer


 You pay to get me to your location
 You find me somewhere to live
I will work on anything you want for free

My rules

Rule #1 - If it's not on my calendar, it isn't happening
Rule #2 - First come first served - make a decision
Rule #3 - I'll bend the rules if you're somewhere warm and sunny

My goals



Build cool stuff


To make new friends


Get a sun-tan



Thus began a journey


ALL THE PLACES

The outer hebrides



A Lithuanian Wedding


Greece


Israel


Hawaii


San Francisco


Eurovision


France


Joined a start-up


Quit a start-up


Learning Clojure



What did I learn?


A year compressed into 45 minutes





Come see me after if you want to 
hear the more lurid details ;)

Lesson one - Coping with Failure

Failure...


Risk mitigation

  • Driving slowly due to adverse conditions
  • Wearing a seat-belt
  • Paid up-front to remove the insurance excess

Moving on

"Can I have a new car please?"


Car crash software

  • Most software mistakes aren't as bad as a car crash...

  • So why do we end up afraid of making mistakes?
    • Blame culture
    • Fear of failure
    • Fear of the cost

Tests are a good seatbelt



Short iterations make for a good insurance policy



 

Responding to failure with "what's next?"


Lesson two - It's not the Platform

The .NET Framework


"I just don't know what went wrong"

A tale of two clients


Working for Ayende Rahien



Working for Truthvine









We shipped a lot of code



We shipped a start-up


We wrote all the features for a major release of RavenDB


We delivered


.NET was never the problem



The problems were?


Bad tooling
Low trust enviroments
Bad management practises
Poor shipping mentality

In other words......

Enterprise!!

Lesson three - Learning is possible

The agile Greeks


"I've no idea who you are"

But an extra pair of hands wouldn't hurt

IN THE CALENDAR WE GO


Oh you're getting  on a plane?


Do you know what we do?

You might want to read this PHD thesis

Confronted with a challenge



PathSegment = 
      '/'
      ResourceName:resource
      (
        ("(" Number:key ")")?
        (
          (seq("/$links") PathSegment:link)
        | PathSegment: next
        )?
      ) -> { resource: resource, key: key, link: link, property: next }
,


9 days to ship a feature in an esoteric language?

A breakdown of time spent

20% staring at a screen feeling stupid
20% in a rum bar weeping into my glass
5% writing a "hello world"  learning exercise
30% days flinging code manically
25% writing blog entries about this

Shipped it

(with caveats)


Ashton's law


Given a concrete feature and enough rum, we can ship and learn at the same time.



We are not .NET developers, PHP developers or Java developers, we are Developers.

Lesson four - Excess Baggage



23 kg



Attempt #1

Clothing
Toothbrush
Coffee beans
Coffee grinder
Coffee pot
Minimal technology

Attempt #2

  • 2 pairs of trousers, a week of underwear, 10 t-shirts
  • Mac-book Air running Debian for EVERYTHING
  • Windows laptop for Visual Studio :(
  • iPad for "entertainment"
  • Lots of cables for all my things

It was like that for the whole year

Things I miss


My xbox
My giant beansack

GRAND THEFT AUTO 5 IS OUT AND I CANNOT PLAY IT YOU GUYS

All that stuff? You don't need it




Except GTA 5 - we need that

Lesson five - Having fun

I have worked very hard but...



For a change this year I decided to drop work occasionally

Sports



Tourism



Making new friends


Drinking




Work might be 50% of your life


But LIFE is the other half


Of course, mixing the two never hurt


Lesson six - People are Amazing


After the car crash....


Ambling through Greece


Walking in Hawaii


The unsuspecting parents

People are basically cool


Lesson seven - We're never stuck

No, we can't all...


  1. Throw away everything we own
  2. Quit our jobs
  3. Travel the world and work for free

But we can....


Get better jobs
Improve our current jobs
Look towards life outside of work for fulfilment

How?


Pick something new and learn it
Write about what you learned
Talk about what you learned
Diversify

Use this to show new employers how awesome you are

No, you don't have to be an expert




You can always change it up


Next up...

Rum.



A Software JourneyMan's guide to being jobless and homeless

By Rob Ashton

A Software JourneyMan's guide to being jobless and homeless

  • 2,545