United StatesToptal Member Since November 23, 2015
Ryan Felton is Facebook Innovation Award winning executive, highly technical software developer specializing in Ruby on Rails, a veteran, MBA graduate, and a passionate software entrepreneur who has lead the software engineering of 3 business from concept to acquisition.
Bosnia and HerzegovinaToptal Member Since December 21, 2014
Emir is a talented software architect and developer with over 20 years of experience and is fully capable of everything from leading a team to working solo. He enjoys finding the potential in customer ideas and improving them as needed during the development process. Emir is especially adept at spotting potential design flaws and improving the UI until user's manuals are no longer needed.
... allows corporations to quickly assemble teams that have the right skills for specific projects.
Despite accelerating demand for coders, Toptal prides itself on almost Ivy League-level vetting.
Creating an app for the game
Building a cross-platform app to be used worldwide
Leading a digital transformation
Drilling into real-time data creates an industry game changer
Tripcents wouldn't exist without Toptal. Toptal Projects enabled us to rapidly develop our foundation with a product manager, lead developer, and senior designer. In just over 60 days we went from concept to Alpha. The speed, knowledge, expertise, and flexibility is second to none. The Toptal team were as part of tripcents as any in-house team member of tripcents. They contributed and took ownership of the development just like everyone else. We will continue to use Toptal. As a startup, they are our secret weapon.
Brantley Pace, CEO & Co-Founder
I am more than pleased with our experience with Toptal. The professional I got to work with was on the phone with me within a couple of hours. I knew after discussing my project with him that he was the candidate I wanted. I hired him immediately and he wasted no time in getting to my project, even going the extra mile by adding some great design elements that enhanced our overall look.
Paul Fenley, Director
K Dunn & Associates
The developers I was paired with were incredible -- smart, driven, and responsive. It used to be hard to find quality engineers and consultants. Now it isn't.
Ryan Rockefeller, CEO
Toptal understood our project needs immediately. We were matched with an exceptional freelancer from Argentina who, from Day 1, immersed himself in our industry, blended seamlessly with our team, understood our vision, and produced top-notch results. Toptal makes connecting with superior developers and programmers very easy.
Jason Kulik, Co-Founder
As a small company with limited resources we can't afford to make expensive mistakes. Toptal provided us with an experienced programmer who was able to hit the ground running and begin contributing immediately. It has been a great experience and one we'd repeat again in a heartbeat.
Stuart Pocknee , Principal
Site Specific Software Solutions
We used Toptal to hire a developer with extensive Amazon Web Services experience. We interviewed four candidates, one of which turned out to be a great fit for our requirements. The process was quick and effective.
Abner Guzmán Rivera, CTO and Chief Scientist
Sergio was an awesome developer to work with. Top notch, responsive, and got the work done efficiently.
Dennis Baldwin, Chief Technologist and Co-Founder
Working with Marcin is a joy. He is competent, professional, flexible, and extremely quick to understand what is required and how to implement it.
André Fischer, CTO
We needed a expert engineer who could start on our project immediately. Simanas exceeded our expectations with his work. Not having to interview and chase down an expert developer was an excellent time-saver and made everyone feel more comfortable with our choice to switch platforms to utilize a more robust language. Toptal made the process easy and convenient. Toptal is now the first place we look for expert-level help.
Derek Minor, Senior VP of Web Development
Networld Media Group
Toptal's developers and architects have been both very professional and easy to work with. The solution they produced was fairly priced and top quality, reducing our time to launch. Thanks again, Toptal.
Jeremy Wessels, CEO
We had a great experience with Toptal. They paired us with the perfect developer for our application and made the process very easy. It was also easy to extend beyond the initial time frame, and we were able to keep the same contractor throughout our project. We definitely recommend Toptal for finding high quality talent quickly and seamlessly.
Ryan Morrissey, CTO
Applied Business Technologies, LLC
I'm incredibly impressed with Toptal. Our developer communicates with me every day, and is a very powerful coder. He's a true professional and his work is just excellent. 5 stars for Toptal.
Pietro Casoar, CEO
Ronin Play Pty Ltd
Working with Toptal has been a great experience. Prior to using them, I had spent quite some time interviewing other freelancers and wasn't finding what I needed. After engaging with Toptal, they matched me up with the perfect developer in a matter of days. The developer I'm working with not only delivers quality code, but he also makes suggestions on things that I hadn't thought of. It's clear to me that Amaury knows what he is doing. Highly recommended!
George Cheng, CEO
As a Toptal qualified front-end developer, I also run my own consulting practice. When clients come to me for help filling key roles on their team, Toptal is the only place I feel comfortable recommending. Toptal's entire candidate pool is the best of the best. Toptal is the best value for money I've found in nearly half a decade of professional online work.
Ethan Brooks, CTO
Langlotz Patent & Trademark Works, Inc.
In Higgle's early days, we needed the best-in-class developers, at affordable rates, in a timely fashion. Toptal delivered!
Lara Aldag, CEO
Toptal makes finding a candidate extremely easy and gives you peace-of-mind that they have the skills to deliver. I would definitely recommend their services to anyone looking for highly-skilled developers.
Michael Gluckman, Data Manager
Toptal’s ability to rapidly match our project with the best developers was just superb. The developers have become part of our team, and I’m amazed at the level of professional commitment each of them has demonstrated. For those looking to work remotely with the best engineers, look no further than Toptal.
Laurent Alis, Founder
Toptal makes finding qualified engineers a breeze. We needed an experienced ASP.NET MVC architect to guide the development of our start-up app, and Toptal had three great candidates for us in less than a week. After making our selection, the engineer was online immediately and hit the ground running. It was so much faster and easier than having to discover and vet candidates ourselves.
Jeff Kelly, Co-Founder
We needed some short-term work in Scala, and Toptal found us a great developer within 24 hours. This simply would not have been possible via any other platform.
Franco Arda, Co-Founder
Toptal offers a no-compromise solution to businesses undergoing rapid development and scale. Every engineer we've contracted through Toptal has quickly integrated into our team and held their work to the highest standard of quality while maintaining blazing development speed.
Greg Kimball, Co-Founder
How to Hire Software Consultants through Toptal
Talk to One of Our Industry Experts
A Toptal director of engineering will work with you to understand your goals, technical needs, and team dynamics.
Work With Hand-Selected Talent
Within days, we'll introduce you to the right software consultant for your project. Average time to match is under 24 hours.
The Right Fit, Guaranteed
Work with your new software consultant for a trial period (pay only if satisfied), ensuring they're the right fit before starting the engagement.
Find Experts With Related Skills
Access a vast pool of skilled developers in our talent network and hire the top 3% within just 48 hours.
At Toptal, we thoroughly screen our software consultants to ensure we only match you with talent of the highest caliber. Of the more than 200,000 people who apply to join the Toptal network each year, fewer than 3% make the cut. You’ll work with engineering experts (never generalized recruiters or HR reps) to understand your goals, technical needs, and team dynamics. The end result: expert vetted talent from our network, custom matched to fit your business needs.
Can I hire software consultants in less than 48 hours through Toptal?
Depending on availability and how fast you can progress, you could start working with a software consultant within 48 hours of signing up.
What is the no-risk trial period for Toptal software consultants?
We make sure that each engagement between you and your software consultant begins with a trial period of up to two weeks. This means that you have time to confirm the engagement will be successful. If you’re completely satisfied with the results, we’ll bill you for the time and continue the engagement for as long as you’d like. If you’re not completely satisfied, you won’t be billed. From there, we can either part ways, or we can provide you with another expert who may be a better fit and with whom we will begin a second, no-risk trial.
Thirteen Clear Signs That You're Ready to Hire a Software Developer
Suppose you are the CIO of a medium-sized company.
The executive directors have done their strategic planning exercise and have a clear vision of where they want the company to be in the short and medium term. They have also determined that the best course of action is to enhance existing applications and/or develop new ones.
And, since the company’s business is so unique, they want to do all these technical projects internally. This means, of course, that the IT area will be fully loaded from now on.
There you are, in charge of the company’s IT infrastructure—which by itself is a 110-percent-time role—and starting now, you’re overloaded with these new projects, which are, of course, software development by definition.
What do you do? After some Googling, analyzing, and talking to possible providers, you’re left with one main question: How will you manage this, given the time and budget constraints defined by the executive team?
We present here thirteen clear signs that can help you validate if the best course of action is hiring a software developer (or a team) for your company’s short- and medium-term IT projects.
These clues relate to the state of the company, the maturity of its IT department, the project or goals to be fulfilled by the software professionals, and the technical choices involved.
These are not exhaustive criteria, but pieces of the puzzle to consider. Good judgment and common sense are also key factors in choosing the best course of action.
Let’s begin with the company-related factors:
Company Size Is Appropriate
If your company has a formal organization with units in charge of specific business tasks and with defined people, KPIs, and procedures, you will have more chances of succeeding with your own software development. You will be able to assemble a multidisciplinary team to define and test the requirements of your development.
If the company is young and everybody does everything, or the boundaries between areas and their responsibilities are not 100 percent defined, you would likely do better to trade off some requirements and use an off-the-shelf product, instead of embarking on a doomed-to-fail project.
The key concept here is the organization chart being clear, enforced, and implemented, so everybody knows who does what.
Company Procedures and Policies Cannot Be Compromised
One of the biggest advantages of custom development is that the final product will comply with the company’s procedures and policies. Otherwise, you risk compromising or adapting your company’s operations to an external product that can diminish or simply take away key competitive advantages.
If the software required by the company does indeed have the goal of supporting and complying with the company’s procedures and policies, you should seriously consider hiring a team of developers to make it happen.
Next, let’s analyze the maturity factors:
There Is IT Experience
If the company has implemented previous IT projects and has some experience in IT best practices, it is more likely that a software development project will succeed.
It’s not just about computer programming: Developing computer software is not an easy task.
However, we have seen that it is a critical success factor that there is at least some knowledge of software development methodologies in IT management, or good software practices are already in place. For example, how would the IT department’s approach score on The Joel Test?
It’s not just about computer programming: Developing computer software is not an easy task. Although its rewards are big, there has to be an understanding of its scope and implications. If the direction, risks, tradeoffs, cost, and impact of software development are known, this will help ensure something essential: A motivating and challenging work environment for software professionals.
But if it is the first time the company has decided to undertake software development, we suggest hiring at least a project manager with software development experience or a senior developer to guide the project to its success.
You Can Count on Managerial Commitment
Software development projects can do without the extra challenges of internal politics.
It’s key that the project is the result of executive business planning. This normally starts with strategic planning, typically at the end of a fiscal year. Then it moves up to a portfolio of approved business initiatives, one or many of those having to do with the software development project you are dealing with.
In spite of that, you will need to ensure another fundamental factor for the project, which is the executive alignment with it, from beginning to end. Only if you have this executive support can you proceed to hire your development team.
Now that the project is planned, don’t assume that by default you have executive support to implement it. There are many project managers that have been left alone in their projects because management thinks, “I gave the order, so go ahead and do it.” This is a sure recipe for failing projects. You need to validate this support (tactfully, of course) in every meeting with executives, by involving them in the project.
The best way to do this is to keep executives updated on the achievements and evolution of the project. Meet with them periodically, typically once a month at least. Good communication means good sponsorship.
Now, you may be ready to hire from this standpoint, but what about clear signs in the project itself?
There Are Special Requirements
If the needs that brought the company to the project are very specific and different from what is available in the market, or simply because the company may lose some competitive advantage by opening its specific requirements to third parties, then you’ll definitely need a software development team to handle them internally.
You Were Assigned a Steady Budget
Once it is clear that the project will be software development, money starts to be an issue. What do you do? Do you hire a software development consulting company or look for individual developers, either as software consultants or as employees?
Normally, companies specializing in software development services (or “software factories”) are very efficient, since this is their core business and they have methodological certifications, like CMMI.
However, this efficiency comes at a cost, with the aggravated additional cost of change requests and, afterwards, support and maintenance.
Therefore, if management has assigned a more-or-less fixed budget for the project, you should perform a budgetary analysis of the required software development, foreseeing all factors including changes, support, and maintenance.
Normally, if the clear signs of company size, management support and IT experience are present, hiring a development team is a more cost effective solution in the medium term.
You Need to Keep Your Project in Line
Despite this planning, the project can be affected by unforeseen situations like personnel turnover, internal conflicts in the team, and loss of project knowledge when team members are replaced. This may be more for a Human Resources article, but losing control of a software development project in particular is best avoided via project decisions made as early as the hiring stage.
The first aspect that prevents the loss of project knowledge is to avoid having a single person who keeps all the information of what he/she is doing. Good documentation, programming standards, security and authorization policies, source code version control, central repositories, periodic backups, and peer reviews are best practices that help with this.
In hiring software developers, this mostly means avoiding single-member teams. You should hire at least two developers of similar level if you want to be more confident that you’ll preserve the know-how of your project.
The second aspect that can affect your project control is the conflicts that can appear, especially when pressure gets stronger. How do you deal with them? Mainly by having clear communication norms, by holding periodic team and personal meetings, and by detecting and dealing with conflict promptly and effectively.
How is hiring affected? You need to keep a good list of candidates to replace someone who is demonstrating that they are not fit element in your team, before the impact on the project is greater than that of their replacement. Sacred cows are a terrible thing in a team.
Initial Development Has Ended
As it normally happens, projects end but their lifespan is greater than their development phase.
For instance, after going live with your software, your area will be responsible for user support, bug resolution, maintenance, and—last but not least—program evolution, or new versions to release as new functionalities are requested by the business.
Therefore, every software development project has to be considered a medium- to long-term project. From the project planning phase, you need to think that, after the big bulk of the initial development, you will still need some developers to keep the product alive.
To obtain some cost savings, you can hire new developers to do maintenance and upgrades, since the architecture, design, and back-end development are already defined and implemented, and their developers can be moved to other projects.
In any case, don’t let the executives think that, once the program goes live, the company can let go the development team, as this will lead to the software decay and, ultimately, its removal. Once a software development is undertaken, you will need software developers until the company changes its strategy.
You Have Many Change Requests
In every software development project, changes are a reality you have to deal with.
The reasons are many: Requirements are further clarified or expanded by a business area, new requests are made from the executive team, you have to adapt to a new situation, etc.
In such cases, you have to negotiate every change with whoever requested it and, since they always have an impact on time and budget, get the respective extensions. The goal in these situations is to react quickly and as time/cost effectively as possible.
If the change requires it, you may have to hire new software developers to carry out the new tasks. But you must take into consideration the time to train them and get them up to speed with the project before they will be fully productive.
From the time-constraint point of view, on a fixed-term project, it’s important to estimate the tasks’ duration and the resources needed to perform them. When changes emerge, the change control procedures will take less time if the project team belongs to the company, so the response to new requirements will be faster.
As time is always an issue, you must build your project team in a way that it can respond to changes very efficiently. Hiring your own team of software professionals, along with using solid project management practices, is the most effective way of reacting to them.
And finally, consider some technical factors:
You Are Considering New Technologies
Platforms like mobile (iOS, Android, etc.), IoT (Arduino, Raspberry Pi, etc.) or responsive web (HTML5, Bootstrap, Angular, React, etc.), and other new technologies, are the specialty of younger professionals who have typically worked with them in college.
On projects with these technologies, you can often hire some junior software developers in order to get a good product at a reasonable cost, because not only is development usually faster but also their cost is less than that of software experts.
The rewards will be perceived in the short term in the form of modern and appealing software that makes use of the most recent advances in technology, which should make it easier to use, maintain, and extend than one constructed with more mature platforms.
In summary, if your development involves or is based on the latest technologies, you have two choices: You decide to carry it with your current development team, in which case there will be some learning curve they will have to undergo, or you provide the required expertise by hiring new, often younger, developers who have it.
We should caution you, though: Hire at least one project manager or software professional with adequate seniority and experience in software development to guide and enforce good design, code, documentation, and testing practices.
Also, be very careful about the technology you choose. Many of these new technologies and frameworks favor productivity, resulting in lower initial development cost. However, lacking maturity, some of them don’t offer all the necessary features in their core technology or in their supporting tooling ecosystem, resulting in maintenance headaches as your project grows in complexity.
And it’s always a gamble, but using technologies that are not widely adopted may diminish the lifespan of your software and eventually force you to remake it. The difficulty in transitioning here will be compounded by not being able to hire developers who know the old technology for programming help.
Your Content Changes Frequently, but Your Interface Gets Stale
Especially in web applications, if the content that the software manages changes frequently, you should consider hiring at least a user interface developer who can make quick changes in its appearance and usability (e.g., colors, styles, images, buttons, or even new features) from time to time.
“Surprising” the users like this is one way to keep their interest. A word of caution, though: Frequent changes in content, but not in the software’s own visual and usage characteristics, can be as monotonous as no changes at all, and users may stop visiting the site. Along the same vein, too many changes in usability, or changes too radical that force the user to relearn how to use the application again and again, can be counterproductive. A balance must be maintained.
The best example of this is perhaps the Windows operating system, which has forced users to relearn it with every new version. In contrast, Mac OS has had many changes but, if you have used any previous version since 1984, you can still use it.
If you have complaints weighing at either end of the spectrum, it’s time to hire a developer with a good sense of balance, who is in tune with the perspective of everyday users.
Security Has to Be Strictly Enforced
If data security is a strong concern in your project, the way you build and manage the development team will be different from a less-security-concerned kind of project. This juncture will require special hiring and management considerations that will be the main guidelines during the project’s lifespan, so having your own development team in a controlled environment looks like the best choice.
In that case, it may not be an option to contract out software development services or even hire software consultants: Hiring software developers as employees who are fully screened and investigated prior to being contracted may be the only course of action.
Of course, after the selection process, a robust package of legal documents for the hired developer to sign (e.g., NDA, labor contract, or conduct guidelines) will be necessary to complement the strict security practices and demanding hiring process.
Additionally, you might consider hiring a security expert (or even an ethical hacker, which is a niche software development specialist) to guarantee that the software is developed with a secure architecture and follows established guidelines.
Software Must Be Connected
Fortunately, the old problem of “islands of information” is something that the IT industry left behind a long time ago. This means that every piece of software used in a company is somehow connected to (integrated with) the rest, and so must the software you are developing. In companies with many and diverse software applications interacting with each other and/or with external applications, integration is a permanent requirement.
Data integration is done nowadays with specialized tools (like middleware, queue and message managers, ESB, etc.) and standards (XML, XSL, XSLT, JSON) that simplify the task but force developers to be somewhat specialized in integration.
If your IT organization faces frequent integration requests, you may need to hire one or many software developers with expertise in data integration and train them in the applications and data structures used in your company. Normally, this is a more cost-effective solution than having third-party software development services do the job.
From Your Company to Your Project, Are You Ready?
We have examined some issues that normally appear in IT projects that include software development, analyzing them from the points of view of best practices and practical experience. Software development should always be undertaken with a grasp of its implications for the business and a clear notion of the challenges it means.
We hope that the signs presented in this article are valuable for you in your developer-hiring decision. We encourage you to continually sharpen your management skills by considering such tips to help you give value to your company through successful software projects.