Toptal Engineering Expert
Single Responsibility Principle: A Recipe for Great Code
Maintainable code is something we all desire and there are no shortage of coding principles that promise it. It is not always apparent how tremendously useful these principles are during the early stages of development. Nonetheless, the effort put in to ensure these qualities certainly pay off as the project grows and development continues. In this article, Toptal engineer Adel Fayzrakhmanov discusses how the Single Responsibility Principle is one of the most important aspect in writing good maintainable code.

Adel Fayzrakhmanov
Adel (MCE) has 15+ years in software development, focused on web technology and quality architecture. PHP and .NET are his forté.
Hosting for Freelance Developers: PaaS, VPS, Cloud, and More
Whether you’re creating a virtual storefront, deploying an app, or simply doing some third-party testing and development, chances are you need some server muscle. The good news is that there is a lot to choose from. The hosting industry may not be loud or exciting, but it never sleeps; it’s a dog eat dog world, with cutthroat pricing, a lot of innovation behind the scenes, and cyclical hardware updates.
In this article, we take a look at hosting options for freelance software engineers: PaaS, Cloud, VPS, dedicated, and more.

Nermin Hajdarbegovic
As a veteran tech writer, Nermin helped create online publications covering everything from the semiconductor industry to cryptocurrency.
What the Hell Is DevOps?
Using modern DevOps Tools like Chef, Docker, Ansible, Packer, Troposphere, Consul, Jenkins, SonarQube, AWS, etc., does not mean that you are applying DevOps principles. DevOps is a way of thinking.

Demir Selmanovic
Demir is a developer and project manager with over 15 years of professional experience in a wide range of software development roles.
Ultimate Guide to the Processing Language Part I: The Fundamentals
Rapid prototyping and the ability to produce quick visual results are features of many programming languages and frameworks. However, some take it even further by making these their primary goals. Processing, a programming language based on Java, allows its users to code within the context of visual arts and has been designed from the ground up to provide instant visual feedback. In this article, Toptal engineer Oguz Gelal provides a gentle introduction to Processing and some insights into its inner mechanics.

Oguz Gelal
Oguz is a software engineer and full-stack web developer. He has worked with a number of frameworks and tools, fron- and back-end.
Simplified NGINX Load Balancing with Loadcat
NGINX, a sophisticated web server, offers high performance load balancing features, among many other capabilities. Like most other web server software for Unix-based systems, NGINX can be configured easily by writing simple text files. However, there is something interesting about tools that configure other tools, and it may be even easier to configure an NGINX load balancer if there was a tool for it.
In this article, Toptal engineer Mahmud Ridwan demonstrates how easy it is to build a simple tool with a web-based GUI capable of configuring NGINX as a load balancer.

Mahmud Ridwan
Mahmud is a software developer with many years of experience and a knack for efficiency, scalability, and stable solutions.
World-class articles, delivered weekly.
By entering your email, you are agreeing to our privacy policy.
Open Source: It’s Not That Scary!
Is open source scary? Do developers think that nobody would be interested in their personal projects? What are the fears associated with publishing your own work for the public to see? In this article, Toptal Director of Engineering Anna Chiara Bellini shares how, as an accomplished engineer, she made her first contribution to GitHub. This guide features all the step-by-step basics to getting involved in open source, including everything from what open source software is, to how to start working with Git and GitHub, to actually making meaningful contributions to open source projects.

Anna-Chiara Bellini
When Anna started coding at a young age. Since then, her career has spanned many different projects and programming technologies.
Building REST API for Legacy PHP Projects
Every once in a while PHP developers are charged with tasks that require them to extend the functionalities of legacy projects, a task that often includes building REST APIs. Building a REST API for PHP-based projects is challenging, but in the absence of proper frameworks and tools, it can also be a particularly difficult goal to get right. In this article, Toptal engineer Arminas Zukauskas shares his advice, with sample code, on how to build a modern structured REST API around existing legacy PHP projects.

Arminas Zukauskas
Arminas uses IT skills making business efficient. Worked on Toptal Core. His expertise includes NodeJS, PHP, MySQL and analytical thinking.
Hunting and Analyzing High CPU Usage in .NET Applications
Software performance in production is hard to analyze. Things can go wrong at any time, and code can start executing in ways that weren’t planned for. In these cases, what do we do? In this article, Toptal engineer Juan Pablo Scida analyzes a real scenario of high CPU usage of a web application. He covers all the processes and .NET code analysis involved to identify the problem, explains how the problem was solved, and most importantly, explores why this problem happened in the first place.

