C++ is an intriguingly complex programming language. So complex that many developers shy away from it. I know I shied away in the first instance, picking Python instead. The key takeaway; C++ programmers – the really good ones – are rare talents.
Fun fact JavaScript was compiled in C++
Invariably, finding a great C++ developer is a task many entrepreneurs and business owners struggle with. In this guide for hiring freelance C++ developers, I talk about what to look out for in the ideal freelance C++ developer and then finish off with my list of the best C++ developers on freelance platforms like Fiverr and Upwork.
The hiring pitfall
The ideal C++ developer is one who’s able to deliver on your requirements. Of course, you want somebody who’s very skilled with the programming language, but in the practical sense, your assessment of their skill should be tailored towards skills in alignment with your needs.
Rather than gun for a C++ know it all it’s better to hunt for a freelance C++ developer who’s niched down and finetuned their skills in one particular area. This is important because the C++ language is as complex as it is expansive. When you hunt for a know it all, you’ll most likely land a Jack of all trades (that will be a master of none) rather than a developer who actually knows it all.
What to look out for in the ideal C++ developer
All that said, as a starting point, the ideal freelance C++ developer should at the very least possess the following skills
In-depth understanding of the concept of programming in C++
Programming in C++ goes past the regular run of the mill technical knowledge (I’ll touch on this next). C++ is heavily dependent on the concept of Objects – it’s an object-oriented programing language. Using C++ to develop efficient solutions requires a precise understanding of this and other abstraction techniques.
How to test for this
Asides from technical tests, which I’m guessing you don’t want to conduct, a good makeshift way to access the abstraction skills of a C++ developer is to have a look at their portfolio. Has said developer built a fully functional app based on C++? Have they developed custom APIs using C++?
It’s technically daunting to complete any of this without a firm understanding of object-oriented programming. Plus if these apps/systems integrate to other solutions developed by other developers.
Good grasp of the basics of C++
This includes everything from the Standard Template Library (STL) to algorithms, containers, pointer arithmetic, debugging, C++ libraries like Boost and QT, compilers and memory management. Of course, there’s a lot more involved, but if someone already fulfilled the first criteria, I’m betting they’ll already be good with the majority of this.
How to test for this
This is something that a portfolio assessment will cover. If they have solid apps and programs to their name, they’re probably very good with the fundamentals. However, if you want to dig deeper, ask your potential hire for a link to their GitHub account.
GitHub might appear a little confusing to the untrained eye. Here’s what you need to check:
- How many projects they have listed on their profile
- How many repositories they have
- Track their activity to see how active they’ve been on C++ and C++ related projects. Bonus points if they contributors to open-source C++ projects
Understanding of other languages
Now they don’t need to be masters of other programming languages; they just need to understand how these languages work and their applications in the real world. Why? Most times, C++ is used in collaboration with other tools to produce real-world applications.
How do you test this
Once again, portfolios. If someone’s built production-ready apps, then they’re most likely familiar with how C++ functions with other programming languages and vice versa.
Problem-solving ability
Lines of code rarely mean anything if they’re not written and staged in such a way that addresses a problem. You want a C++ developer who’s able to see the solution and the best fit code pathway to developing that solution when presented with a problem.
How do you test this
The ideal test case for assessing a developers’ problem-solving ability is to paint a logic scenario. Any one will do whether programming-related or not, but Andriy Syrovenko, a team lead at the popular programming hub Daxx typifies how this should be approached
I also love to task candidates with logic problems relating to programming. For example, I could lay out a generic problem that is usually solved using the classic merge sort algorithm. Some people instantly recognize it and go straight to explaining how it works.
… Some can work it out pretty fast, while others start suggesting wrong solutions. Either way, we discuss their answers together. This stage can take anywhere between five and twenty minutes. I’m not necessarily interested in the right answer here. What I want to see is how the candidate thinks and how they approach problem-solving.
What are your hiring options?
While this guide is dedicated to defining the best way of hiring freelance C++ developers. It makes sense to consider the other hiring options (asides from freelance) you have briefly. I say options, but they’re just two:
- In-house
- Agency
In house
An in-house C++ developer is a full-time developer, someone you’ve employed in a full-time position for your firm or business to develop solutions using C++. There are many reasons to hire a C++ developer full-time, but let’s talk about the most important ones as advantages.
Why full time
You get a C++ developer who’s thoroughly committed to your needs
Full-time means full-time for your business. In-house developers crunch the clock daily to produce software solutions for just you and your business – no side distractions, no side projects.
A C++ developer who’s in touch with your needs and pain points
Being in-house means such a developer would be fully exposed to your business/organization and its runnings. If you’ve ever tried explaining a concept or problem to an ad-hoc staff or maybe, an external investor, you’ll remember the effort it took to pass your message on. An in-house programmer is in the thick of things, so they have a firm grasp of existing problems and what needs to be done to develop a solution.
In-house developers tend to be more skilled
The hiring process for in-house is usually more stringent. That and the fact that experienced/skilled developers tend to prefer in-house positions allows companies that go this route to cultivate top C++ talent.
The drawbacks
Inhouse C++ developers are expensive
According to data collected by Indeed.com, the mean salary for an In-house C++ developer in the United States is about $118,000. But that’s just the base salary; with in-house positions, you’ll also cover auxiliary expenses like insurance, pension and bonuses.
In-house is difficult to scale
One in house C++ developer is already an expensive proposition. When you need to increase your staffing to scale up code production, you’ll need to double, triple or quadruple that cost.
Limited flexibility
This is best described in the context of a Freelance C++ developer. Going freelance allows you to switch developers fairly easily as per your needs without any significant expense. The same cannot be said about in-house.
Agency
Agencies that staff C++ developers present what many will describe as a mix of the in-house and freelance hiring experience. For the purpose of description, an agency is a firm with employees (in this case, C++ developers) who’re ready to take on jobs from external clients. I say employees, but you’ll find that most agencies simply hire freelancers on a contract basis and then subcontract that freelancer to a client when the client shows up.
Why agency
Little to no oversight
With agencies, most times, all you need do is provide your requirements. The agency’s management will take care of everything related to supervision and compliance with those requirements.
Agencies are staffed by professionals
The best software development agencies recruit top tier developers. Usually, there’s a stringent screening process for their developers that’s followed up over time with routine performance checks. All this ensures that clients get access to the top breed of C++ developers.
The drawbacks
You get little to no flexibility
Once a contract is negotiated and signed between you and the agency, it’s hard to change the terms without incurring additional expense. That’s compared to freelance and especially in-house, where you easily whip up modified requirements on a whim.
Agency C++ developers can be expensive to hire
In addition to the raw cost of hiring a C++ developer, you’ll probably shoulder some administrative overhead costs when you go through an agency. In some cases, this can make agency C++ developers more expensive than in-house developers
Freelance C++ developers
Now back to the reason you’re probably here – freelance C++ developers.
Countless sites exist to hire freelance C++ developers. In this guide, I’ll be focusing on two major ones – Upwork and Fiverr – because of the flexibility and ease at which they allow you to hire a competent C++ dev.
How to hire a freelance C++ developer on Fiverr and Upwork
Portfolios are a great way to assess the acclaimed experience and expertise of a C++ developer. I already touched on this earlier so just scroll back to see how you can use portfolios to test your potential C++ hire
Check their reviews
Freelance sites like Fiverr and Upwork encourage clients to drop reviews on the service they’ve received from freelance C++ developers. You can use this to your advantage. Here’s how I use reviews to screen freelancers on Fiverr and Upwork
Pay less attention to the five-star reviews
That’s not to say a freelancer without five-star reviews is a good catch, Nah. They should, in fact, have an abundance of five-star reviews. However, once that criteria is met, I tend to ignore the five-star reviews altogether because, in the end, they’re all saying the same thing – the freelance C++ developer is great.
Focus on the three and one-star reviews
Three-star reviews because these are usually from clear-headed clients who take their time to drop an unbiased (usually) account of how things went with the C++ developer. Not just slam dunk their reputation as many one-star reviewers tend to do. Generally, if there’s a particular complaint about the service here, I tend to take it seriously. I’ll do one of two things:
Ask the freelancer about that complain
Or skip them altogether if it’s something that’s important to me or critical to the success of my project. If I’m looking to embark on a project that requires extensive consultation and a couple three-star reviews point to poor communication skills on the part of the freelancer or a language barrier, then that’s an indication to abandon ship.
Most times, I ignore one-star reviews if they’re few or just a handful. However, if there’s a theme with the one-star reviews – with clients complaining about similar or related issues, I abandon ship, no questions asked.
Start small
If I’m almost convinced but not totally convinced, then I can segment my project into chunks. I’ll then assign a segment to the developer to test their mettle, and if everything goes right, I then sign a contract for the entire gig.
Rudimentary as they sound, these tips almost always gets me the kind of quality freelance C++ developers I want. But if you’d rather skip the hassle and just go straight to hiring, here’s my top list of the best freelance C++ developers you can hire on either Fiverr or Upwork.
I developed this list based on the hiring techniques and tips I’ve outlined in this guide.
Fiverr C++ developers
I scoured the Fiverr website for a professional C++ developer and couldn’t lay my hand on even one promising talent. All I could find were half-baked professionals who most certainly lack the skill and experience required to develop robust C++ apps.
Upwork C++ developers
Thankfully Upwork does a better job compared to Fiverr. There’s a very impressive list of top-rated C++ developer talent on the site, but here’s who I think are the best of the bunch.
Max H
Max is arguably the best C++ developer on Upwork and while other C++ developers on Upwork might attempt to dispute that, what’s unarguable is that he’s one of the best C++ developers you’ll ever come across by a long shot.
With more than 20,000 hours worked on the platform and extensive experience developing the most complex C++ software solutions, there’s no doubt that this guy will deliver on your needs. Provided you can afford him, that is.
Strengths
- Strong technical background with an M.sc in Computer Applications and Systems Engineering
- Extensive experience working in fast-paced industry-renowned companies
- In-depth knowledge of the C++ programming language plus laser-sharp skills in virtually all related and important programming languages
Rating review
Max’s review panel is littered with excellent praise. He’s frequently commended for his outstanding communication skills and deft technical expertise.
Camille P
Nineteen years of experience developing hugely varied software applications using C++ gets this freelancer the second spot on this list of top C++ freelance developers. But it’s not just the experience that counts; Camille is a seasoned professional who, like Max, has worked with top brands from the world over.
Strengths
- Dynamic, versatile developer who’s very comfortable using diverse tools (not just C++) to develop optimized and scalable solutions
- Excellent communicator
- Professional yet very flexible
Rating review
Again, it’s a tale of thoroughly satisfied clients, with the major resonating theme being attention to detail, professionalism and overall excellent software products from Camille.
Carlos Rodriguez N
Two things stand out from Carlos’s resume; astute attention to detail and technical expertise in the salient but otherwise nuanced aspects of C++ programming. This is very well reflected in his review profile, with many clients recommending him for daunting C++ challenges, the kind to hamstring typical C++ freelance developers.
Strengths
- Palpable understanding of the C++ language with expertise in everything from the nitty-gritty to the more elaborate concepts
- Strict professional and strict follower of the C++ development best practices
- Affordable and dependable
Rating review
Carlos’s clients paint a picture of a fun to work with but still professional C++ developer who’s committed to producing only the most eloquent code.
Laremy R
Laremy is a more traditional developer, with most of his expertise focused on the development of production code for legacy systems and low-level machine architecture. This is your guy if you’re looking to deploy software solutions in the form of firmwares, drivers and any of that niche stuff.
Strengths
- Strong technical knowledge of computing, system architecture and legacy code
- Comfortable with developing software solutions for controlling and/or integrating with hardware devices
- Expansive knowledge of C++ and associated programming languages
Rating review
Many of Laremy’s reviews are from repeat clients, which goes a long way to demonstrate just how much he can satisfy his clients. There’s hardly any fault to his name. The emphasis on his professionalism and communication skills in these reviews is outstanding.
Xiaotian S
Like Laremy Xiaotian is a niched down C++ developer with a specialty focus in areas such as audio and video encoding as well as other more technical aspects of audiovisual software development.
Strengths
- Expertise with audio and visual implementations on the C++ framework
- Very strong technical background. Xiaotian has a PhD in Electrical Engineering from the University of British Columbia
- Relatively inexpensive given his skillset
Rating reviews
There are a few blemishes on Xiaotian’s profile, with a noteworthy one-star review critiquing his acclaimed skills in developing audio related software solutions.
I would say what it highlights is the need for you to confirm (by requesting working samples) if he’s the best fit for your project. There’s a lot of nuance when it comes to highly technical segments of C++ implementation. Experience with a similar solution is a needs must to guarantee the final product’s success.