Toptal Engineering Expert
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.
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.

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.

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.

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.

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.

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.

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.

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.

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.

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?

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.

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.

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.

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.

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.

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.

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

An Angular 5 Tutorial: Step by Step Guide to Your First Angular 5 App
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
Join the Toptal® community.





















