Skip to content

A respectful hiring process

I have been on both sides of the hiring equation.  I’ve been the one dressing up slightly nicer than usual, google mapping directions to a strange place, and nervously arriving ten minutes early. I’ve also been the one doing phone screens, trying to fit interviewing into a packed schedule, providing resumes to other team members for review, and making the call on which of two candidates would serve my organization better. (Thankfully, I haven’t had to fire anyone yet.)

Hiring is not easy, for either party. That’s why I think a respectful hiring process is so important. What are key components of such a process?

From the employers perspective:

  • Be honest. Be as clear as you can about the job and the expectations around the job. Comp is hard to be totally clear about because there’s always a dance around this, but levels of comp can be pretty clearly stated in the job req (entry/junior/mid/senior)–which means you have to do the research for appropriate comp levels to fit your budget.
  • Have compassion. Remember what it is like to be on the other side of that call or table.
  • Keep track of all your applicants in a database (even just a issue tracker). This will allow you to make sure you don’t lose track of anyone (or their documents) and know where everyone is in the process. As a plus, I’ve also mined this database when other openings come up.
  • Set deadlines for yourself, and tell applicants about them. Far too often, once the process starts, communication comes it fits and starts. Setting deadlines forces you to communicate at expected times (even if the communication is just ‘we have to move the previously stated deadlines’, it is still welcome).
  • When an applicant isn’t a good fit (for whatever reason), or the position goes away, tell the applicant as soon as possible.

From the applicant’s perspective:

  • Only apply for jobs that you fit the requirements for, or at least most of them. Applications that clearly meet only one or none of the requirements are a waste of everyone’s time.
  • Be honest.
  • In an interview, when you don’t know, say you don’t know, but also say how you’d try to figure it out.
  • Realize that this isn’t just an interview, it’s a chance to make a connection. I’ve connected people who didn’t quite fit my requirements with other employers, and asked people I’ve interviewed with for technical advice. Treat the interview process as one stroke in a broader picture, rather than a test to be passed.

I’m sure I missed something–any other suggestions to make the hiring process more humane?

Testing time dependent kettle transformations

Testing transformations that depend on the date will often be required when you only want to process new data, or if you want to treat events that happened in the past differently depending on how long ago they occurred.

I have handled the time dimension in one of two ways.

The first is to have a SQL statement that is pulled in via a ‘Get Variables’ step.  This statement is then executed.  For the production job, the statement simply pulls the current date from the database: ‘select curdate()‘ for mysql.  For testing, the statement returns some known date: ‘select str_to_date(‘2012-05-27′,’%Y-%m-%d’)‘ for mysql.

The benefit to this is that you can make this SQL call in your transformation, and everything stays tidily in there.  The disadvantage is that you’re making another database call and mostly just for testing purposes.

The second is just to have a variable that is set previously in the job and is passed in to a transformation as a named parameter.  This date can be pulled from a file (for test), or using the ‘Get System Info’ step, or a database lookup (for production).  The benefit to this is that you aren’t necessarily making another database call and it is more understandable.  I can’t think of any downside, so this is my recommended method.

After this setup is done, you can pivot your test data around the hardcoded test date.  For example, if your data should change state one year after insertion, you can set the date in your input data rows to 364, 365 and 366 days from your test date.  This kind of condition testing ensures that when the logic changes (you should change state two years after insertion), your test will fail, and you will know about the issue before your users do.

This is content from my email newsletter about Pentaho Kettle Testing. To receive similar emails in your inbox, sign up below.

Signup for my infrequent emails about pentaho testing.

Switching wordpress themes…

After many moons (almost 7 years), I switched up my theme to a more modern (thought still stark) one.


  • The older theme was borked in a couple of ways that I couldn’t be bothered to investigate.
  • I wanted something that was more responsive and a better experience for mobile users (only 6% of my traffic in 2013 is mobile, and I’m hoping to increase that).
  • Sometimes it’s just time for a change.

So, I hope you enjoy the new theme.  Same dorky content, new dorky look!

Older versions of Sinon.js don’t work with jquery 2.0

This is a quick hit, hopefully to help someone avoid spending the half day I just did.

The older versions of sinon.js, a helpful javascript testing tool which lets you mock up and stub out objects, do not work with jquery 2.0.  Even though 2.0 is API compatible with the 1.x series, apparently some different stuff happens under the covers.  This is an issue for me because a few months ago, I followed these instructions to set up our testing infrastructure, and used sinon.js version 1.4.2.  That worked fine with jquery 1.8.2, but when I upgraded everything, tests where I mocked up server calls failed–the backbone model’s parse method was never called.

The answer?  Use at least version 1.7.1 of sinon.js.

An open letter to Robert Reich about BDNT

Hi Robert,

I attended another BDNT on June 4, as I do every quarter or two.  You asked some questions tonight of the community that I think deserve a more measured response than I could muster yelling out in the auditorium.  Questions like: why do you come here?  What does the future of BDNT look like?  Jeez, won’t anyone volunteer to take video?  How can we leverage all the great people at BDNT during the time when we aren’t all in the same room?

