Toptal Engineering Expert
How Hibernate Almost Ruined My Career
Are you building the next big thing? Planning to become the next Facebook or Google? Are you at the point of making fundamental decisions that will stay with you for the entire project? There is a good chance that you will pick a robust language like Java. If so, you want to pick the best object-oriented abstraction of your flexible data model because you don’t want to deal with plain SQL. You want to support all kinds of data and ideally, support all kind of databases. If so, there’s only one right choice for you: Hibernate.
Freelance Software Engineer Grzegorz Gajos explores some possible scenarios where things can go wrong using Hibernate.

Grzegorz Gajos
Grzegorz is a software architect with an international consulting & programming background, & a co-founder for Open Tangerine software house
How Sequel and Sinatra Solve Ruby’s API Problem
The rise of the web and mobile applications has led to an increased need for back-end API services. Ruby on Rails’ philosophy seemingly makes it the ideal framework for creating back-end APIs. However, using Rails only for the API is overkill.
In this article, Freelance Software Engineer Boško Ivanišević explores alternatives to Rails and introduces us to two very mature and powerful gems, Sinatra and Sequel, which in combination provide powerful tools for creating server-side APIs.

Boško Ivanišević
Boško is an experienced architect/developer who is passionate about writing maintainable and readable code for both desktop and web apps.
The 10 Most Common Mistakes That WordPress Developers Make
WordPress is easily the most powerful open-source blogging and content management system available online today. As WordPress is easy enough to set up and has a user-friendly approach, many developers are often underestimating it and so make mistakes in development.
In this article, Toptal Freelance Software Engineer Andrew Schultz outlines the 10 most common mistakes that WordPress developers should be aware of for future projects.

Andrew Schultz
With an engineering degree and strong background in business analysis since 2004, Andrew’s lately focused on web development and WordPress.
The Six Commandments of Good Code: Write Code That Stands the Test of Time
How do you define good code? Is it 100% test coverage, or is it backwards compatibility with decade-old hardware? We may not be able to reach an end to this debate yet, but good software always seems to conform to a few certain qualities of code.
In this article, Toptal Freelance Software Engineer Zachary Goldberg walks us through six simple ideas that can help you make better, more maintainable software.

Zachary Goldberg
A former engineering lead at Google and Entrepreneur in Residence at Tencent, Zachary is a seasoned professional with C-level experience.
Celebrating 25 Years of Linux Kernel Development
Linux is now 25 years old, but it’s no hipster. It’s not chasing around Pokemon, and it’s not moving back in with its parents due to crippling student debt. In fact, Linux is still growing and evolving, but the core ideas of the Linux State of Mind remain the same.
In this article, Toptal Technical Editor Nermin Hajdarbegovic takes a look at the history of Linux development, the state of Linux today, and what’s next for the world’s most popular open-source operating system.

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.
By entering your email, you are agreeing to our privacy policy.
10 Kotlin Features to Boost Android Development
Kotlin is a new, expressive, general-purpose programming language powered by the same virtual machine technology that powers Java. Since Kotlin compiles to the JVM bytecode, it can be used side by side with Java, and it does not come with a performance overhead.
In this article, Toptal Freelance Software Engineer Ivan Kušt gives us a walkthrough of 10 major features of Kotlin that help avoid boilerplate code and, more importantly, save time.

Ivan Kušt
Ivan is a mobile enthusiast who has perfected the development process and architecture of mobile apps.
Java in the Cloud: Continuous Integration Setup Tutorial
More than two decades ago, Java shook the world with its “Write once, run anywhere“ slogan. Today, Java developers have at their disposal a whole set of tools, such as Spring Boot, Docker, Cloud, Amazon Web Services, and Continuous Delivery, to take development and delivery to a whole new universe.
In this article, Toptal Freelance Software Engineer Matko Šuflaj presents all these technologies and guides us through a step-by-step tutorial on how to build a small microservice and prepare it for continuous integration in the cloud.

