Toptal Blog

The Toptal Blog is the top hub for software engineers, designers, project managers, and entrepreneurs, featuring in-depth coverage of platforms and technologies, comprehensive tutorials by professional Toptal talent, and resources to help ambitious freelancers stay on the cutting edge.
Subscribe today for email updates.
How to Build a Natural Language Processing App

Natural language is increasingly becoming a viable way of interacting with smart software. Google search, Apple’s Siri, Microsoft’s Cortana, etc. are all capable of understanding queries in natural language.

In this article, Toptal Freelance Software Engineer Shanglun (Sean) Wang walks us through some useful concepts and techniques in natural language processing and shows how they can be used to build a simple NLP app.

Continue reading →
SaaS - The Pricing-friendly Business Model

Pricing is one of the most important financial levers that companies have at their disposal to influence the financial success of their business. However, it is not an easy task. This article analyzes SaaS software from a pricing standpoint and finds that several of the operational characteristics of the business model generate some very useful pricing advantages that can help drive financial performance.

Continue reading →
Genetic Algorithms: Search and Optimization by Natural Selection

Many problems have optimal algorithms developed for them, while many others require us to randomly guess until we get a good answer. Even an optimal solution becomes slow and complex at a certain scale, at which point we can turn to natural processes to see how they reach acceptable results.

In this article, Toptal Freelance Software Engineer Eugene Ossipov walks us through the basics of creating a Genetic Algorithm and gives us the knowledge to delve deeper into solving any problems using this approach.

Continue reading →
How to Hook eCommerce Shoppers through UX Design

Flipkart, India’s leading eCommerce marketplace, questioned why they were losing customers and asked themselves: How do you build a loyal customer base, increase engagement and solve the issue of app uninstalls? What behaviors should be studied to come up with a winning solution? The answer lay in designing a habit-forming experience.

Continue reading →
How to Build CSS-only Smart Layouts with Flexbox

Although CSS was meant to deal with styling, creating extraordinary layouts on the web has always been a unique challenge and almost always required the developer to resort to JavaScript. However, Flexbox is here to change that.

In this article, Toptal Freelance Software Engineer Diego Díaz walks us through the basics of Flexbox and some cool examples of how Flexbox can be used to build smart CSS-only layouts.

Continue reading →
Top 10 Most Common Spring Framework Mistakes

Java’s open source Spring framework is a popular tool for creating high performing applications using plain old Java objects, but as with any tool, inappropriate use can lead to trouble. In this article, we cover the most common pitfalls of using the Spring framework so new and experienced developers alike have a roadmap of what to avoid.

Continue reading →
Open Source Software - Investable Business Model or Not?

Open-source software is a catalyst for growth and change in the IT industry, and one can’t overestimate its importance to the sector. In recent years, there has been a surge in venture capital dollars pouring into the sector. In this article, we analyse whether recent valuations make sense, and whether the open-source model lends itself to the returns profile that venture capital investors look for.

Continue reading →
A Rant against Pretty Designs

Often, designers make the mistake of designing apps for their own vanity, focusing on the veneer instead of designing a great user experience. As Steve Jobs once said, “Most people make the mistake of thinking design is what it looks like.”

In this article, Toptal UX Designer Miklos Philips discusses Jobs’s point of view and clarifies the importance of designing for people.

Continue reading →
Stop Making Garbage: A Guide to Designing Interfaces That Last

We are a throw-away society—products wear out far too quickly or are replaced by something shinier, newer, or more trendy.

In this piece, we look at designs that have stood the test of time and break down what made them successful. No matter what you’re working on, these guiding principles will help you stop designing disposables and begin creating designs that last.

Continue reading →
Write Fat-free Java Code with Project Lombok

Java has some idiosyncrasies of its own and design choices that can make it rather verbose. While Java is a mature and performant programming language, developers frequently need to write boilerplate code that bring little or no real value other than complying with some set of constraints and conventions.

In this article, Toptal Freelance Software Engineer Miguel García López shows how Project Lombok can help dramatically reduce the amount of boilerplate code that needs to be written in a Java application.

Continue reading →
How to Create Custom Loading Animations to Decrease Bounce Rates

You probably wouldn’t stare at a white screen on a site or app for more than a few seconds without a page load status or time indicator. A well-crafted loading animation helps you stay engaged while you wait. Toptal Design Editor Tidjane Tall will show you how Slack, Trello, and Flickr loading animations can be done with ease. You’ll be able to apply what you learn to create your own branded loading animation from scratch.

Continue reading →
Android Threading: All You Need to Know

Android provides many ways of creating and managing threads, and third-party libraries exist to make that even easier. However, with so many options, choosing the right approach can be quite confusing.

In this article, Toptal Freelance Software Engineer Eliran Goshen discusses some common scenarios in Android development that involve threading and how each of the scenarios can be dealt with.

Continue reading →
A Unit Testing Practitioner's Guide to Everyday Mockito

Using Mockito is not just a matter of adding another dependency. It requires changing how you think about your unit tests while removing a lot of boilerplate.

In this article, we’ll cover multiple mock interfaces, listening invocations, matchers, and argument captors, and see firsthand how Mockito makes your tests cleaner and easier to understand.

Continue reading →
Xamarin Forms, MVVMCross, and SkiaSharp: The Holy Trinity of Cross-Platform App Development

Developing a mobile app for multiple platforms can be quite costly. Implementing the same functionalities in multiple programming languages and dealing with a plethora of unique libraries for each platform requires a massive amount of time and knowledge.

In this article, Toptal Freelance Software Engineer Sylvain Gravel talks about Xamarin and its companion technologies that let you build mobile applications for multiple platforms without compromising familiarity, performance, and uniqueness.

Continue reading →
How to Simplify Concurrency with Reactive Modelling on Android

Dealing with concurrency in Android through imperative-style programming can be quite the hassle. RxJava, a library for reactive and functional style programming, allows concurrency constructs to be modeled in a reactive way in Android’s non-reactive world.

In this article, Toptal Freelance Software Engineer Christopher Arriola shows us how RxJava can be incrementally introduced to existing Android projects and leveraged to simplify concurrency.

Continue reading →
PHP Frameworks: Choosing Between Symfony and Laravel

Many popular languages for web development have their ‘default’ framework, such as Ruby on Rails for Ruby, or Django for Python. However, PHP has no such single default and has multiple popular options to choose from.

In this article, Toptal Freelance Developer Karim Sakhibgareev compares the two most popular PHP frameworks, Symfony and Laravel, explores their features, and establishes guidelines for how PHP developers should choose between them.

Continue reading →
A Guide to CloudKit: How to Sync User Data Across iOS Devices

Modern mobile application development requires a well thought-out plan for keeping user data in sync across various devices. This is a thorny problem with many gotchas and pitfalls, but users expect the feature and expect it to work well. For iOS and macOS, Apple provides a robust toolkit, called CloudKit API, which allows developers targeting Apple platforms to solve this synchronization problem.

In this article, Toptal Software Engineer Paul Young demonstrate how to use CloudKit to keep a user’s data in sync between multiple clients.

Continue reading →
Subscribe
Free email updates
Get the latest content first.
No spam. Just great engineering, design, and finance posts.
Free email updates
Get the latest content first.
Thank you for subscribing!
You can edit your subscription preferences here.