CAREERS

Your career with us

It’s our team at BusyMachines that we cherish the most. It’s created our portfolio and offered top-notch skills and lots of fun. Your passion and experience in software development can support our purpose while your nature and frame of mind will be embraced by your new colleagues. Let us lead the way together!

Current Openings

Check out the job opportunities below and apply if you think you’re up for the job.

Can’t find a suitable position?

We’re constantly looking for smart people who are interested in building great software. Please apply with a short cover letter.

Why work with us

Competitive salary & bonuses based on performance.

All-inclusive private health plan.

The best tools money can buy – very fast company laptop and at least one secondary screen.

Knowledge exchange & individual coaching for personal development.

The chance to grow a career in a non- corporate environment.

Modern office.

Informal working conditions & home office flexibility.

Cool parties, team buildings and other team outings.

Office treats, coffee & refreshments.

The things we cherish

Strong work ethic

We give everyone our full trust and expect them to have a strong sense of responsibility and a good work ethic to keep everything running like clockwork.

Ambition

We all do our best to get as good as we can possibly get. We expect everyone who joins us to be open to push boundaries, take on challenging projects and explore uncharted territory.

Self-discipline

It takes a certain level of commitment to finish your tasks every day. We expect you to care about the quality of your work, have good discipline and do your part.

Collaboration

Smooth collaboration keeps our machines busy and moves projects forward. We cherish people who help each other, work well together and are able to explain technical decisions.

Openness

You won’t find any “yes man” here. We encourage everyone to speak their mind and be vocal about their ideas. Constructive criticism is welcome. Give it. Take it. Use it.

Curiosity

You won’t have a problem finding your place here if, apart from the technical skillset, you have a restless passion to learn new things and a natural talent at being versatile.

This is how we roll

The Joel 12 Steps to Better Code

The Joel Test is a creation of Joel Spolsky, Co-Founder of Stackexchange and Fog Creek Software and it includes the following 12 points written below,. Check out our way of doing things around here.

1. Use source control

We use Git everywhere in our company, from source code to our homepage & blog. Its distributed nature makes it perfect for teamwork. We highly appreciate how Git encourages frequent branching/merging, tagging of releases & the pull mechanism that makes code reviews much easier to handle. To minimize management & ops, we are using Github for all our Git work.

2. Make a build in one step

All our projects use automated build systems. For Java projects, we build with Maven, while for Scala we use SBT. For all frontend apps, we have a combination of Grunt, Bower and NodeJs. All our projects share a common build pattern, so once you’ve built one, you know them all. Any build is triggered with a single command line.

3. Make daily builds

We are using Jenkins on a really fast dedicated build server. Any commit to a Git repo triggers the build job that pulls the latest changes, builds them, runs the tests, restarts the dev instance & publishes the artifact in a private Archiva snapshot repository. So, we have commit level builds. Even better than daily builds.

4. Use a bug database

We have a dedicated machine that runs a heavily customized Redmine where we keep track of stories, features and bugs. We integrated the issue tracker with the Git repo, so we also keep track of code commits per issue. All issues we track are further grouped by project, component and version/release.

5. Fix bugs before writing new code

In most cases, bugs get a high priority and as such, they tend to get fixed before new features are added. We have a pragmatic approach regarding this rule, as there are some cases when bugs are minor and some new features might end up being more important.

6. Have an up-to-date schedule

We track business functionality as stories and connect the implementation issues with these stories. This approach allows project owners to easily track implementation progress and schedule deadlines at a story level. The development teams commit to specific stories every 2 week sprints.

7. Have a spec

We start projects with data model specs and architecture documentation. We use UML diagrams for data model specs and the architecture documents cover the top level components, persistence layout & technology stack. All our API’s are RESTful & are documented at the HTTP request/response level semantics.

8. Programmers have quiet working conditions

Our office is located in a quiet old building near the city center. We lower the noise level by keeping phones or Skype conversations outside the work area. We always use headphones for music.

9. Use the best tools money can buy

We all have laptops with very fast CPU’s, SSD’s and as much RAM as you can get. Everyone has at least one secondary monitor. For automated builds & tests, we have dedicated high end servers. We also have a big screen that shows build statuses for all projects in real time.

10. Having testers

We have automated tests both for backend and frontend, as well as dedicated testers.

11. New candidates write code during their interview

We require candidates to code during the interview process. It’s also a big plus if candidates contribute to open source. We encourage & appreciate visibility to meetups and tech conferences.

12. Do hallway usability testing

The closest we got to it was by using TestFlight to distribute development releases to remote testers. It’s a good starting point and we are looking on ways to improve this part of our work.