Project Management posts

The Toptal Engineering Blog is a platform for sharing projects and discussing technologies.
Time Management Secrets of an Efficient Engineer

Freelancers work flexible hours, but this convenience comes at a price: They have to manage their time better than on-site professionals. However, it also means they’re free to optimize their routine and achieve exceptional efficiency.

In this post, software engineer Dmitry Ryazantsev will guide you through the ins and outs of personal time management, leaving little to chance. What good are great rates if you waste hours each week?

Continue reading →
To Designers With Love (A Letter From a Front-end Developer)

If you’re a veteran frontender, you’ve probably had some not-so-great experiences with designers, and chances are some designers have had an equally bad experience working with you. How can you make sure you get exactly what you need from your designer, without placing an undue burden on them?

It’s a tall order, but in this article Freelance Software Engineer Vedran Aberle Tokic outlines and addresses a number of potential issues that may become roadblocks for your execution. Implementing these suggestions may result in overhead for designers, but they can save enormous amounts of time and headache elsewhere.

Continue reading →
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.

Continue reading →
Spectacular Crowdfunding Fails And Their Impact On Entrepreneurship

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.

Continue reading →
Keep Calm And Transition To A New Development Team

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.

Continue reading →
Encouraging Action And Timeliness In A Remote Workplace

Synchronizing productivity for interdependent team tasks can be a hassle even in the best traditional workplace environments. Add in the inherent challenges of a remote team, and the hassle becomes two-fold. But it doesn’t have to be.

Toptal’s Technical Editor Kate Scheer takes us along on her journey to inspire timely content from her remote authors, and her communication recommendations cross into other realms of remote work.

Continue reading →
You Need a Hero: The Project Manager

For every tech project or business, there’s inevitably the “client” and the “programmer”. Sometimes they make it work between themselves, but often someone has to step in to establish the ground rules, keep everyone honest, and facilitate communication between all parties.

This someone, this hero, is the project manager.

In this entertaining article, Ethan James gives his insights as to why you, the developer, and you, the client, should invest in a project manager… or at least employ the techniques outlined.

Continue reading →
Guide: Software Release Management For Small Teams

Small teams frequently have to compete with bigger, more structured organizations who are capable of allocating more resources to project management, and software release management in particular. This means that small teams, or even individual developers, need to properly organize and execute their release process in order to keep up.

In this article, Toptal Freelance Software Engineer Lucas Mancini focuses specifically on small startups, teams that don’t have, or can’t afford, DevOps support, or teams that don’t have a formal process defined for releasing new versions of their product. The author provides a suggested checklist method to manage releases, tailored to match his past experience working on different projects, together with some recommended best practices and guidelines.

Continue reading →
Agile, Scrum, and Kanban: What the Heck Do These Words Really Mean?

When a software developer hears news about a “new JavaScript framework” or a “new IDE,” he doesn’t need to ask more questions to clarify what it’s about. But if he hears about a “new agile framework,” he will likely do the Homer-Simpsonian nodding, pretending that he knows what it’s about, but he will have one, and only one, question: “What the heck does ‘agile framework’ mean?”

In the modern software development environment, we increasingly hear words like “agile,” “scrum,” and “kanban,” and they are often used improperly. In this article, I’ll try to explain and to clarify some of these terms.

Continue reading →
The Art of War Applied To Software Development

The Art of War is an ancient military treatise, but despite its age, the text is still included in the syllabus at many military schools. Sun Tzu’s principles and teachings also have practical applications in politics, business, sports, and, believe it or not, software development. In fact, you might just be applying some of these principles in your daily routine, without even knowing.

In this post, Toptal Freelance Software Engineer Jose F. Maldonado explains why many of these ancient teachings still matter, and what you can do to make them work for you and your team.

Continue reading →
Context Validation in Domain-Driven Design

Handling all validation in domain objects results in objects that are huge and complex to work with. In domain-driven design, using decoupled validator components allows your code to be much more reusable and enables validation rules to rapidly grow.

In this article, Toptal engineer Josip Medic shows us how validation can be decoupled from domain objects, made context-specific, and structured well to achieve more sustainable validation code.

Continue reading →
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.

Continue reading →
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.

Continue reading →
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.

Continue reading →
Skype Tips for Remote Teams

Toptal has a strong remote culture), to say the least. To keep up with each other, we need a tool to keep team members in sync, where we can reach any other person at a moment’s notice. We use Skype as our main communication channel among Toptal’s core team.

Over the years, Skype has grown a lot, and has become a versatile tool that can be used on all of your devices at once, syncing chat amongst them, and providing a simple way to call and share screens. It is a tool that we leverage every day for our internal operations.

As heavy Skype users, there are a few things we’ve noticed that might not be clear to everyone. Here are a few tips on how you and your remote team can get the most of of Skype.

Continue reading →
Is Open Source Open to Women?

