Toptal Blog
The Toptal Blog is the top hub for developers, designers, management consultants, executives, and entrepreneurs, featuring key technology updates, tutorials, freelancer resources, and management insights.
Featured in
World-class articles, delivered weekly.
Elasticsearch for Ruby on Rails: A Tutorial to the Chewy Gem
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.

Arkadiy Zabazhanov
Arkadiy is a senior Ruby on Rails developer. He enjoys working with databases and open-source initiatives on GitHub.
Modernizing Legacy Software: MUD Programming Using Erlang and CloudI
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.

Michael Truog
Michael is a distributed systems and fault tolerance expert, having worked with AT&T, E*Trade, Nokia and others.
Automated Android Crash Reports with ACRA and Cloudant
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.

Ivan Dimoski
Ivan is an accomplished Android developer and consultant with six years of experience developing user-friendly applications.
A Guide to Building Your First Ember.js App
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.

Balint Erdi
Balint has been practicing TDD since before it became popular. He was a classic PHP coder, and has since moved on to Java, Python, and Ruby.
Computational Geometry in Python: From Theory to Application
When people think computational geometry, in my experience, they typically think one of two things:
- Wow, that sounds complicated.
- 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.

Charles Marsh
Charlie (BCS, Princeton) has been an engineering lead at Khan Academy, then Cedar, and nowadays does ML at Spring Discovery.
A Year Building a WebRTC Application: Lessons in Startup Engineering
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.

Alexandre Mondaini Calvão
Alexandre is an expert Ruby on Rails developer who is also experienced with Java and various front-end technologies.
An Introduction to Python Mocking
More often than not, the software we write directly interacts with what we would label as “dirty” services. In layman’s terms: services that are crucial to our Python application, but whose interactions have intended but undesired side-effects—that is, undesired in the context of an autonomous test run.

Naftuli Kay
From building custom TCP servers to large-scale finance apps, Naftuli’s breadth of experience makes him a top-of-class dev and sysadmin.
Anti-Patterns in Telecommuting
As a veteran telecommuter through multiple jobs in my career, I have witnessed and experienced the many joys of being a remote worker. As for the horror stories, I have more than a few I could tell. With a bit of artistic inclination and a talent for mathematics, I also have a fascination with patterns: design patterns, architectural patterns, behavioral patterns, social patterns, weather patterns—all sorts of patterns!
When I first encountered anti-patterns, I discovered a trove of wisdom I wish I had known before I had learned the hard way. Anti-patterns are recognizable repeated patterns that contribute significantly to failure. For example, the manager that keeps interrupting the employee in order to see if the employee is getting any work done is engaging in an anti-pattern that serves to prevent the employee from getting any work done!
Based on my own experiences and experiences of friends and co-workers, I am assembling descriptions of anti-patterns related to telecommuting.

Steven S. Morgan
Steven is an expert Java architect and developer with extensive experience in distributed architectures, scalable solutions, and more.
Great Developers Know When and How To Refactor Rails Code
If it ain’t broke, don’t fix it.
It’s a well known phrase, but as we know, most of the human technological progress was made by people who decided to fix what isn’t broken. Especially in the software industry one could argue that most of what we do is fixing what isn’t broken.
Fixing functionality, improving the UI, improving speed and memory efficiency, adding features: these are all activities for which it is easy to see if they are worth doing, and then we argue for or against spending our time on them. However, there is an activity, which for the most part falls into a gray area: refactoring, and especially large scale refactoring.

Radan Skoric
Radan is a senior full stack developer who splits his time between writing advanced, but simple, Ruby code and leading a team of developers.
Most-read Articles

An Angular 5 Tutorial: Step by Step Guide to Your First Angular 5 App

Adobe XD vs. Sketch – Which UX Tool Is Right for You?

