Senior Jack-Or-Jill-Of-All-Trades Software Engineer

Full Time | Remote
Posted Nov 2, 2016
This is a remote position.

We already have people in California, Illinois, Germany, France and Italy, so we tend to favor people in those locations.

Since the job involves working both with our Californian and European crews, we think Illinois is the preferred location for this job.

We will consider candidates in other locations as well, as long as you can convince us that you'll be able to work effectively both with CET and PST time zones for an extended period of time.

The Backstory
Hi. My name is Peldi. I am 40 years old, and have been programming since I was 12. I was a professional programmer for about 16 years (first for my father's company, then at Macromedia and Adobe), then in 2008, at age 32, I decided to start my own company (Balsamiq).

I thought I could go on programming while being a first-time solo-founding bootstrapping entrepreneur.

At first it worked. But the product was very successful right away, and there was just too much to do. I had to hire people, and delegate chunks of my programming tasks to people better than me. This was not easy to do, programming was just so much fun, and what I was good at. Being a CEO was hard and boring, so I did it in my spare time.

Fast forward to today: the company is 8 years old, we're doing extremely well (and growing), we have 21 people and are hiring about 2-4 new people a year.

I have finally accepted that I shouldn't write any more code for Balsamiq Mockups (I am getting rusty), but I still find myself writing code for whomever in the company needs it. It's usually little scripts for the website or quick internal tools to make us more efficient.

I love helping others, and this was something that has allowed me to do that. I got to learn and use a lot of different technologies, which I also love. Even though the projects are fairly quick, this is another task that I need to delegate. I need to focus on growing as a CEO.

That's where you come in.

The Work
You may be thinking to yourself: this sounds interesting, but is it enough work for a full-time position? - and you'd be right, it's not at the moment.

That's why we'd also give you ownership of Olio, our home-grown CRM / license generation / e-commerce back-end application. It's a kick-ass web app that powers our business (Olio is Italian for "oil", which makes our engine run smoothly). It handles over 10,000 transactions a month. While it's a core piece of our solid backend, it's been a "second project" for us. It deserves a dedicated developer. Someone who will care for it and help it grow.

Olio will probably be around 1/3 to 1/2 of your time. Helping our team with whatever technical need they have would be the rest.

Here's a few examples of the kinds of problems you would be asked to solve. They are all real projects I've done recently:

  • fix a bug on our online buy page (I did this in React)
  • parse a spreadsheet and spit out a CSV with additional columns containing calculations based on the input values (I did this in php)
  • parse a CSV file and send out a different email to each record, based on different templates (I did this in php)
  • integrate the Swiftype APIs in our websites (I did this in React)
  • make a new online form that creates Atlassian Confluence wiki pages (this was React on the client + Node.js code deployed on AWS Lambda)
  • make a new "contact us" form that integrates with (again, React + Node + Lambda)
  • fix a Jenkins job configuration and write a new one
  • write the release notes for our latest product release
  • bring documents from the wiki to markdown for people who don't know how / teach people how (I used an online tool and cleaned it up manually)
  • rebuild our Mockups To Go website in React (together with our designer)
  • write a gulp / webpack module to combine a series of markdown files into a single PDF (after converting them to HTML)
  • set up Grasshopper and train our team on how to use it
  • work with Atlassian Support to figure out why our wiki is slow sometimes
  • deal with an AWS fire with AWS support at 1am (this happens very rarely, but I'm always on call)
  • be a sounding board for a developer working on a new piece of software architecture
  • code-review every check-in (after the fact) for a project that needs an extra set of eyes for a while
  • set up DMARC / DKIM for our domains
  • review the UX of a new feature with a colleague before showing it to the rest of the team
  • help a staff member with her computer issues

I realize this list might scare a bunch of people away. If instead you're feeling incredibly excited, please read on.

We're clearly looking for a generalist. Someone with TONS of experience doing all sorts of different programming jobs: client, server, ops, testing, security...

But that's not all: we are looking for someone who loves helping others with their programming challenges.

So, to summarize your skills, we are looking for someone who:

  • is able to work effectively both with CET and PST time zones (see "Location" above)
  • has an extreme breadth of knowledge and experience (front-end to backend to ops)
  • is extremely good at context switching, self-motivating and prioritizing their work
  • is patient, empathetic
  • has great communication skills
  • has a "nothing is beneath me" attitude
  • values getting stuff done way more than chasing the next shiny thing
  • has nothing to prove, happy to do "whatever is needed", doesn't have ambitions to change jobs after a few months
  • is quick and highly productive
  • values "solid" over "fancy"
  • values "shipped" over "perfect"
  • has the ability to learn any programming language "just enough to do the job" quickly
  • ideally has experience developing and running a web app on their own

The Work Environment
We talk about the pros and cons of working at Balsamiq on the Working at Balsamiq page. In short, you'll get to work for a solid company with good values and good, smart people, but without the bureaucracy and internal politics of a large company. For those looking for it, we're a great place to have a second slower, wiser career. ;)

Do you exist? We think you do. We want to believe you do. The fact that this I'm a Boring Programmer blog post has so many comments on it makes us hopeful. If you think I'm being foolish, or that we need more than one person to fill this role, please email me at peldi@balsamiq.comand tell me how wrong I am.

If instead you feel like we wrote this post with you in mind, please fill out the application at

How to Apply