The fact that women are underrepresented in tech is nothing new. However, while we’ve seen the gender diversity reports from companies like Google, Facebook, and many more, a look at the number of women in the open source community suggests that the numbers might be worse than these reports imply. In this post, Toptal COO Breanden Beneschott shares the results of a study looking at gender on GitHub and considers a few reasons why GitHub is so male-dominated, including a few ideas on how we can make the open source community a more welcoming place.

Continue reading →
Developer’s Guide to Open Source Licenses

Many developers often overlook, or do not thoroughly think through the implications of open source licenses. Whether you’re planning to open source your own project under one of these licenses, or you intend to integrate some other open source project into one of your own, it’s important to have at least some knowledge of what these licenses are, how they may affect your projects, and how they complement or contradict one another. In this article, Toptal engineer David Marín gives us a comprehensive guide to some of the most popular open source licenses, and several rules of thumb to follow when choosing a license for future open source projects.

Continue reading →
Things To Watch Out For While Working Remotely

Remote jobs can be good for you, but depending on your character, they can also have some unpleasant side-effects. Burnout affects people in all walks of life and in all industries, so what makes remote workers different?

Recognising burnout symptoms early on is of vital importance and I cannot stress this enough. The deeper you sink into it, the longer it will take to recover, it’s as simple as that.

Continue reading →
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.

Continue reading →
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.

Continue reading →
Case Study: Using Toptal To Reel In Big Fish

Whether you’re an avid angler or an app developer, you may be interested in taking a closer look at the development of a fishing app, which involved some of your fellow Toptalers.

The goal was to create an app that would be truly useful in a professional fishing setting, while at the same time meeting a hard deadline. Since Fatsack Outdoors wanted to launch the app at one of the biggest fishing tradeshows of the year, the deadline was non-negotiable.

Continue reading →
Unit Tests, How to Write Testable Code and Why it Matters

In this article, I will show that unit testing itself is quite easy; the real problems that complicate unit testing, and introduce expensive complexity, are a result of poorly-designed, untestable code. We will discuss what makes code hard to test, which anti-patterns and bad practices we should avoid to improve testability, and what other benefits we can achieve by writing testable code. We will see that writing testable code is not just about making testing less troublesome, but about making the code itself more robust, and easier to maintain.

Continue reading →
The Ultimate Introduction To Agile Project Management

Simply calling something Agile isn’t particularly helpful. The word, even in a software context, means different things to different people or organizations. There are many facets, definitions, implementations, and interpretations.

In this article, Toptal Head of Projects Paul Barnes teaches about behaviors, frameworks, techniques, and concepts supporting agile project management in software development.

Continue reading →
How to Make Remote Working Work for You

Remote work comes with lots of things to take into account when designing your schedule, so finding the right balance that works best for you can be tricky. Here’s how to create a remote working schedule that works best for you, enabling you to get the most out of life while staying productive and effectively supporting your colleagues.

Continue reading →
Ergonomics for Digital Nomads: Working on the Road Without Killing Yourself

We live in a time where technology has made it possible to work from anywhere, and many people have eschewed the traditional office for the chaotic din of a cafe in Bangkok or a hotel in Prague. Yet, while this trend has opened up unprecedented opportunities, it also brings with it a number of challenges, perhaps the most insidious of which is a lack of ergonomically healthy options in non-traditional workspaces.

Continue reading →
The Vital Guide To Hire Great Freelance Developers

Technically, hiring freelance developers has never been easier, but don’t lull yourself into a false sense of security. The number of freelance platforms and skilled developers on the market is going up, but so are the challenges associated with finding, testing and selecting a truly great candidate.

Continue reading →
Advanced Tactics for Highly Collaborative, Remote Teams

Any time you’re physically out of the office or working with someone who isn’t next to you, you’re working remotely. At Toptal, working remotely is a productive and efficient reality that we evangelize to our clients, while practicing what we preach.

In this article, Toptal COO Breanden Beneschott shares great tactics in operating highly collaborative remote teams.

Continue reading →
What To Look Out For In Software Development NDAs

You might presume that Non-Disclosure Agreements (NDAs) have been widely accepted in the tech world as a means to protect sensitive and potentially valuable information from theft and abuse. Not so fast.

Jones Day Corporate Associate Bret J. Stancil examines software developer NDAs for Toptal blog followers in a must-read post for anyone faced with the prospect of signing an NDA.

Continue reading →
How Not To Manage Your Remote Team of Developers

When entering the remote developers’ world, the biggest obstacle that managers must overcome is to change their mindset by accepting that the developer will not be in plain sight, and where they can manage and follow the work being done.

This new paradigm requires businesses to implement a number of mechanisms to track progress and avoid a redundant workload. Such mechanisms will help both manager and developer be more productive, which is in everyone’s best interest.

Continue reading →
Tips for Developing an Android App: My Lessons Learned

