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 ChevronWeb front-end

A Step-by-Step Tutorial for Your First AngularJS App

by Raoni Boaventura

If you haven’t tried AngularJS yet, you’re missing out. The framework consists of a tightly integrated toolset that will help you build well structured, rich client-side applications in a modular fashion—with less code and more flexibility. One of the reasons I love working with AngularJS is because of its flexibility regarding server communication. Like most JavaScript MVC frameworks, it lets you work with any server-side technology as long as it can serve your app through a RESTful web API. But Angular also provides services on top of XHR that dramatically simplify your code and allow you to abstract API calls into reusable services. As a result, you can move your model and business logic to the front-end and build back-end agnostic web apps. In this AngularJS tutorial, we'll do just that, one step at a time.

11 minute readContinue Reading
EngineeringIcon ChevronWeb front-end

Introduction to Responsive Web Design: Pseudo-Elements, Media Queries, and More

by Tomislav Krnic

Nowadays, your website will be visited by a wide variety of devices: desktops with large monitors, mid-sized laptops, tablets, smartphones, and more. To achieve an optimal user experience, your site should be adjusting its layout in response to these varied devices (i.e., to their varied screen resolutions and dimensions). The process of responding to the form of the user's device is referred to as (you guessed it) responsive web design (RWD).

8 minute readContinue Reading
EngineeringIcon ChevronTechnology

Why Writing Software Design Documents Matters

by Christopher J Fox

If you're an experienced developer, you've probably progressed from being a humble tester to a senior developer, and if you're a freelancer, you've made another leap, perhaps the biggest of them all, when you started working with clients directly. Some clients aren't in the software business; they're in an entirely different industry that needs a piece of software, and they don't have a clear and precise vision of what they want from you. This is a far greater challenge than it appears, and here's what you can do to improve client communication and project documentation.

8 minute readContinue Reading
EngineeringIcon ChevronTechnology

Hunting Java Memory Leaks

by Jose Ferreirade Souza Filho

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
EngineeringIcon ChevronTechnology

Why Are There So Many Pythons? A Python Implementation Comparison

by Charles Marsh

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
EngineeringIcon ChevronMobile

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

by Alexey Zankevich

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
EngineeringIcon ChevronData Science and Databases

The Trie Data Structure: A Neglected Gem

by Anna-Chiara Bellini

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
EngineeringIcon ChevronData Science and Databases

Scaling Play! to Thousands of Concurrent Requests

by Paulo "JCranky" Siqueira

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

Join the Toptal® community.