The History of Remote Work, 1560-Present (with Infographic) (Updated)
World-class articles, delivered weekly.
Toptal Developers
- Android Developers
- App Developers
- AWS Developers
- Azure Developers
- BigCommerce Developers
- Blockchain Developers
- Coders
- Database Developers
- Embedded Software Engineers
- Flutter Developers
- HTML5 Developers
- Java Developers
- Joomla Developers
- Kubernetes Developers
- Laravel Developers
- Magento Developers
- .NET Developers
- Next.js Developers
- Odoo Developers
- Outsourced Developers
- PHP Developers
- Power BI Developers
- Prototype Developers
- Python Developers
- React Developers
- React Native Developers
- Remote Developers
- Ruby on Rails Developers
- Salesforce Developers
- Security Engineers
- SharePoint Developers
- Shopify Developers
- Software Developers
- Squarespace Developers
- Startup Developers
- Svelte Developers
- Twilio Developers
- Vue.js Developers
- Web Developers
- Web Scraping Developers
- WooCommerce Developers
- WordPress Developers
- View More Freelance Developers
Toptal Designers
- Accessible Web Designers
- Adobe After Effects Designers
- Adobe Illustrator Experts
- CAD Designers
- Canva Designers
- Data Visualization Designers
- E-commerce UX Designers
- E-commerce Website Designers
- Fintech Designers
- Graphic Designers
- Illustrators
- Interactive Designers
- Landing Page Designers
- Logo Designers
- Mobile App Designers
- Mobile UX Designers
- Photoshop Experts
- Presentation Designers
- Product Designers
- Prototype Designers
- Responsive Web Designers
- Shopify Designers
- Startup Design Experts
- SVG Designers
- UI Designers
- UX Designers
- Web Designers
- Webflow Designers
- WooCommerce Designers
- View More Freelance Designers
Toptal Management Consultants
- 409A Valuation Consultants
- Bankruptcy Consultants
- Blockchain Consultants
- Business Consultants
- Business Plan Writers
- Cash Flow Consultants
- CFO Consultants
- Corporate Finance Consultants
- CPAs
- Crowdfunding Consultants
- Excel Experts
- Financial Consultants
- Financial Managers
- Financial Modelers
- Financial Planning Consultants
- Fintech Consultants
- FP&A Analysts
- Fractional CFOs
- Fractional COOs
- Fundraising Consultants
- Hedge Fund Consultants
- Interim CFOs
- Interim COOs
- Interim Financial Controllers
- M&A Consultants
- Market Research Analysts
- McKinsey Consultants
- Part-time CFOs
- Pitch Deck Consultants
- Pricing Consultants
- Private Equity Consultants
- Quantitative Analysts
- Salesforce Consultants
- Small Business Operations Consultants
- Startup Consultants
- Startup Funding Consultants
- Stock Market Experts
- Tax Professionals
- Virtual CFOs
- View More Freelance Consultants
Toptal Project Managers
- Agile Coaches
- Agile Consultants
- Agile Team Leads
- Blockchain Project Managers
- Business Delivery Managers
- Delivery Managers
- Digital Project Managers
- E-commerce Project Managers
- ITIL Certified Service Delivery Managers
- Jira Experts
- Mobile Project Managers
- Monday.com Experts
- PMP Project Managers
- Program Managers
- Project Management Consultants
- Scrum Coaches
- Scrum Masters
- Solutions Architects
- Startup Project Managers
- Waterfall Project Managers
- Web Project Managers
- Wrike Consultants
- View More Freelance Project Managers
Toptal Product Managers
- Agile Product Managers
- App Product Managers
- Artificial Intelligence Product Managers
- Business Analysts
- Contract Product Managers
- Data Product Managers
- Digital Product Managers
- E-commerce Product Managers
- Finance Product Managers
- Fractional CIOs
- Ideation Consultants
- Interim CPOs
- Outsourced Product Management Professionals
- Principal Product Managers
- Product Consultants
- Product Development Managers
- Product Leaders
- Product Management Consultants
- Remote Product Managers
- Robotics Product Managers
- Scrum Product Managers
- Scrum Product Owners
- Virtual Product Managers
- View More Freelance Product Managers
Toptal Marketing Experts
- Amazon SEO Experts
- Blog Writers
- Community Managers
- Content Managers
- Conversion Rate Optimization Experts
- Copy Editors
- Copywriters
- Customer Journey Mapping Consultants
- Digital Marketers
- Digital Media Specialists
- Display Ads Specialists
- E-commerce Consultants
- E-commerce Marketers
- Event Marketers
- Event Planners
- Fractional CMOs
- Google AdSense Experts
- Google Ads Experts
- Influencer Marketers
- Integrated Marketing Strategists
- Local SEO Experts
- Mailchimp Experts
- On-page SEO Experts
- PPC Experts
- Press Release Writers
- Salesforce Pardot Consultants
- SEO Audit Specialists
- SEO Copywriters
- SEO Experts
- Shopify SEO Experts
- Social Media Managers
- Social Media Marketers
- Video Editors
- Wordpress SEO Experts
- View More Freelance Marketers
Join the Toptal® community.











