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

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.

How to Build an Effective Initial Deployment Pipeline

Do you run deployment scripts from your development machine, or find yourself referring to deployments by the day of the week they were deployed, instead of using version numbers? It’s time for a better solution.

In this article, Freelance Ruby Engineer and automation enthusiast Amin Shah Gilani walks you through his perfect deployment pipeline to use at the beginning of your project. With this CI/CD configuration, every push is tested, the master branch is deployed to staging servers with a fresh database dump from the production server, and versioned tags are deployed to production with backups and migrations running automatically.

12-minute readContinue Reading
Amin Shah Gilani

Amin Shah Gilani

Amin is a developer and entrepreneur who loves writing clean, test-driven Ruby and ES6 code—crafted for CI/CD.

Risk vs. Reward: A Guide to Understanding Software Containers

Software delivery has come a long way. And, somewhere between the transition from physical media to software containers, we have changed the way we try to manage them.

In this article, Toptal Freelance Software Engineer Jonathan Bethune explores how software containers have motivated us to treat servers as more dispensable, and the risks and rewards involved.

< 5-minute readContinue Reading
Jonathan Bethune

Jonathan Bethune

Jonathan is an experienced DevOps engineer with experience in infrastructure and security. He has a knack for quickly learning new things.

World-class articles, delivered weekly.

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

Creating Server-side Rendered Vue.js Apps Using Nuxt.js

When using a JavaScript framework, your browser doesn’t receive a complete page to display. Instead it gets a bunch of pieces and instructions of how to put them all together. It takes a substantial amount of time to put all this information together before your browser actually has something to display.

In this article, Toptal Freelance Front-end Engineer Ben Jones introduces us to Nuxt.js, a server-side rendering library for Vue.js, inspired by the popular Next.js for React.js.

21-minute readContinue Reading
Ben Jones

Ben Jones

Ben is a skilled developer focused on user outcomes, with experience in everything from CAD to VBA to web tech to neural networks.

Build a Text Classification Program: An NLP Tutorial

Deep learning has proven its power across many domains, from beating humans at complex board games to synthesizing music. It has also been used extensively in natural language processing.

In this article, Toptal Freelance Software Engineer Shanglun (Sean) Wang shows how easy it is to build a text classification program using different techniques and how well they perform against each other.

7-minute readContinue Reading
Shanglun Wang

Shanglun Wang

Sean is a passionate polyglot: A full-stack wizard, sys admin, and data scientist. He’s also developed market intelligence software.

Rails Service Objects: A Comprehensive Guide

Rails ships with everything you need to prototype your application quickly, but when your codebase starts growing, you’ll run into scenarios where the conventional Fat Model, Skinny Controller mantra breaks. When your business logic can’t fit in either a model or a controller, that’s when service objects come in and let us separate every business action into its own Ruby object.

11-minute readContinue Reading
Amin Shah Gilani

Amin Shah Gilani

Amin is a developer and entrepreneur who loves writing clean, test-driven Ruby and ES6 code—crafted for CI/CD.

Microservice Communication: A Spring Integration Tutorial With Redis

Spring Integration enables lightweight messaging within Spring-based applications. In this article, Toptal Java Developer Adnan Kukuljac shows how Spring Integration with Redis makes it easy to build a microservice architecture.

9-minute readContinue Reading
Adnan Kukuljac

Adnan Kukuljac

Adnan is a software engineer who specializes in graphics, robotics, and back ends, building high-performance solutions in C++, JavaScript, and several other programming languages. Recently, he worked on a project for a major e-commerce company that focused on improving design and performance issues, and which resulted in a 30% reduction in server costs for his employer.

4 Go Language Criticisms

Go is quickly becoming one of the most popular languages: It currently ranks 19 in the TIOBE programming community index, and powers popular software like Kubernetes, Docker, and Heroku CLI. However, for all its simplicity, Go may still be missing some things.

In this article, Toptal Freelance Go Developer Sergei Peshkov shares his concerns about why Go is still far from perfect and how we can make it better.

9-minute readContinue Reading
Sergei Peshkov

Sergei Peshkov

Sergei has worked for more than three years as a back-end developer of web applications specializing in Node.js with MondoDB/PostgreSQL.

One-click Login With Blockchain: A MetaMask Tutorial

Online users are becoming increasingly resistant to traditional email/password registration processes. One-click social logins via Facebook, Google, or GitHub are better, but they come with data privacy trade-offs.

This article introduces a one-click, cryptographically-secure login flow using MetaMask, with all data stored on the app’s own back-end.

