Andy Hawthorne

Andy Hawthorne

Projects, photos and running

26 Apr 2020

Why Polyglot Developers Get Hired

Reading time: 4 minute(s) - 700 words

It is common for developers to be proficient with more than one programming language.Polyglot developers can work up a solution using a variety of frameworks and tools. Anf that means the end product benefits - probably.

But is that a good thing?

In web development it’s common that developers need PHP and JavaScript skills. And it’s a given that they’ll be proficient with HTML and CSS.

But it is more common now that for teams to meet a project brief, developers need a wider range of skills.

The idea that: “we’re a Laravel shop so that’s what we will build it with” is becoming a problem.

NOT because there’s anything wrong with using Laravel (or any other framework). But because the chosen framework may not answer all the project challenges.

I rcently managed the development of a data science product. The company developed an artificial intelligence (AI) platform using machine learning (ML) algorithms.

I joined the company on the basis that I had managed multiple web projects using a variety of technologies.

That was important to the CTO because an external agency built an API web service using PHP/Laravel. The web service formed the client facing part of the product offering. The CTO had no experience with either.

I saw the problem straight away. I’ll come to that in a moment.

The other major part of the product were the ML algorithms inside the Matlab engineering platform.

We needed to compile them out of there. And then use them in the SaaS product offering to deliver results to a data visualisation front-end.

The best option for compilation from Matlab was a bunch of C source files.

Welcome to the first problem.

Did we know enough C to:

  • Compile the source files into a static library
  • Work with some other programming language to use the C library

That raised another question.

What programming language could we use to talk to the C library? We needed a way to pass data in and out of the library for processing.

The results of that processing was output from the ML algorithms.

So now there was another layer of knowledge needed. Did we know enough SQL to work with stored procedures? And deep nested relationships?

There was still the matter of how we talked to the C libraries too.

None of this came up in the job specification discussions for the dev team. But it was all needed.

Let me summarise where we were up to. The project used:

  • PHP/Laravel
  • SQL (stored procedures and schema design)
  • C programming and compilation

Furthermore, The company website needed building and the content writing. So add these skills:

  • Front-end design
  • Web content writing
  • Server set up and management

This was a startup company. So there was no chance that we could hire in all the required specialisms.

Polyglot developer? At this stage it felt like we needed a one-man web agency. And what did I know about AI and ML before joining the company?

Not very much, is the answer.

So, I purchased books, asked lots of questions and we wrote lots of code to figure enough out to be useful.

The programming language to glue the whole thing together was Python.

It had to be. Python and data science go hand-in-hand. There are amazing libraries like numpy and pandas that sort you out.

It also meant I had to know enough about Python to guide the development process.

That in includes stuff like learning ctypes to interact with the C library. As well as all the data science stuff.

Oh, and I put my existing Flask framework experience to use to build more endpoints and the company website.

I’m lucky to have built up a solid bank of skills across a range of subjects. But we needed a polyglot to tick all the other boxes. it was stressful to say the least.

Polyglot programming does deliver a more expansive product. But for a startup, you have to keep your feet on Terra Firma. There won’t be the budget to hire everyone you need. So hiring a polyglot dev might be the answer.

comments powered by Disqus