March 3, 2016

Software developers and engineers get bombarded with job opportunities.

These would be great, except we are usually happily employed. I've tried many times in the past to offer that I could work part time. That I could augment their abilities and offer up good work for less overhead.

Nearly everytime I've been told thanks, but no thanks.

Yummy coffee and programming

Many companies could benefit from augmenting their abilities with part-time workers. The ones that tend to support part-time contract work are boutique shops and consulting proxies.

I've never had any success securing part-time and offsite work for dedicated product shops unless I have had a prior relationship with them. This is even while development shops are seemingly desperate to secure talent.

Why the aversion

There is typically a big aversion to hiring someone not full-time. It usually amounts to something about how someone who isn't there with the team won't have the same insights and won't be as productive. I can also imagine that it could amount to not wanting to deal with special cases. I can also imagine it could amount to not having the infrastructure to support workers not on company controlled laptops.

Why are part time workers cheaper

If we boil it down to how much somebody would cost it might clear some things up. Part time workers cost a lot less than full time workers.

The obvious reasons are that they are hourly and you don't have to deal with their overhead. You just pay them for the hours they put in. There are no benefits to pay for, no need to purchase them a computer, and no need to rent out the space for a dedicated desk.

Why could part time workers be less effective

As we mentioned earlier, the fact that they are constantly onsite with the rest of your staff means that they won't be getting bombarded with information relevant to your problems at the same rate.

If your process can't support part-time remote workers there will be a lot of duplicated communication. This may result in an opportunity cost because you're wasting time re-hashing the same points over and over.

Weigh the potential benefits and consequences

Don't just default to "NO".

There is a lot to be said for having a culture and process that is remote-first even if you don't hire remote workers. Your communications and planning are transparent and searchable. People need to be accountable for what they say they'll do. There is less duplicated communication because you have central sources of knowledge.

As with anything else, there should be a constant evaluation.

  • Does this make sense for us?
  • Is this person very good at what they do?
  • How badly do I need talent?
  • Can we support communicating with someone in a part-time and remote capacity?
  • Is there risk associated with hiring a person part time?

The last question really gets me thinking sometimes... It would be so easy to just experiment with part time workers. By the very nature of part-time work, there is little commitment on either side. You could try something out for a month or less. If you don't like it, you cut the cord and if you do, HOORAY.

Open up your options

Don't be too strict. People don't usually make names for themselves with business as usual.


February 2, 2016

I finally decided that I would like to have markdown rendering for my stinky little custom blog engine.

This article is my first one in markdown. The first guinea pig is an article about supporting markdown!

Anyways, it was incredibly easy to do.

The NuGet Package

I installed the CommonMark.NET nuget package into my project.

Then I put in a coalesce operator to grab the content and process the markdown if the html content doesn't already exist.

The Code

    public string GetBlogContent(string name)
        var metadatum = GetOrderedBlogMetadata();
        var metadata = metadatum.Single(i => i.Name == name);
        var blogDirectory = FilePath("~/blogs/" + metadata.Published.Year + "/");
        var potentialEntry = blogDirectory + "\\" + name;
        var content = 
            ?? GetMarkdownContent(potentialEntry);
        return content;
    private static string GetHtmlContent(string pathWithoutExtension)
        var filePath = pathWithoutExtension + ".html";
        if (File.Exists(filePath))
            return File.ReadAllText(filePath);
        return null;
    private static string GetMarkdownContent(string pathWithoutExtension)
        var filePath = pathWithoutExtension + ".md";
        if (File.Exists(filePath))
            var markdown = File.ReadAllText(filePath);
            var html = CommonMark.CommonMarkConverter.Convert(markdown);
            return html;
        return null;

Check it out

This is the github repository for the CommonMark.NET project.

See? Easy stuff! Until next time, be well!