Software Engineering

Showing 19-27 of 39 results
EngineeringIcon ChevronProject Management

Spectacular Crowdfunding Fails And Their Impact On Entrepreneurship

by Nermin Hajdarbegovic

What's the biggest problem with crowdfunding today? Everyone wants a sweet slice of the crowdfunded pie, but nobody wants a single crumb of responsibility. As a result, crowdfunding platforms, the tech press, and the geek public have picked up a track record filled with spectacular crowdfunding failures. In this article, Toptal Technical Editor Nermin Hajdarbegovic takes a look at the state of crowdfunding today and explains why the industry needs to do more to clean up its act and get rid of bad apples in crowdfunding.

9 minute readContinue Reading
EngineeringIcon ChevronBack-end

Write Tests That Matter: Tackle The Most Complex Code First

by Andrey Shalitkin

In today's world, code is expected to change as quickly as requirements do, and tests play an important role in making that possible. Many modern projects boast great test coverage, making them more resilient to regression issues. However, that is not true for all projects - especially some legacy projects which have little in the way of testing. In this article, Toptal Freelance Software Engineer Andrey Shalitkin discusses two metrics, coupling and cyclomatic complexity, that are important in identifying which portions of code to include in test coverage.

8 minute readContinue Reading
EngineeringIcon ChevronBack-end

Hunting Down Memory Issues In Ruby: A Definitive Guide

by Bruz Marzolf

Memory issues in programs can be quite frustrating whether you’re the user or the developer attempting to solve the problem. In Ruby, the garbage collector plays a vital role in managing your program's memory so that you can focus on other important things. However, it is often possible to overwhelm the garbage collector or end up with sneaky resources that cannot be freed, which can lead to all sorts of memory issues. In this article, Toptal Freelance Software Engineer Bruz Marzolf explains why certain memory issues arise in Ruby applications and how to tackle them easily.

11 minute readContinue Reading
EngineeringIcon ChevronBack-end

Introduction to Kotlin: Android Programming For Humans

by Tomasz Czura

Java has been a dominant programming language for ages, but modern times call for modern languages. Meet Kotlin, a modern, clear, and expressive programming language powered by the same virtual machine technology that powers Java. In this article, Toptal Freelance Software Engineer Tomasz Czura takes us for a spin through the world of Kotlin and shows us how it can be used to make an Android application with an elegant architecture without compromising the very qualities of the code that Kotlin aims to provide.

14 minute readContinue Reading
EngineeringIcon ChevronBack-end

Keep Calm And Transition To A New Development Team

by Carlos Ramirez III

Many product owners don’t have a technical background and thus often find themselves unprepared and scrambling when it comes time to bring on a new development team. This often results in hindered progress, wasted time, and frustration for everyone involved. If this sounds like it could be you, either now or in the future, then you should be somewhat concerned. In this blog post, Toptal Freelance Software Engineer Carlos Ramirez III will walk you through the various steps of a typical transition process in project management so you can prepare for this eventuality and make the transition as smooth as possible.

10 minute readContinue Reading
EngineeringIcon ChevronBack-end

Jumpstart Your PHP Testing with Codeception

by Vasily Koval

Would you like to test your PHP code like a boss? Do you feel that basic unit tests and PHPUnit just don't cut it anymore? If your answer to both questions is yes, you might want to try Codeception, a mature and well-documented testing framework designed to outperform PHPUnit and Behat. In this post, Toptal Freelance Software Engineer Vasily Koval describes how he came to take the plunge and start using Codeception, and he explains why you should check out Codeception for your PHP testing needs.

10 minute readContinue Reading
EngineeringIcon ChevronBack-end

Declarative Programming: Is It A Real Thing?

by Federico Pereiro

In a nutshell, declarative programming consists of instructing a program on what needs to be done, instead of telling it how to do it. This approach involves providing a domain-specific language (DSL) for expressing what the user wants. This DSL shields users from messy low-level constructs while still achieving the desired end-state. While declarative programming offers advantages over the imperative approach it replaces, it’s not as straightforward as it may seem. In this comprehensive article, Toptal Freelance Software Engineer Federico Pereiro outlines his experience with declarative tools and explains how you can make declarative programming work for you.

25+ minute readContinue Reading
EngineeringIcon ChevronBack-end

Introduction To Concurrent Programming: A Beginner's Guide

by Marko Dvečko

Concurrency allows programs to deal with a lot of tasks at once. But writing concurrent programs isn't a particularly easy feat. Dealing with constructs such as threads and locks and avoiding issues like race conditions and deadlocks can be quite cumbersome, making concurrent programs difficult to write. In this article, Toptal Freelance Software Engineer Marko Dvečko gives us an overview of some concurrent programming models. He explains how each of these models gives structure to the programs we write and shows how to avoid certain concurrency issues that can come with these models.

23 minute readContinue Reading
EngineeringIcon ChevronBack-end

Eliminating the Garbage Collector: The RAII Way

by Peter Goodspeed-Niklaus

Manual memory management is a nightmare that programmers have been inventing ways to avoid since the invention of the compiler. Programming languages with garbage collectors make life easier, but at the cost of performance. In this article, Toptal engineer Peter Goodspeed-Niklaus gives us a peek into the history of garbage collectors and explains how notions of ownership and borrowing can help eliminate garbage collectors without compromising their safety guarantees.

13 minute readContinue Reading

Join the Toptal® community.