13-minute readContinue Reading
Amaury M

Amaury M

Amaury’s MSc/MEng degrees inform his full-stack work in web and mobile (Node.js, React, React Native) as well as blockchain app development.

Machine Learning Video Analysis: Identifying Fish

Machine learning, combined with some standard image processing techniques, can result in powerful video analysis tools.

In this article, Toptal Freelance Software Engineer Michael Karchevsky walks through a solution for a machine learning competition that identifies the species and lengths of any fish present in a given video segment.

5-minute readContinue Reading
Michael Karchevsky

Michael Karchevsky

Michael is an experienced Python, OpenCV, and C++ developer. He’s particularly interested in machine learning and computer vision.

The Comprehensive Guide to JavaScript Design Patterns

As a good JavaScript developer, you strive to write clean, healthy, and maintainable code. While you solve interesting and unique challenges, you’ve likely found that you’re often writing code that looks similar to the code for an entirely different problem you’ve handled before. You may not know it, but you’ve used a design pattern.

22-minute readContinue Reading
Marko Mišura

Marko Mišura

Having worked as a full stack software engineer, Marko is an expert at design, implementation and maintenance of web systems.

Python Logging: An In-Depth Tutorial

As applications become more complex, having good logs can be very useful, not only when debugging but also to provide insight in application issue/performance. The Python standard library includes the Python logging module that provides most of the basic logging features. But this handy logging module in Python also contains some quirks that can cause hours of headaches.

6-minute readContinue Reading
Son Nguyen Kim

Son Nguyen Kim

Son is highly skilled with software engineering and ML algorithms and always tries hard to tackle problems with a simple approach.

Integration and End-to-End Tests Made Easy With Node.js and MongoDB

Interacting with a real database during integration and end-to-end testing can pose distinct challenges. An effective workaround is to use an in-memory database that integrates seamlessly with your testing framework and provides APIs for manipulating state directly from your test code.

In this article, Toptal Software Engineer Mikhail Angelov demonstrates how to do just that—and how to write straightforward integration and end-to-end tests for Node.js and MongoDB applications without the need for complicated setup/teardown code.

7-minute readContinue Reading
Mikhail Angelov

Mikhail Angelov

Mikhail is a full-stack engineer specializing in JavaScript, React, Node.js, Flux, and Redux. His industry experience spans firmware, mobile, and web development in areas including finance, insurance, and transportation technology. He also holds a master’s degree in physics.

Time-locked Wallets: An Introduction to Ethereum Smart Contracts

Launch yourself into Ethereum smart contract development with the Truffle framework! In this tutorial, Toptal Freelance Ethereum Developer Radek Ostrowski shows you how to create a practical ĐApp in the Solidity language, complete with its own ERC20 token.

13-minute readContinue Reading
Radek Ostrowski

Radek Ostrowski

Radek is a blockchain engineer with an interest in Ethereum smart contracts. He also has extensive experience in machine learning.

Database Migrations: Turning Caterpillars into Butterflies

For a large codebase, managing database schema can become tedious, especially if you maintain multiple testing environments or customers that update the product at different paces. Sometimes, documenting the latest schema or database changes isn’t enough.

In this article, Toptal Database Engineer Ivan Pavlov introduces us to concepts that help manage database states.

11-minute readContinue Reading
Ivan Pavlov

Ivan Pavlov

Ivan has both back-end and front-end development experience. He has built software for banks, medical organizations and city administration.

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

Angular 5 is a new version of the Angular framework developed by Google. Angular 5 comes with improvements including optimized builds and faster compile times, but in this Angular 5 tutorial, we are going to build a notes app from scratch. If you’ve been waiting to learn Angular 5, this tutorial is for you.

40-minute readContinue Reading
Sergey Moiseev

Sergey Moiseev

Sergey is a full-stack software engineer with experience developing complex web projects. He has extensive skills as an analyst.

Blockchain, IoT, and the Future of Transportation: Understanding the Motoro Coin

Open-source, IoT, and Ethereum smart contracts work together with a new utility coin to make transportation more accessible and reduce vehicle waste. In this article, Toptal Freelance Ethereum Developer Michał Mikolajczyk explains the motivations and methodology behind his startup’s latest initiative.

16-minute readContinue Reading
Michal Mikolajczyk

Michal Mikolajczyk

Founder/CEO of a blockchain IoT startup and community leader for Toptal Warsaw, Michal has a wide range of full-stack experience.

Toptal Engineering Expert

Gabriel Courtemanche

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.