Who we are

We're Best Practical Solutions, a small software company located in Somerville, MA. We build software and sell support, training, consulting, and custom development services. Our flagship product, RT (Request Tracker), is the premier open source issue tracking system. Our secondary product, Request Tracker for Incident Response (RTIR) is the leading open source incident handling system for computer security teams and is widely deployed across security, academic, and government agencies. We've been around since 2001 and are entirely self-funded.

We think Best Practical is an awesome place to work. Our jobs are enjoyable, challenging, and rewarding, with talented coworkers who know how to have fun.

Real-world problem solving

At Best Practical, we solve real-world problems with a system that is essential for our customers. For many of our customers, RT receives all of their support email, making it the first point of contact for their customers, and much of that customer contact comes in as email. We've seen some crazy samples of email from "the wild" and we need to make it work since RT can't drop a customer contact.

Internet ecosystem

RT sits in the middle of a complex stack of dependencies, many of them also open source, like Linux OSes, Apache, MySQL, Postgres, and a bunch of Perl code from CPAN. When you work at Best Practical, you learn about the entire internet ecosystem by troubleshooting OS issues, packaging systems, web servers, MTAs, databases (MySQL, Postgres, Oracle), and Perl code at the core of it. We're able to work closely with the groups that support many parts of this ecosystem and often solve issues with them to keep things running smoothly. Our work makes us experts in how the internet works, from web servers to email.

Open source

As an open-source solution deployed on customer sites, we're also challenged by heavily modified systems on all sorts of platforms. Customers like the fact that they can modify the RT source code, and we work closely with them to make sure these changes can co-exist with the standard RT distribution. The diversity of platforms, configurations, and customizations brings out the best CSI skills in our team as we work together to solve tough problems, often with limited information.

Being open source also allows us to work in the open on many of the features of RT. Our code is on github for everyone to see. When you work at BPS you're building your credentials as an open source programmer, not working on some small section of code locked away where no one will ever see it.


Our clients are businesses, universities, governments, and organizations of all sizes, but RT is used by many more people than just our customers. The user and developer community is active and busy every day. We jump in and engage with our mailing lists and IRC channel, lending advice, triaging bugs, fielding pull requests, and hashing out desired features, all with people who want to make RT better.

A voice in the company

We're not afraid to speak up. Opportunities abound for every employee to voice their opinions which influence product decisions, future directions, and the beer in the fridge. Rather than dictate what must be done, we try to get everyone talking and collaborate on a solution.

Who we're looking for right now

Software Engineer

About the job

We're looking for a software engineer to help us enhance and refine our products, and as well as to be excellent to our customers. You'll be responsible for everything from implementing new features, to testing and applying user-contributed patches to our released software. In a typical week, you'll probably spend about half your time working on internal and open source projects, and half working on customer projects; this requires good communication skills, as well as a desire to help customers get the most out of our software.

The hours are flexible, and we all telecommute some of the time...though we work from our office in the heart of Davis Square, Somerville on most days. While we do a fair amount of our collaboration in-person, you should also be comfortable using email and instant messaging to coordinate and get work done, as we have a few employees in other parts of the globe.

About you

You should be a self-starter who either has solid experience with Perl, or significant experience with similarly-flavored languages (Python, Ruby, etc) and a willingness to pick up Perl quickly. Some experience with at least a few of the following buzzwords is also desirable:

  • Open source development practices (code review, backcompat)
  • Distributed source control (git, branching, patches)
  • Test driven development (smoke testing, Test::More)
  • User interface design (HTML, CSS)
  • Documentation (user-facing, API)
  • Javascript (jQuery, AJAX)
  • SQL databases (MySQL, PostgreSQL, Oracle, SQLite)
  • Optimization, profiling, and debugging (nytprof)
  • UNIX systems administration (webservers, mailservers)

It's okay if you don't know everything out of the gate, but you should be able to learn on the fly and be comfortable asking questions when you get in over your head. RT is a large codebase to dive into, so you should be prepared to work with a project that's too big to hold in your head all at once. If you want to see what sort of trouble you're getting yourself into, you can find all of our open source code on github.

We're a small company; you should be comfortable working both independently and in small teams, and prioritizing tasks on your own. Being able to task-switch efficiently and juggle several projects at once is a necessity.


DOE - This is a full-time salaried position, but the details are negotiable. The standard benefits apply, of course: health insurance, dental insurance, and junk food to make that dental insurance worthwhile.

How to apply

Send something approximating a cover letter, a resume in plain text, HTML or PDF, and a sample of some code you've written to resumes@bestpractical.com. If you're involved in open source development of one kind or another, please tell us about it. If you have a CPAN ID, tell us what it is; we won't consider applications without some sort of code example to look at. We'll be paying particular attention to readability, comments, and tests.