So yet again, I spent time battling a legacy perl code base with no tests, no Jenkins/Bamboo, no deployment pipeline and half an agile process.
Now I get to do battle with recruiters again, something that fills my life with joy and purpose.
I thought I’d put my thoughts down as to what I’m looking for in a job.
First up, contract or permanent? That’s easy. I’ve been contracting for 18 years and I don’t see that changing UNLESS you have a really juicy CTO role on offer. More of that later. I think it’s just largely temperament. I like to have an independent, outside view, trying not to get absorbed in the local cargo cult. So there are two things I do.
Senior Perl developer.
My career can be best described as “careering from one thing to another”. If I’d had any sense, or career direction, or a mentor, I’d have stayed much more firmly in the CTO field. I’ve flirted with many startups over the years, but none have actually stuck. So what am I looking for in a perl gig? Here goes:
- A modern framework. Give me Catalyst preferably, a framework standing on the shoulders of giants. Dancer or Mojolicious would work as well. Template Toolkit is the ideal templater.
- Tests. It should be obvious, but often isn’t. If you write code without tests your code is immediately legacy.
- A sane database schema. One that MySQL Workbench can reverse engineer into a pretty diagram. An ORM. There’s little point these days hard-coding SQL. That’s so passé. Give me DBIx::Class.
- A well-run Agile process. I got my Scrum master certification and now “doing agile” as opposed to “being agile” brings me out in a rash. One purpose of agile is to get better and unless you do that, you’re not agile. Just standups and sprint planning don’t cut it.
- Javascript I can take or leave, but it’s a given these days. I can do it but I’ll hate myself afterwards.
- Don’t talk to me about web servers. Not my problem any more.
- I want support infrastructure that’ been there since the beginning. That means Perl::Critic and perltidy. Pretty, clean code please.
- Please let me please talk to REST APIs, none of that SOAP rubbish.
CTO
I’ve been a CTO. And interim a few times. Obviously I’d do it all completely differently this time, knowing what I know now.
- Let me grow the team. I’ve had amazing luck in the past picking great teams. Indeed, a team that largely didn’t know perl and then became experts. I’ve also been involved in a firing. We’re still friends.
- Let’s have all the tools we need: Atlassian (or equivalent) stack or integrated equivalent.
- I want to buy in a good Agile coach for a few months to get us on the right track.
- I want to manage upwards well. Demo the important stuff to the other directors and management at the end of every sprint. Respond to the business.
- If you’re good, you can work from home. This is the 21st Century. Being forced to turn up to an office is one of my bugbears. You don’t need my physical presence. Skype and Slack will do the job.
- Give me something exciting to lead. Not sure I could cope with another publisher web site.
- Let me speak at conferences. Yes, I know I’m a straight, white male. It’s a burden. But I AM left handed! I’m a minority! It’s good for the company visibility.
And probably stacks more.
As an aside, any good personal projects worth chipping in to right now?
You sound like a total asshole to work with FYI
Not unheard of. Especially if the environment is abusive.