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.

Toptalauthors are vetted experts in their fields and write on topics in which they have demonstrated experience. All of our content is peer reviewed and validated by Toptal experts in the same field.
Share

Featured in

Hunting Java Memory Leaks

Inexperienced programmers often think that Java’s automatic garbage collection frees them from the burden of memory management. This is a common misperception: while the garbage collector does its best, it’s entirely possible for even the best programmer to fall prey to crippling memory leaks.

In this post, I’ll explain how and why memory leaks occur in Java and outline an approach for detecting such leaks with the help of a visual interface.

14-minute readContinue Reading
Jose Ferreirade Souza Filho

Jose Ferreirade Souza Filho

Jose is a developer with 12+ years of experience in the development, migration, and integration of software and efficient architectures.

Why Are There So Many Pythons? A Python Implementation Comparison

Python is amazing.

Surprisingly, that’s a fairly ambiguous statement. What do I mean by ‘Python’? Do I mean Python the abstract interface? Do I mean CPython, the common Python implementation? Or do I mean something else entirely? Maybe I’m obliquely referring to Jython, or IronPython, or PyPy. Or maybe I’ve really gone off the deep end and I’m talking about RPython or RubyPython (which are very, very different things).

While the technologies mentioned above are commonly-named and commonly-referenced, some of them serve completely different purposes (or at least operate in completely different ways). In this post, I’ll start from scratch and move through the various Python implementations, concluding with a thorough introduction to PyPy, which I believe is the future of the language.

10-minute readContinue Reading
Charles Marsh

Charles Marsh

Charlie (BCS, Princeton) has been an engineering lead at Khan Academy, then Cedar, and nowadays does ML at Spring Discovery.

World-class articles, delivered weekly.

By entering your email, you are agreeing to our privacy policy.

How to Build an Infinite Runner on iOS: Cocos2D, Automation, and More

Building games for the iOS platform can be an enriching experience in terms of both financial and personal growth. Recently, I deployed a Cocos2D-based game to the App Store. In this post, I’ll explain the process behind developing games for iOS, from Cocos2D through to publishing.

9-minute readContinue Reading
Alexey Zankevich

Alexey Zankevich

Alexey is a full-stack developer and architect. He has expert knowledge of Python and is strong in Java and Objective-C.

The Trie Data Structure: A Neglected Gem

From the very first days in our lives as programmers, we’ve all dealt with data structures: Arrays, linked lists, trees, sets, stacks and queues are our everyday companions, and the experienced programmer knows when and why to use them.

In this article we’ll see how an oft-neglected data structure, the trie, really shines in application domains with specific features, like word games.

9-minute readContinue Reading
Anna-Chiara Bellini

Anna-Chiara Bellini

When Anna started coding at a young age. Since then, her career has spanned many different projects and programming technologies.

Scaling Play! to Thousands of Concurrent Requests

Web Developers often fail to consider the consequences of thousands of users accessing our applications at the same time. Perhaps it’s because we love to rapidly prototype; perhaps it’s because testing such scenarios is simply hard.

Regardless, I’m going to argue that ignoring scalability is not as bad as it sounds—if you use the proper set of tools and follow good development practices. In this case: the Play! framework and the Scala language.

5-minute readContinue Reading
Paulo "JCranky" Siqueira

Paulo "JCranky" Siqueira

Paulo’s 19+ years in software development have seen him switch from being a Java senior to a Scala powerhouse. He also has a BCS degree.

Forex Algorithmic Trading: A Practical Tale for Engineers

The foreign exchange (forex) market is the most liquid market in the world. Learn from a software developer’s firsthand experience creating forex algorithmic trading strategies—and more—in this trading tutorial.

9-minute readContinue Reading
Rogelio Nicolas Mengual

Rogelio Nicolas Mengual

Rogelio is a versatile and motivated full-stack engineer with more than 13 years of work experience in many languages, frameworks, and platforms.

Why Use Ruby on Rails? My Take After Two Decades of Programming

Sometimes I hear people complaining about their clients, saying that they insist on using Rails, that they’ve had too much Kool Aid. If they are recruiters, they almost feel sick in the stomach from the perspective of having to find yet another ROR prima donna. From the programmer’s point of view, it sometimes looks like clients don’t have a clue. However, I believe most clients know their options just fine and they still decide to go with Rails.

8-minute readContinue Reading
Krešimir Bojčić

Krešimir Bojčić

Krešimir is passionate about building great applications while minimizing the artificial complexity that often creeps into projects.

Why the Hell Would I Use Node.js? A Case-by-case Tutorial

Node.js shines in real-time web apps that employ push technology over WebSocket. Node’s real-time, two-way connections—where the client and server can each initiate communication—enable the freer exchange of data.

13-minute readContinue Reading
Tomislav Capan

Tomislav Capan

Tomislav is an AWS Certified Solution Architect, developer, and technical consultant with more than 10 years of experience. Tomislav has a master’s degree in computing.

Build Dumb, Refactor Smart: How to Massage Problems Out of Ruby on Rails Code

Sometimes, clients give us feature requests that we really don’t like. It’s not that we don’t like our clients, we love our clients. It’s not that we don’t like the feature, most client-requested features are aligned perfectly with their business goals and income. Sometimes, the reason we don’t like a feature request is that the easiest way to solve it is to write bad code, and we don’t have an Elegant Solution on the top of our heads. This will throw many of us on fruitless searches through RubyToolbox, github, developer blogs, and stackoverflow looking for a gem or plugin or example code that will make us feel better about ourselves.

