Customized Remote Work Solutions From the World’s Largest Fully Remote CompanyCustomized Remote Work SolutionsLearn More

Toptal Engineering Blog

The Toptal Engineering Blog is a hub for in-depth development tutorials and new technology announcements created by professional software engineers in the Toptal network.

EngineeringIcon ChevronTechnology

Elasticsearch for Ruby on Rails: A Tutorial to the Chewy Gem

by Arkadiy Zabazhanov

Elasticsearch provides a powerful, scalable tool for indexing and querying massive amounts of structured data, built on top of the Apache Lucene library. Building on the foundation of Elasticsearch and the Elasticsearch-Ruby client, we've developed and released our own improvement (and simplification) of the Elasticsearch application search architecture that also provides tighter integration with Rails. We've packaged it as a Ruby gem named Chewy. This post discusses how we accomplished this, including the technical obstacles that emerged during implementation.

12 minute readContinue Reading
EngineeringIcon ChevronData Science and Databases

Modernizing Legacy Software: MUD Programming Using Erlang and CloudI

by Michael Truog

The need to adapt legacy code and systems to meet modern day performance and processing demands is widespread. This post provides a case study of the use of Erlang and CloudI to adapt legacy code, consisting of a decades-old collection of multi-user game software written in C, to the 21st century.

7 minute readContinue Reading
EngineeringIcon ChevronData Science and Databases

Your Boss Won't Appreciate TDD: Try This Behavior-Driven Development Example

by Ryan Wilcox

Testing. It always seems to get left to the last minute, then cut because you're out of time, budget, or whatever else. Management wonders why developers can't just "get it right the first time", and developers (especially on large systems) can be taken off-guard when different stakeholders describe different parts of the system. With behavior-driven development, you can turn testing into a shared process that focuses on the behaviors of the system, why they matter, and who cares.

8 minute readContinue Reading
EngineeringIcon ChevronMobile

Automated Android Crash Reports with ACRA and Cloudant

by Ivan Dimoski

Making a basic Android app is easy. But making it reliable, scalable, and robust, on the other hand, can be quite challenging. With thousands of available devices pumped out from tons of different manufacturers, assuming that a single piece of code will work reliably across phones is naive at best. Segmentation is the greatest tradeoff for having an open platform, and we pay the price in the currency of code maintenance, which continues long after the app passes the production stage. In this post, we'll walk through a solution: automated crash reporting with ACRA and a Cloudant back-end, all visualizable with acralyzer.

9 minute readContinue Reading
EngineeringIcon ChevronLifestyle

In Search of the Elite Few – Finding and Hiring the Best Software Developers in the Industry

by Hyam Singer

Effective interviewing and hiring is as much of an art as it is a science. Nonetheless, approaches and methodologies do exist for evaluating the more subtle dimensions of a software developer’s skills and abilities. When used collectively, these techniques yield a highly effective screening process with a proven track record of success. That process is what this post is all about.

13 minute readContinue Reading
EngineeringIcon ChevronWeb front-end

A Guide to Building Your First Ember.js App

by Balint Erdi

As modern web applications do more and more on the client-side (the fact itself that we now refer to them as “web applications” as opposed to “web sites” is quite telling), there has been rising interest in client-side frameworks. There are a lot of players in this field but for applications with lots of functionality and many moving parts, two of them stand out in particular: Angular.js and Ember.js. Angular.js has already been introduced on this blog, so we're going to focus on Ember.js in this post, in which we'll build a simple Ember application to catalog your music collection. You'll be introduced to the framework's main building blocks and get a glimpse into its design principles.

12 minute readContinue Reading
EngineeringIcon ChevronTechnology

Computational Geometry in Python: From Theory to Application

by Charles Marsh

When people think computational geometry, in my experience, they typically think one of two things: 1. Wow, that sounds complicated. 2. Oh yeah, convex hull. In this post, I'd like to shed some light on computational geometry, starting with a brief overview of the subject before moving into some practical advice based on my own experiences in computational geometric programming with Python.

15 minute readContinue Reading
EngineeringIcon ChevronWeb front-end

A Year Building a WebRTC Application: Lessons in Startup Engineering

by Alexandre Mondaini Calvão

I've been an Engineer at Toptal for just about one year now, working on the same project since I joined the network: Ondello, a service that connects doctors and patients over WebRTC. When I first joined Ondello, I was hired as a Senior Ruby on Rails Developer, tasked to build a service up from scratch. These days, we're a team of multiple developers working on a fairly large, complex system. With this post, I'd like to share the story behind Ondello. Specifically, I'd like to talk about: how a simple application became not-so-simple, and how our use of cutting-edge technologies posed problems I'd never considered before.

9 minute readContinue Reading

Join the Toptal® community.