Scaring off users

Node.js is a platform built on Chrome’s JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.

I mean, it all makes sense but gosh, that’s quite buzzwordy. They might as well say “we really don’t want beginners around these parts”. It’s just Javascript and many of those people being put off would do just fine.

No, I don’t have code to show you

Whilst looking for a new job recently a question I’ve been asked by a few companies now is “do you have any projects you could show us, so we can get a taste of what kind of code you produce?”

The problem is I actually don’t. I’ve got quite a few projects from before I started my last full time position, but a year and a half later that code looks stale. Definitely looks like Shane-from-two-years-ago wrote it; you can tell from the mixed coding standards, the lack of tests, the database-as-a-singleton-passed-around-global-but-sometimes-by-reference usage. It’s not something I want to show employers.

This happened because I never carved out enough time to work on my own projects. There was always more actual work to be done – work I was being paid for. So if I was feeling in a programming mood, I’d carry on working on that, staying at work a few hours later than needed. I stopped seeing the value in working on my own projects.

Now that’s coming back to bite me.

It’s fine for employers to ask to see code examples. Why give someone tens of thousands of pounds a year, invest all that time in them, and trust them with your company, when you’re not entirely sure if they’re just bluffing their way through interviews.

Fortunately, I’ve found there’s a number of ways around this issue.

One company asked me to spend a while working on logic problems. They were fun little tasks actually. Mentally challenging enough to keep me interested, whilst actually showing the employer that I can think myself out of a problem. There was no stress in this situation. “I’ll be your compiler,” the interviewer said, handing me a pen and paper, “and this is your IDE.” The point was he wasn’t looking for syntax correctness – anyone can learn that – he was just trying to find out that I know how to think about logical issues.

A second company, asked me to work on a small project for them. I spent eight hours or so on this problem. I’m certain they weren’t even expecting that much. But I did it because it was fun. Again, they were just looking to see how I go about finding a solution to a tricky problem.

So, it’s not incredibly important to have a bursting GitHub profile. But it would have been easier if I had. Who knows how many companies might not bother responding to my CV because of my dull GitHub activity.

Medium: Coding in color

I like this very much. Use syntax highlighting to flag similar variables, rather than keywords (because who cares?). It’s talked about on Medium.

Taken from: https://medium.com/p/3a6db2743a1e/

Taken from: https://medium.com/p/3a6db2743a1e/

I was just thinking about how I use syntax highlighting, and it’s really only to break up the words.

Some syntax highlighting

This is what my syntax highlighting looks like in vim. (peachpuff colour scheme.)

It’s not particularly useful. All I use it for is breaking up the line so it’s not so hard to read. There’s clear separations between variables and method names. Purple doesn’t mean anything special – it’s used in a few spaces. It’s used for the “function” keyword, and brackets. They’ve nothing in common. They’re not helping me be a better programming.

But make $user always orangered and $document always green and suddenly I’ve got an intelligent flag that I’ve spelt something wrong.

What should go in my CV?

My situation probably isn’t all that rare. Since graduating university I’ve had only two jobs. This means I can’t show off a long list of roles, and how I was valuable in each one. That’d be a pretty short CV.

MyBuilder, June 2012 – January 2014

  • Was a key part of the team that migrated project to Symfony2
  • Designed and implemented voucher code system
  • Wrote hundreds of unit tests to ensure easy maintenance, now and in the future

BEA Solutions, June 2010 – June 2011

  • Wrote stock management system, for companies to track and sell stock
  • Integrated this with a custom e-commerce system
  • Created customer management portal

And it’s really boring.

Instead, I like to tell much more of a story. I have a tone in my writing which I know some people like. And surely I want to be working with people who enjoy the way I write? They’ll be reading an awful lot of my writing, so we best start off with it up front.

I really feel like this shows more about me than the above version.

MyBuilder.com – Software Engineer June 2012 – January 2014

Symfony2, intensive refactoring, Postgres, Varnish, TDD, DDD, JavaScript.

I joined MyBuilder just as they were migrating from Symfony 1.4 to Symfony2. So I was a core part of the team that rewrote the application from the ground up; Symfony2 and MVC architecture is second nature now.

Refactoring overly complex code was a key responsibility for me, and making a 200 line controller into a 5 line controller wouldn’t be possible without the hundreds tests I’d written.

As a true startup, MyBuilder allowed me to touch other areas of the business when I felt I could be of help. In my time there, I’ve helped with marketing activities, recruiting, product design, and leading a small project or two.

I entered this position as a junior developer, but definitely left with a wealth of experience with teams, project management, and most important being a cleaner coder.

It’s a good bit longer (which many people would see as a negative), but surely that shows a lot more about my personality. That’s what I want an employer to care about most. I’ve managed to get across where my experience lies, but also that I’m passionate. The last paragraph is pragmatically useless, it’s only there because it adds a bit of my personality and how much I care about progression.

I feel like there should be a ‘In my spare time’ section, but I’m not sure what to put in there. I’ve seen job advertisements saying "please don’t bother sending us you’re CV if you’ve written ‘I like going to the cinema’." But I do like going to the cinema! And I’m quite passionate about other mediocre things too: reading, podcasts, board games, photography. If employers look down on those things, I may as well just miss out that subject entirely.

So, I guess that’s my CV.

Personal blog of Shane Preece. Occasional tech minddump.