I’ve resolved this year to work as a developer-for-hire / contractor / sole-trader / mercenary developer wizard. This decision came after what was frankly an unmitigated disaster of a year-and-a-bit with two redundancies in a row topped off with being fired. Thanks, 2020. Go fuck yourself.
As a “mercenary developer wizard”, I talk to people, we agree to work together for a period of time, we do the work, we make sure everyone’s happy with the work, then they pay me money. Sometimes I’ll tweet the odd rant about how Rails is bad, even though it pays all my bills. It’s a neat arrangement.
Recently, I’ve had to start looking for work again, this time due to a contract wrapping up. No, I wasn’t fired this time. We just had a discussion and decided we did almost everything we set out to do together. Amicable!
It’s a sellers’ market out there at the moment. I have joked in the past while working on the 10th floor of an office building that I could sit at my desk, tweet that I was looking for work, and by the time I was out the front door of the lobby I’d have at least one offer. While this hasn’t yet played out in truth, it’s a bit like that. Fastest “lead time” to being approached for a job was 28 minutes after an initial message.
So I started my hunt about 2 weeks ago, putting messages out on Twitter, Linked In, and three local Australian Developer Slack groups.
Hello! I’m looking for my next contract starting after May 7th. Remote only, based in Warrnambool. Can code React / TypeScript / CSS / Ruby / Elixir, etc. ~15 years experience. I care about reliable software, up-skilling the team that I join, and leaving things better than I how I found them.
There’s a bit more history here: https://ryanbigg.com/work.
Happy to talk in DM or via email: email@example.com
Within those 2-and-a-bit weeks, I received 12 offers for future contracts.
See? Sellers’ market.
Having no particular allegiance to an industry makes it particularly hard to choose where to go next. However, there’s some places I could exclude right off the bat by using a list I have written up:
- Cryptocurrency - Fancy ponzi scheme that does nothing good for the world
- Advertising / marketing — slimy.
- Betting / Gambling — I don’t like gaming other people’s addictive behaviours.
- Smoking / Vaping — I find smoking in all forms extremely anti-social.
- Real Estate - I’ve had enough dealings with real estate agents, thank you.
- Working on an entire team with people like me (white, straight, male)
While that helped to cull some of the list, I was still left with about 7.
What happens next is that reply with a standard professional “no thanks” to those who I’ve “culled”, even though my heart wants to say things like “AW HELL NAH” and “not in a million years, bucko”. Best to reply professionally and they go on their merry way than to start a fight with some internet stranger.
So then what I need to do is actually talk to people. If you’re a developer and you’re reading this you might have just had a cold shiver. I know, I know. Talking to people. Over the phone. EWWW. Part of doing business as a consultant. Must be done. Like the washing up and flossing your teeth.
What I find out here is a few things:
- Are you okay with me working only 4 days a week?
- Are you okay with me working remotely from Warrnambool, Victoria?
- Are you okay with me not being able to come into your office, ever?
- What’s the project?
- How is it helping to improve the world?
- What’s the potential duration of our engagement?
- How big is the team?
- Who’s on the team? What’s the mix of seniority?
- What’s the tech stack look like?
- How’s the code deployed to production?
- How’s the work managed / triaged / approved?
- (And if I’m feeling cheeky) What’s hard about working there?
The first 3 questions here are big deal-breakers. I enjoy spending a day of my week free to do writing and chores and then spending the weekend doing things with my family. The Warrnambool thing is… well, it’s where I live. And commuting ever into an office is a dealbreaker as I’m solo-parenting a 4-year-old, 4-days-a-week and I need to be there for kindergarten drop-off in the morning and pickup in the evening. I really don’t think she’ll want to be waiting for daddy’s train to get back at 10pm at night, do you?
These initial questions were not okay for some clients, and them’s the breaks. Some people want full-time, some people want hybrid-remote. That’s okay, we can talk about it and say “not yet” and go no further.
This time around I’ve put a bit of an emphasis on the team composition + size, as I want to spend more time working with more people than I have done thus far for my contracting gig. A bigger team “ranked higher” in my scoring for this round.
The tech stack / deployment questions give me a bit of data which I like to think of similar to a Kardashev Scale. Things I look for here are:
- Card kickoffs
- Software used for tracking work (ala Jira / Trello / etc.)
- Retrospective frequency
- Sprint duration
- How is tech debt prioritised?
- Is there one shared staging environment, or can you deploy a pull request to its own staging environment?
- Is there more than one frontend framework at play?
This information gives me an idea of how (dys)functional things are currently, and gives me a good idea of where I could potentially help to improve things. Every tech company is dysfunctional at something, and so I try and drag it out of people during the interview phase first, before I find out about it while working there. Because I will find out.
All of this above information goes into a huge database (read: cyclone) in my brain and mixes around in there for days on end.
In particularly this time around I’m looking for:
- A team larger than 2.
- Comprised of a mix of skill levels (because there’s some training opportunities there!)
- A team that can rely on each other to get things done, and relies on each others’ skills
- Solving a real-world, real-human problem (not fucking cryptocurrency)
- A tech stack that’s cared for and maintained
Ultimately, this helped it narrow it down from 7 to 1.
Then I spent more time thinking about it by asking myself questions like:
- Would I feel proud to have worked here after 3-6 months?
- Would I want to continue working here after that time, if it was offered?
- If I told people what I was working on, would it matter to them? Would they see the utility of it?
And that really helped me make the final decision and to know that this was the right decision to make.
So on May 10th, I’ll start working at a new gig, still writing Rails (and tweeting about it) and some TypeScript / React for the next 3 months, working on a mid-sized team, helping everyone get to where we need to be. And possibly longer than that!