It’s not about flexing fluency or being “masters of none.”
Language influences how we perceive the world. Umami, a distinctly Japanese word, describes a fifth taste. Russian has two words for the color blue.
Programming languages are no different. At Connamara, we’ve embraced the concept of being a multilingual powerhouse. As Connamara’s Vice President and Director of Engineering, I’ve seen firsthand how our polyglot engineering team uses a diverse tech stack to fuel innovation, flexibility, productivity, and collaboration.
Yet, critics of polyglot programming like to point out that a lack of restrictions can pave the way for chaos. The risk of being “jacks of all trades but masters of none” is apparent. I couldn’t disagree more with these sentiments. Limitations limit, and as architects of the possible, our team loves a creative challenge.
Fluency Yields Freedom
From a managerial standpoint, I’ve seen our team reap the rewards of embracing language diversity.
- Versatility allows us to select the most suitable language for each project, depending on its unique requirements, performance needs, and scalability considerations.
- Adaptability has created new business opportunities for Connamara in growing industries like reg tech and logistics.
- Improved Problem-Solving and Collaboration Exposure to new and varied paradigms, syntaxes, and libraries, provides diverse approaches to tackle challenges.
- Access to a Broader Talent Pool: During hiring, prospective engineers are given a take-home test that asks them to write code in a language not listed on their resume. By asking candidates to think critically in an unfamiliar language, Connamara has become highly selective in our hiring process.
A T-Shaped Philosophy
At Connamara, our development team is broad in their skill sets and deep in one to two languages. This means that the right expertise is always applied to an appropriate project. Through effective communication and an Agile mindset, we always clearly understand each individual’s up-to-date proficiencies. We’ll never assign a developer to work on a project in a language they are not knowledgeable in.
Language Choice in Custom Builds
As engineers, language diversity in coding is one of our most powerful assets. But in the case of our clients’ tech, we’ve seen many of them benefit from in-house standardization. Approved languages of in-house tech can reign in maintenance costs and long-term viability.
When it comes to client projects, we strive to accommodate their language preferences whenever possible. However, if a client is indecisive between two languages, we may advocate for the language in which our team has more experience and readily available staff. This approach ensures smoother collaboration, efficient development cycles, and a higher probability of success.
Exceptional Linguistic Cases
In some cases, our clients may request, or we may choose a less common programming language for specific projects. For instance, a client’s development team might aim to take over the project after Connamara completes its part. By selecting a language like Java or Python, which have large candidate pools, the client can benefit from a wider talent pool once we hand off the application.
Levering Language Similarities
One advantage of being multilingual is the ability to grasp new programming languages quickly. While languages like Java and C# may not be identical, their syntax and development philosophies exhibit similarities. This shared knowledge enables our engineers to adapt and learn new languages efficiently. By building upon existing skills and transferring knowledge, our team can reduce the learning curve and accelerate productivity when working with unfamiliar languages.
Maintaining Compatibility and Seamless Integration
Thanks to our utilization of Docker and the design philosophy of communication via APIs, compatibility issues related to integrating code written in different languages are significantly reduced. Docker containers provide an environment where software languages become arbitrary, allowing our team to focus on the maintainability and scalability of the overall system. Additionally, technologies like Protobufs/gRPC and message buses contribute to the seamless integration of diverse languages within our systems.
Multilingual Agile Development
Agile methodologies thrive on adaptability and responsiveness. Embracing niche or emerging languages aligns perfectly with the Agile mindset. At Connamara, we consider it Agile to leverage languages that our team members are familiar with or believe would work well for a given project. This approach has led us to adopt technologies like Ruby on Rails, Go, and Erlang based on the team’s recommendations and experimentation.
The Pragmatic Programmer (1999), which is basically an ancient meme at this point, advises programmers to learn a new language every year. Connamara’s policy of supporting our employee’s professional development supports this ideal. Every new programming language affects the way developers think about problem-solving. We have seen our flexibility and productivity increase by encouraging our engineers to expand their skill sets.
Connamara has been lauded for our commitment to adapting, meeting client requirements, mastering the art of the possible, and delivering high-quality solutions. This is in no small part, thanks to being a multilingual company. We may not have the Rosetta Stone for all languages out there, but our ability to suggest and code languages for our clients’ software visions has made us a valuable, reliable partner.