First, I want to thank you, Robert, and all the many volunteers and sponsors of BDNT that make it possible.  I have been to a number of them, presented at two, and know some of the volunteers.  I can’t say I’ve met friends there, but it is a great place to go with existing friends to get pumped up about the Colorado tech scene, and new technology in general.

BDNT is, and has currently been, a fantastic presentation venue and gathering place for local tech community.  The focus has always been on building community and helping presenters (and their companies) get better (check out the second to last question on the ‘submit a presentation’ form).

I see two major BDNT constituencies: fly by nighters and regulars.  I’m a fly by nighter–I won’t attend when I get busy or BDNT falls off my radar, so I make it about 2-4 times a year.  Beyond speaking and attending, I have posted a few jobs on the job board, some reviews on my blog, some tweets, and exchanged some cards and some emails from people I’ve met there, but that’s been the limit of my involvement.

The quality and diversity of the presentations is BDNT’s biggest strength–the five minute format and enforced time limits (as well as the coaching) make presentations so tight.  And if a snoozer slides in, the audience only waits for five minutes.  Therefore, BDNT is a quality, time efficient event where I can check on the pulse of the tech community (is technology XXX going to be big?  how many jobs were mentioned for technology YYY?).

Because the presentations are so important, the biggest service BDNT could provide to us fly by nighters is to video tape the presentations.  I understand, Robert, that BDNT is a shoestring operation and that video takes time and money.  I don’t know exactly how to tackle that–two ideas that jump to mind are: ask a local video production company for sponsorship (People Productions jumps to mind) or set up an ipad and share to youtube, and provide cheaper, lower quality video.

As for the regulars, I don’t have the faintest idea of what they need.  Robert, you or the other volunteers probably do–they reach out to you with requests for features, help, etc.  So, I’ll have to rely on you to guide BDNT to serve their needs.

A caution: please don’t turn BDNT into another local, professional social network.  I already have too many ‘networks’.  I also fear that BDNT doesn’t have the mass to avoid being a ghost town.  (How many of those 10k members have only been to one meetup?  how many people who are not recruiters post to the message boards?)  We have all seen digital ghost towns before and they aren’t much fun to be around.  And I don’t want another place to keep a profile up to date–please ask to pull from LinkedIn and StackOverflow all you want, but please don’t make me fill out another skills list.  (I just joined the BDNT LinkedIn group (well, I applied for permission to join) because that’s the right place to do professional social networking.)

I will say that I’ve enjoyed the various experiments I’ve been a part of through BDNT (e.g, the twitter backplane, the non profit hack fest, the map of tech in Colorado).  Robert, if you want to experiment with a social network because of what the regulars or your gut is saying, do so!  Just don’t be surprised if us fly by nighters don’t really participate.  But whatever you do, please don’t stop experimenting.

It is worth asking how BDNT could be better, but, Robert, don’t forget that being ‘only’ the premier technology meetup in Colorado and a place where many many people come to check in on the tech community, present ideas, meet peers, and learn is quite an achievement.  Ask Ignite and Toastmasters about being ‘just’ a successful presentation organization–it is a success in this world of infinite opportunity and limited attention.

Bask in the glory of creating a successful community.

Finally, for everyone who wasn’t there, some fun facts from the June 4 2013 BDNT:

  • The unemployment rate for software engineers in the USA is 0.2%
  • The New Tech Meetup site code is available on github (no license I could see, however)
  • There was a really cool robot company (Taleus Robotics?  I couldn’t find a website for them) that is selling the computer needed to drive robotics for $299 that will expose servos and motors as linux devices.

Gardening and software development

It’s the end of spring/early summer in the northern hemisphere, so it’s time to plan the vegetable garden again. I was putting some tomatoes in the other day and musing about the similarities between gardening and software development. To wit:

  • I have a lot of hesitancy about planting–especially perennials.  It feels so permanent, and I might screw things up, and maybe I should go back to the drawing board, or maybe just do it next weekend….  But just starting makes the problem so much easier–it loses its weight.  Your garden will never be perfect, but an imperfect garden is 100% better than no garden.  Similarly, when confronted with a new project or feature, half the battle is just starting.
  • You will have ample opportunity to make mistakes in both gardening and software development, so feel free to learn from them.  I don’t know where I heard it, but “it’s fine to make mistakes, just try not to make the same ones.”
  • Automate, automate, automate.  The more you can rely on machinery to free you from the drudge of gardening, the more you can rest assured that you will have a great crop.  Similarly, the more you can rely on automated testing and scripts, the more complex you can make systems, and the more freely you can change them.
  • Trying something different is fun.  I planted artichokes this year.  I also played around with easyrec.  I can’t speak for the artichokes yet, but exploring a new tool was interesting and fun.  Look up from your code once and a while and visit hackernews (thanks to Jeff Beard for turning me on to that resource) to find something new to learn about.

I think that many software developers are obsessed with passive income, but I think that gardening is the original passive income stream–food grown for you while you are doing something else!