Intern (software developer)

We’re looking for a bright and motivated student in their penultimate year of study to join us for an internship. We’re offering placements as part of your course, or independently arranged outside of your studies. Placements are between 5 to 12 months long.

Information for recruitment agencies
We have appointed a recruitment agent on a sole agency basis.
If you’re a recruitment agent, and would like to get in touch with us, please use email only: Please don’t phone!

You’ll be helping us build Haplo Research Manager, a product for Universities, along with customised information systems for our other clients in a wide variety of sectors.

This is a great opportunity to refine your development skills in a supportive team focused on excellent software engineering. You’ll be actively involved in every aspect of the software development process.

What’s it like at Haplo?

This summer, I graduated from the University of Southampton with an MEng in Computer Science. During my course, I found that I really enjoyed programming, so I wanted to find a job which would give me the greatest opportunity to develop my skills.

Talking to people who worked in large corporates, I was concerned that they spent a lot of their time dealing with bureaucracy, and they tended to specialise early on without getting to work on all areas of a modern application. It seemed the best way of finding a job which would really allow me to learn would be to look for an ambitious team at a smaller software company.

The interview process at Haplo was really helpful in understanding what it would be like, and turned out to be a lot of fun. I enjoyed the technical challenge, and then in the face-to-face interview, got to write some code which gave me a realistic picture of what the job would be like.

In my first few weeks, I got to grips with the Haplo Platform and the way the team works. As we work together so closely, it was much easier to learn than I had expected. The communication is immediate, and we’re all very careful to make sure nothing gets in the way of writing really good software.

I started by making quite small changes to our applications, and then quite quickly got on to larger and more complex tasks. It’s helpful to have lots of code to look at, and immediate feedback when I need it.

My colleagues have been really supportive, know their stuff, and are keen to help me learn. It’s quite different to my programming at university. As well as thinking carefully about quality and long-term maintainability, I know that when I finish a bit of work, it’s deployed that day and thousands of people immediately start using it!

I’m enjoying my work here. I get to program all day, my tasks are interesting and varied, and every day I learn something new.

Amrinderjit Singh, Software Developer at Haplo

You’ll be working on top of our open source in-house application framework, designed for building applications which manage large amounts of semi-structured data.

You will:

You’ll be working in a spacious, light-filled office in a new business development in Brockley.

We believe in good coffee, sensible working hours, and valuing the contribution of every member of the team.

You’ll need:

There’s some notes on our technology stack below.

We’re funded entirely by revenue from our clients. With no investors, we can focus solely on producing a great product for our happy clients. We offer:

Haplo is an equal opportunities employer. We welcome applications from developers from all backgrounds, and any level of experience.

You must have a right to work in the UK.

To apply, or if you have any questions, please email


My week at Haplo

Most of my week is spent writing code, with minimal distractions. We have a quiet office and sociable lunches, which gives me plenty of focussed time to concentrate on code.

Prioritising getting things right first time means I spend very little of my week bug fixing, which is great. We develop with lots of discussion of how to design everything really well, and frequent code reviews.

I will usually have a couple of phone calls a week with clients, and possibly a site visit to discuss things in person.

We generally release on Thursdays, so that Friday can be left clear for general improvements and reflections on how we did this week.

We enjoy precision coffee making on our cafe-quality espresso machine, and semi-competitive sandwich making on extremely good bread from our local bakery.

Tom Renner, Software Developer at Haplo

Technology stack

Our technology choices have been driven by a desire for reliability and no surprises. We believe a production system is the last place you want excitement, and don’t want to work out-of-hours fixing things. This means we’ve gone for tried and tested runtimes, languages and deployment methods, but used them in imaginative ways so they’re as productive as anything else available.

This has paid off. We’ve only had a few minutes downtime in all the years we’ve been hosting applications for our customers, and it’s quick and easy to build new features and extend existing capabilities.

We’ve taken a polyglot approach, using the best language and approach for each task, with the majority of the application running on the JVM. The platform is mainly written in JRuby, Java and JavaScript, with our custom object store implemented as C++ extensions to PostgreSQL. Our infrastructure and deployment tools are written in Python.

Our products and client specific customisations are implemented as server-side JavaScript plugins, which script the rest of the platform. As we build custom applications, we refactor to extend the platform, making future development even easier and faster.

We host the application on our own hardware for control and performance, and because our customers have strict security requirements. We have automated deployment, using Puppet controlled by our own deployment scripts. We can bootstrap a new server or development VM in minutes, with cryptographic assurance that we’re running the code we intend to run. Deploying a new version is one command to publish it, and another command to deploy it, and we release a new version every few days.

But the thing we’re most proud of is the quality of our work. We’ve treated every single bit of feedback and support request as a bug report, and fixed it. This dedication to quality and the user experience mean our users are delighted with our work, don’t need to call us for help, and are a pleasure to work with.


Information for recruitment agencies

We have appointed a recruitment agent on a sole agency basis.
If you’re a recruitment agent, and would like to get in touch with us, please use email only: Please don’t phone!