This article provides an overview on building a great Android application, from defining an idea to releasing an application to the store. Toptal developer Ivan Dimoski gives us a chance to learn from his experience in making Ooshies, an Android Live Wallpaper designed to give you a hug and make you feel loved each time you interact with your Android device.

Continue reading →
5 Golden Rules for Great Web API Design

Web services and their APIs abound. Unfortunately, the vast majority are difficult to use. Reasons range from poor design, to lack of documentation, to volatility, to unresolved bugs, or in some cases, all of the above.

Follow the guidance in this post to help ensure that your web API is clean, well-documented, and easy-to-use. Such APIs are truly rare and are therefore much more likely to be widely adopted and used.

Continue reading →
Hosting a Tech Conference for a Software Developer Network: The CordobaJS Event

Beyond its beauty, in recent years Córdoba has been enjoying a rapidly growing reputation as a technology center, one that may soon rival Buenos Aires as Argentina’s main technology hub. Last month, Toptal coordinated and hosted a highly successful and well-attended JavaScript Technical Conference in Córdoba, Argentina. Read about how the event came together and the vibrant network of software developers in and around Córdoba.

Continue reading →
Your Boss Won't Appreciate TDD: Try This Behavior-Driven Development Example

Testing. It always seems to get left to the last minute, then cut because you’re out of time, budget, or whatever else. Management wonders why developers can’t just “get it right the first time”, and developers (especially on large systems) can be taken off-guard when different stakeholders describe different parts of the system.

With behavior-driven development, you can turn testing into a shared process that focuses on the behaviors of the system, why they matter, and who cares.

Continue reading →
In Search of the Elite Few – Finding and Hiring the Best Software Developers in the Industry

Effective interviewing and hiring is as much of an art as it is a science. Nonetheless, approaches and methodologies do exist for evaluating the more subtle dimensions of a software developer’s skills and abilities. When used collectively, these techniques yield a highly effective screening process with a proven track record of success. That process is what this post is all about.

Continue reading →
Anti-Patterns in Telecommuting

As a veteran telecommuter through multiple jobs in my career, I have witnessed and experienced the many joys of being a remote worker. As for the horror stories, I have more than a few I could tell. With a bit of artistic inclination and a talent for mathematics, I also have a fascination with patterns: design patterns, architectural patterns, behavioral patterns, social patterns, weather patterns—all sorts of patterns!

When I first encountered anti-patterns, I discovered a trove of wisdom I wish I had known before I had learned the hard way. Anti-patterns are recognizable repeated patterns that contribute significantly to failure. For example, the manager that keeps interrupting the employee in order to see if the employee is getting any work done is engaging in an anti-pattern that serves to prevent the employee from getting any work done!

Based on my own experiences and experiences of friends and co-workers, I am assembling descriptions of anti-patterns related to telecommuting.

Continue reading →
How a Single Front-End Engineer Can Replace a Team of Two

Demand within the web design scene today has changed over the past few years: designers with front-end skills, and front-end developers with design skills, are more and more in demand. Yes, you could argue that the jobs are completely different—and maybe you straight-up don’t like one of them—but truth be told, in my six years as a freelance web developer and twelve years as a designer, I’ve learned that it’s much harder to get by as just a web designer or just a front-end developer.

Wearing both hats has a lot of advantages: from a professional perspective alone, you can find work more easily and charge a higher rate because you’re bringing more to the table.

Continue reading →
The Ultimate Remote Team Culture

At Toptal, we’re building a software product that aims to revolutionize team creation, contracting, and human resources. Our team is completely distributed: we have no office, and we work from all around the globe. And when I say “all around the globe”, I mean “all around the globe”: our internal staff consists of nearly 50 full-time individuals from Brazil, USA, Russia, Argentina, Czech Republic, Ukraine, Hungary, and more. This includes engineers, designers, recruiters, sales, and executives.

We all work from home, and we’re good at it: we’ve had countless Skype sessions, code reviews, feature iterations—all components in building a great product. We work hard, and we’ve been at it with as much fervor and energy as ever.

Earlier this year, we decided it was time to bring everyone together in the same location. We’ve had tremendous success as a distributed team. But regardless, we wanted to add an edge to our collaboration and creativity, and connect in-person. Our journey, the results that came of it, and the economics behind it are all explained thoroughly in the post that follows.

Continue reading →
How to Work Remotely and Still Be the Best

Starting a new remote gig, be it a contract project or a full-time job, can be a little intimidating if you’re used to going into an office day after day.

But this style of employment is growing in popularity, with some very notable companies lending it their endorsements.

I’ve worked remotely for years now on projects of various scales and durations. With this post, I hope to enumerate some of the best practices that I’ve picked up for working in a variety of situations. The advice here ranges from specific recommendations for software and hardware, to tips for hitting your team’s deadlines.

Continue reading →