Matko Šuflaj
Matko is a software engineer with extensive experience in complex Java-based projects. His main focus is the Java and Spring ecosystem.
Why Should Java Developers Give Grails a Chance?
Java may have stood the test of time, but it can still be a source of great frustration among many web developers. Dealing with its verbosity and infrastructure overhead, for example, can take hours, even for the most basic needs.
In this article, Toptal Freelance Software Engineer Gregor Ambrozic shows us how Grails and its many appealing features can be a viable alternative to traditional Java web applications frameworks.

Gregor Ambrozic
Gregor is a full-stack software engineer with more than 12 years of work experience, mostly developing in Java and working with databases.
Meet Ecto, No-compromise Database Wrapper for Concurrent Elixir Apps
Elixir, with its simple and clean syntax, makes building scalable and maintainable concurrent applications a breeze. Ecto is a database wrapper that lives up to the high expectations set by Elixir’s reputation. Its domain-specific language provides a pleasant way to interact with databases and build fault-tolerant, concurrent applications in Elixir with ease.
In this article, Toptal Freelance Software Engineer Boris Barroso walks us through Ecto and its four main components: Repo, Schema, Changeset, and Query.

Boris Barroso
As an entrepreneur, Boris understands the importance of close communication with clients and users to better mold applications to real needs.
Social Network APIs: The Internet’s Portal to the Real World
Many social networks provide APIs that enable the development of apps that expand their functionalities and grant access to user data and insights. This article compares popular social media APIs and gives examples of how to use them.

Behsaad Ramez
Behsaad is a software engineer who has founded multiple technology businesses. His experience spans various fields, including e-commerce, insurance, publishing, and video game development. Behsaad has a master’s degree from Freie Universität Berlin and specializes in Ruby on Rails and Android development, as well as web scraping and working with social media APIs.
Write Tests That Matter: Tackle The Most Complex Code First
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.

Andrey Shalitkin
A CS PhD with over a decade of Java experience, Andrey’s a skilled business architect who’s always looking to use his math/algorithm skills.
How to Build a Multitenant Application: A Hibernate Tutorial
In the realm of enterprise software, especially for software provided as a service, multitenancy ensures that data is truly isolated for each client within a shared instance of software. Among its numerous benefits, multitenancy can greatly simplify release management and cut down costs.
In this article, Toptal Freelance Software Engineer André William Prade Hildinger shows us how Hibernate, a persistence framework for Java, makes implementing a multitenant Java EE application easier than it sounds.

Andre Hildinger
André is a versatile and talented developer with 10+ years of industry experience. He is skilled at Java, Java EE, JavaScript, and more.
A New Way of Using Email for Support Apps: An AWS Tutorial
Of all the modern ways people talk to each other, email seems to have stood the test of time and is arguably still one of the most effective and widely used means of communication. Thus, being able to programmatically send and receive emails can open new dimensions to a user’s experience of software that powers human communication.
In this article, Toptal Freelance Software Engineer Francis Altomare shows us how he leveraged various Amazon Web Services technologies to build a simple communication application in which email itself is an important interface.

Francis Altomare
Francis is a full-stack engineer with a focus on JVM languages and native mobile. As a startup veteran, he has experience growing ideas.
Hunting Down Memory Issues In Ruby: A Definitive Guide
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.

Bruz Marzolf
Bruz is a full-stack developer with 15 years of experience of back-end Ruby, databases, and infrastructure as well as front-end JavaScript.
Introduction to Kotlin: Android Programming for Humans
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.

Tomasz Czura
Tomasz (MCS) is an Android wizard and team lead. His favorite project has been doing the app and back-end of a hotel entertainment system.
Testing Your Go App: Get Started the Right Way
Testing frameworks such as Testify, Ginkgo, and Gomega can streamline testing for Golang applications, however, some of the most efficient and effective tools for testing can be found in Go’s standard libraries. In this article, Toptal developer Gabriel Aszalos covers the basics of testing in Go, from table testing to JSON response assertion.
Toptal Talent Network Experts
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.
















