We've Launched "The Suddenly Remote Playbook,"
A Comprehensive Guide for Working Remotely
The Suddenly Remote Playbook
Read Now

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

Concurrency and Fault Tolerance Made Easy: An Akka Tutorial with Examples

by Diego Castorina

Writing concurrent programs is hard. Having to deal with threads, locks, race conditions, and so on is highly error-prone and can lead to code that is difficult to read, test, and maintain. This post provides an introductory guide to the Scala-based Akka framework, showing (with code samples) how Akka facilitates and simplifies the implementation of robust, concurrent, fault-tolerant applications.

13 minute readContinue Reading
EngineeringIcon ChevronLifestyle

Busting the Top 5 Myths About Remote Workers

by Scott Ritter

With an 80% increase in the remote workforce from 2005 to 2012, there must be more to the picture than meets the eye. This post pulls the rug out from under 5 of the most prevalent myths about remote workers, with a specific focus on the software development industry.

9 minute readContinue Reading
EngineeringIcon ChevronWeb front-end

Developing Mobile Web Applications: When, Why, and How

by Tomas Agrimbau

With the increasingly ubiquitous nature of mobile devices and applications, if you’re not already thinking about mobile apps, you probably should be. This post focuses on methodologies and tools to employ, and pitfalls to avoid, in the development of highly functional, intuitive, and easy-to-use mobile web apps.

13 minute readContinue Reading
EngineeringIcon ChevronTechnology

Python Class Attributes: An Overly Thorough Guide

by Charles Marsh

In a recent phone screen, I decided to use a class attribute in my implementation of a certain Python API. My interviewer challenged me, questioning whether my code was syntactically valid, when it was executed, etc. In fact, I wasn't sure of the answers myself. So I did some digging. Python class attributes. No one really knows when (or how) to use 'em. In this guide, I walk through common pitfalls and conclude with a list of valid use-cases that could save you time, energy, and lines of code.

11 minute readContinue Reading
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

Join the Toptal® community.