Well, I’m here to tell you, it’s okay to write bad code. Sometimes, bad code is easier to refactor into beautiful code than a poorly thought out solution implemented under a time-crunch.

7-minute readContinue Reading
Daniel Lewis

Daniel Lewis

Daniel’s CS studies and decade-plus in full-stack development have allowed him to complete many projects for startups using agile methods.

Control Your Laptop with an Android Phone using Python, Twisted, and Django

It’s always fun to put your programming skills on display. A while back, I figured it’d be cool to try and control my laptop via my Android mobile device. Think about it: being able to play and pause music, start and stop programming jobs or downloads, etc., all by sending messages from your phone. Neat, huh?

6-minute readContinue Reading
Martin Chikilian

Martin Chikilian

Martin is a full-stack engineer and has worked as a professional Python developer since 2007.

In Defense of Female Engineers

Female engineers are valuable at Toptal. This is a piece about how we stand up for their rights and value them for their skills and talent.

6-minute readContinue Reading
Taso Du Val

Taso Du Val

Taso is the co-founder and CEO of Toptal. He manages our core team, which includes hundreds of professionals from around the globe.

Init.js: A Guide to the Why and How of Full-stack JavaScript

After much thought, I decided to engineer a solution to the idea abandonment problem. I call it the ‘Init’ project (or Init.js).

The core of the idea is to have a single project to start them all, to let the developer or the technical founder make all of the essential decisions at once, and receive an appropriate starting template based on those decisions.

14-minute readContinue Reading
Alejandro Hernandez

Alejandro Hernandez

Alejandro has a bachelor’s degree in software engineering and 10+ years of experience working for software companies of all sizes.

How a Single Front-End Engineer Can Replace a Team of Two

Demand within the web design scene today has changed over the past few years: designers with front-end skills, and front-end developers with design skills, are more and more in demand. Yes, you could argue that the jobs are completely different—and maybe you straight-up don’t like one of them—but truth be told, in my six years as a freelance web developer and twelve years as a designer, I’ve learned that it’s much harder to get by as just a web designer or just a front-end developer.

Wearing both hats has a lot of advantages: from a professional perspective alone, you can find work more easily and charge a higher rate because you’re bringing more to the table.

11-minute readContinue Reading
Tom Kozacinski

Tom Kozacinski

Tomislav is a digital product & UX/UI designer. He’s an organized artist & a problem solver. He tells your story & makes your product work.

Growing Growth: Perform Your Own Cohort Analysis with This Open Source Code

But this isn’t just another article about cohort analysis. If you already know the importance of the topic and want to skip the introduction, you can jump to the simulator, where you can either simulate startup growth based on retention, churn, and a number of other factors, or analyze your own PayPal logs with the code I’ve open sourced.

If, however, you don’t realize that these are some of the most important metrics around–continue reading.

7-minute readContinue Reading
Alejandro Rigatuso

Alejandro Rigatuso

Alejandro is an engineer and entrepreneur as well as an unmatched growth hacker with a ruthless drive to accelerate company growth.

CloudI: Bringing Erlang's Fault-Tolerance to Polyglot Development

Clouds must be efficient to provide useful fault-tolerance and scalability, but they also must be easy to use.

CloudI (pronounced “cloud-e” /klaʊdi/) is an open source cloud computing platform that is most closely related to the Platform as a Service (PaaS) clouds. CloudI differs in a few key ways, most importantly: software developers are not forced to use specific frameworks, slow hardware virtualization, or a particular operating system. By allowing cloud deployment to occur without virtualization, CloudI leaves development process and runtime performance unimpeded, while quality of service can be controlled with clear accountability.

9-minute readContinue Reading
Michael Truog

Michael Truog

Michael is a distributed systems and fault tolerance expert, having worked with AT&T, E*Trade, Nokia and others.

How I Made a Fully Functional Arduino Weather Station

I live in Córdoba, Argentina, approximately 130 kilometers (~80 miles) away from the lake where I kitesurf. Thats roughly a two-hour drive, which I can deal with. But I can’t deal with the fact that weather forecasts are inaccurate. And where I live, good wind conditions last just a couple of hours. The last thing you want to do is clear up your Monday schedule to go kitesurfing and find yourself cursing the gods on a windless lake after two hours of driving.

I needed to know the wind conditions of my favorite kitesurfing spot—in real time. So I decided to build my own weather station.

10-minute readContinue Reading
Francisco Clariá

Francisco Clariá

Francisco is an engineer focused on cross-platform apps (Ionic/Cordova) and specialized in hardware-software technology integration.

Toptal Engineering Expert

Gabriel is a highly efficient and reliable professional who possesses a broad skill set for web application development. He's been working on a range of products and clients—from working on scalability problems in production engineering teams at Shopify and Autodesk to launching new applications for startups. Most of his work consists of leading technical teams, by creating an easy development environment, fixing technical debts, providing best practices code examples, and mentoring devs.
Read more

Previously At

Shopify

Most-read Articles

Marcos Henrique da Silva

Creating a Secure REST API in Node.js

By Marcos Henrique da Silva
13-minute readContinue Reading

World-class articles, delivered weekly.

By entering your email, you are agreeing to our privacy policy.

Join the Toptal® community.