Did you know we’re hiring? LiquidPlanner is looking for a Software Development Engineer, but instead of just posting a job ad online, we thought – what better way to advertise the position than to have one of our current developers tell you why he loves his job? We’ll just let Mark take it from here:
Looking down at the calendar, I’ve been writing software professionally for 11 years now, the last of which being here at LiquidPlanner. I can honestly say that the past 365 days have been the most fulfilling of my career. Let me warn you now: this blog post is not about LiquidPlanner features, our new Android app, or project management – well, not directly anyway. Instead, I’m going to share with you four reasons why I love my job. Let’s dive right in!
1. LiquidPlanner has a culture of shipping quality.
Our development team is currently working on its eighth sprint since I’ve been here. These sprints have evolved the product in visible ways, including an UI overhaul, a multitude of new features, and updated backend architectures.
As a developer at LiquidPlanner, I’ve hit the ground running from Day One. Through the magic of Git, I can see that within the past year, I have 1404 commits. Some of my favorite commits have involved implementing a background job queue with Resque and Redis, used on more than a few LiquidPlanner features.
The LiquidPlanner development team has a strong culture in test-driven development that helps make “hitting the ground running” effective. One aspect of this is our post-commit hook that runs the suite of all our automated functional and unit tests, which means running approximately 3500 tests, and 32,000 assertions on a shared server after every commit. When you break the build, everybody knows it. We’re very cognizant of:
- Trying to NOT break the build (crazy, right?)
- Fixing it ASAP when things do go awry
The results of our tests are attached to our commits, and show up in the homepage of our LiquidPlanner workspace for all to see.
Besides the test automation, we eat our own dogfood, so to speak. We use LiquidPlanner to manage and collaborate on our own sprints. This not only helps shape an understanding of the product, but increases our chances of finding bugs before customers do. Before our releases get deployed, they’ve been baking on our own internal servers from the first day of the sprint. Everybody in the company – Development, Marketing, Sales, and Support – works off the internal build of the product, and tests it before it goes live.
2. We develop with great technologies in a pragmatic manner.
An exciting aspect about being a developer at a startup is that we wear many different hats. For the web app, we have our hands in Ruby, Rails, jQuery, PostgreSQL, Redis, and we run on Linux. Each dev has their strength as an individual, and we all write code that touches many of these different pieces. We even take turns acting as Operations Support, gaining exposure to tools like Nagios, Puppet, Munin and Monit. LiquidPlanner has an iOS app and a recently released Android app that both hit the LiquidPlanner API. Sidenote: I recently updated our LiquidPlanner rubygem that wraps our API, and you should take a 5 minute break and ‘$ gem install liquidplanner’. It’s awesome!
We always consider the latest, greatest, and newest technologies, but these decisions are made in a pragmatic way. Just because it’s a new and ‘buzzworthy’ technology does not necessarily always mean it’s the best decision for us to fully embrace it. It’s rewarding to observe and participate in these decisions.
3. LiquidPlanner has a great stakeholder culture.
LiquidPlanner has the best stakeholder culture that I’ve ever experienced.
Our meetings are few and far between compared to most companies I’ve worked at, and are tightly focused and concentrated (most of the time!). This is not a company of nodding heads. We all have disagreements at times, but because individuals are stakeholders, those differing points of view arise with the best interests at heart. Our discussions are in the context of making the product better, helping to keep many product concerns in check.
The devs here are recording video tutorials at night and on the weekend and committing code at a variety of times during the day and week – all because it’s their passion. The focus is on the work, which is a great vibe to be around.
4. The LiquidPlanner app itself.
It’s great working on an app that you care about and enjoy using daily. The product has true value for a lot of different positions in any organization, but as a developer, I love the visibility that LiquidPlanner provides. I can view schedules and my own tasks, and also what’s headed my way in upcoming sprints. To be able to measure yourself in the short term and long term is incredibly motivating. Likewise, I can see what my co-workers are hacking on and gain context. I feel like I have a living record of my work that I can point to with useful connected collateral, as opposed to my previous life where I had to dig up e-mails AND refresh someone’s memory about what’s going on.
Our customers are a passionate user base and care deeply about the app they use daily. Needless to say that we get lots and lots of feedback. It may seem like a simple concept to listen to your users requests so you can deliver what they ask for while still staying true to your high level goals, but it can be challenging. Accomplishing this can be very gratifying.
That’s a wrap! I hope I captured what I find rewarding about working as a software engineer at LiquidPlanner. If you’re interested, we have a spot open for you on the development team! If you have any questions about anything, post a comment, email us, or send me a tweet.