Juan Pablo Scida
Juan is a software architect with more than 10 years of experience. He is a certified .NET and Java developer, and loves Node.js and Erlang.
Debugging Memory Leaks in Node.js Applications
Memory leaks in long running Node.js applications are like ticking time bombs that, if left unchecked in production environments, can result in devastating outcomes. These bugs are often considered to be hard to find. However, with the right tools and a strategic approach, memory leaks can not only be solved but also avoided in the future. In this article, Toptal engineer Vladyslav Millier gives us insight into what memory leaks are, how some sophisticated debugging tools can be used to find memory leaks, and how to plug them once and for all.

Vlad Miller
Vlad is a versatile software engineer with experience in many fields. He is currently perfecting his Scala and machine learning skills.
Towards Updatable D3.js Charts
When Mike Bostock created D3.js, he introduced a tried and true reusable charts pattern for implementing the same chart in any number of selections. However, the limitations of this pattern are realized once the chart is initialized. In this article, Toptal engineer Rob Moore presents a revised reusable charts pattern that leverages the full power of D3.js.

Rob Moore
where he tries to bring to the web development the experiences got in the field of HPC and (Big) Data Processing.
Software Reengineering: From Spaghetti to Clean Design
Inheriting someone else’s code can be a nightmare, especially when the code is poorly designed and lacks documentation. In this post, Toptal Engineer Juan Pablo Scida provides a case study of how he reengineered a chat server written in Node.js, transforming its original spaghetti code into a cleanly architected and designed piece of software.

Juan Pablo Scida
Juan is a software architect with more than 10 years of experience. He is a certified .NET and Java developer, and loves Node.js and Erlang.
Implementing a Remote Framebuffer Server in Java
Connecting to remote computers and working on them through terminals over a network is something we often take for granted. Technologies that enable us to do this have changed the way we work and have opened doors to amazing possibilities. Although the inner workings of these technologies may seem like obscure knowledge, implementations of many of these technologies are surprisingly straightforward. In this article, Toptal engineer Igor Delac gives us a step-by-step tutorial on how to implement the Remote Framebuffer server-side protocol in Java, allowing Swing-based applications to run and be interacted with remotely using standard VNC clients.

Igor Delac
Igor is an enthusiastic and skilled professional with experience in Java development, system administration, and he loves to experiment.
Getting Started With Docker: Simplifying DevOps
Docker, an open source tool, has changed the way we think about deploying applications to servers. By leveraging some amazing resource isolation features of the Linux kernel, Docker makes it possible to easily isolate server applications into containers, control resource allocation, and design simpler deployment pipelines. Moreover, Docker enables all of this without the additional overhead of full-fledged virtual machines.

Radek Ostrowski
Radek is a blockchain engineer with an interest in Ethereum smart contracts. He also has extensive experience in machine learning.
Unity With MVC: How to Level Up Your Game Development
In this article I’ll relate my experience with the popular Unity game development platform and the Model-View-Controller (MVC) pattern for game development. In my seven years of development, having wrestled with my fair share of game dev spaghetti, I’ve been achieving great code structure and development speed using this design pattern.

Eduardo Dias da Costa
Eduardo is a developer with 12+ years of experience focused on client and front-end applications. He is always open to learning new things.
After All These Years, the World Is Still Powered by C Programming
Despite the prevalence of higher-level languages, the C programming language continues to empower the world. There are plenty of reasons to believe that C programming will remain active for a long time. Here are some reasons that C is unbeatable, and almost mandatory, for certain applications.

Daniel Munoz
Daniel has created high-performance applications in C++ for large companies such as Dreamworks. He also excels with C and ASM (x86).
Google Cloud Source Repositories vs. Bitbucket vs. GitHub: A Worthy Alternative?
Google’s new cloud code platform does not appear to be taking on GitHub head on. Instead, Cloud Source Repositories (CSR) will allow users to connect to repositories hosted on GitHub or Bitbucket. However, everything is automatically synced to the Google Cloud Source Repository.
The good news is that a Google CSR can be connected to another Git repository hosted on GitHub or Bitbucket. All changes will be synchronised on both platforms, as you can set Google CSR to automatically mirror from GitHub and Bitbucket.

Nermin Hajdarbegovic
As a veteran tech writer, Nermin helped create online publications covering everything from the semiconductor industry to cryptocurrency.
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.
















