3
40 Comments

Frustrated with hiring developers

I have a project where I need some pretty complicated code to be written, beyond what I can handle (write a parser that transforms math equations in something like PegJS or Nearley).

The problem is this parser is either complete or not complete. It can't be half done, otherwise it's completely useless.

I've recently hired someone that completed 25% of the work on an hourly basis — then they bailed on me. On Upwork I'm getting bunch of 'Wordpress Experts' applying for the job (No disrespect to 'Wordpress Experts' :p, it's just that is particular job is has a very specific skillset)

I think I am going to move this project from hourly to one price when 'complete'.
That'll prevent me from getting burnt with developers delivering 20% of the work, sending me an invoice, and bouncing..

But other than that, how are people dealing with stuff like this? Also, how are people finding super talented developers and weeding out the mediocre ones?

  1. 1

    honestly this is becoming super common now
    finding developers isn’t the hard part anymore, finding people who can actually finish complicated work properly is
    especially with niche stuff like parsers/compilers where a project is either fully working or basically useless halfway through
    switching to milestone/fixed-price probably makes more sense here than hourly
    also one thing i’ve noticed is that a lot of founders end up wasting time trying to weed out bad devs themselves without having a strong technical filter in place
    that’s partly why setups like foundersbar.com exist now. they help founders with technical direction, MVP planning, and building products through a more structured fixed-cost approach instead of random freelancer roulette

  2. 10

    In my experience in over 20 years as a developer this is almost always an issue of price. How much are you paying for this "pretty complicated code"?

    Here's the thing that most non-technical founders seem to not get - good developers get paid very well, on par with other skilled professions like lawyers, so why would they work for cheaper? Also, any developer with an ounce of entrepreneurial spirit is probably thinking about building their own software so what is so good about yours that it is worth putting off their own ideas?

    I've met a lot of sales/marketing type founders (when I'm consulting as a CTO-for-hire) that think they can just hire a remote team in asia to build their tech business for them on the cheap. Sure, if it's something simple but the second anything a bit more out of the ordinary is required it becomes difficult to do it that way.

    In direct answer to your question though, the way to find super talented developers is to offer extremely competitive pay, a clear set of requirements (preferably with interesting challenges), an interesting idea and show that you'd be a good person to work with.

    Weeding out mediocre developers is a skill in itself and could be an entire book on it's own but it usually boils down to portfolio, coding tests and soft-skill tests like communication etc.

    1. 3

      Really we said!

      In direct answer to your question though, the way to find super talented developers is to offer extremely competitive pay, a clear set of requirements (preferably with interesting challenges), an interesting idea and show that you'd be a good person to work with.

      Agreed and often missed by the majority.

    2. 2

      Of topic: How do you work as a CTO-for-hire? What does that mean? Sounds very interesting.

      1. 2

        I usually join early stage startups that don't have technical leadership and help them implement their process, product vision, recruiting and long term tech strategy. This can be on a contract or advisory role with rates plus a small amount of equity.

        In my experience, a large percentage of startups are created by non-technical people (contrary to what you might think as a reader of IH or HN) who at first don't fully understand or value the need for tech leadership. Why give up more of the pie to some "tech guy" right? :) But that soon unravels when they're trying to manage a remote tech team and have no idea of how to achieve their goals, let alone even ask the right questions to get there.

        There is generally a "sweet spot" where these companies need a CTO and that is during early fundraising efforts. They'll probably get seed funding somewhere and maybe even through an incubator but when they are looking at larger angel rounds or early VC then one of the first questions they are asked is "who's in charge of tech?". It's so vital to success to have someone with deep technical knowledge as part of the management team in a tech startup.

  3. 3

    My experiences with Upwork consist of frustration on larger projects and success on very short, bite-sized tasks.

    On my last two Upwork projects I kept that in mind: My strategy for hiring on Upwork is now to break projects down into lots of very small, isolated chunks. eg: I need a function that does X, one that does Y, and one that does Z. (Obviously, that requires some coding experience though)

    Ultimately this approach creates a lot more project management overhead for me, but it makes the entire project much more anti-fragile. (Thank you, Mr. Taleb).

    The takeaway is that when you're managing projects with new/unknown distributed talent -- you need to project manage like a hawk and be really careful about putting your eggs in one basket.

    As much as we all wish it wasn't true, Upwork isn't fire-and-forget. It requires a consistent/constant management presence like any other working situation -- maybe moreso.

    1. 1

      James, great answer.

      It is indeed very hard to find a developer that would operate independently.

    2. 1

      Great answer. And besides project management, you need lots of expectation management.

  4. 3

    Stop trying to hire independent devs off terrible job sites really. If you're actually a good dev the last place you want to be is competing for a few bucks on short run jobs.

    Google dev shops or consultancies near you. You'll probably have to commit to a much higher spend though.

    1. 1

      I disagree with you. I manage to find 90-100 dollar an hour jobs on that terrible website.

      If you can't compete with people who bearly speak English and have no professional degree in IT, maybe, just maybe, you suck as a developer?

      I've been studying and running a consultancy myself, most of them are not that different from a regular indian/ukrainian team. In most cases, they would even hire from same website.

      It's just that their pricing would be dramatically higher, because they have managers to feed.

      1. 1

        Honestly I wouldn't consider $100/hr a good rate as a consultant doing programming.

        1. 1

          If I would live in AU, CA or US - I would agree with you. But with my tax setup and with my living expenses in Asia - I think I have more left in a pocket than usual contractor in US (well, at least that's my personal experience).

          At a same time, I'm able to keep things competitive and I have a bigger pool of projects to pick from.

          1. 1

            Just think of how much more in pocket you'd have if you got good clients and charged reasonable rates.

            1. 1

              It's indeed a good point to charge more.

              But I'm very happy with every customer I have now and projects are interesting. I tried to charge more, but I ended up with offers from banks, insurance companies and big enterpris-y stuff that i'm not at all interested in.

              Facebook and Google pay really nice, with great benefits. But working there? Naaah

  5. 3

    The frustration goes both ways.

    how are people finding super talented developers and weeding out the mediocre ones?

    Answer this question:

    Why should a super talented developer work with YOU?

    1. 1

      He's paying hourly. It shouldn't really be an issue of frustration. IMHO frustration is far more likely on fixed-price projects where the scope was either unclear or changes during the project.

      1. 1

        Not at all.

        With hourly/daily/weekly/etc...

        Scope can be unclear, you can have feature creep, you can have huge changes in the project, you can have clients that turn into complete jerks, clients who become totally unreasonable, and list goes on and on and on...

        There are a TON of people looking for Dev work who have big ego's and zero experience (not saying OP is this person).

        That's a nightmare to work with.

        The point here is the OP is frustrated that freelancers are bailing on him (well he gives an example of only 1 but I'd assume more if he's posting this).

        The OP isn't answering a really simple & direct question ("Why should someone work with you?") and instead is not clear on why anyone on the other side of the table would ever be frustrated with him.

        That can be a very clear signal that the problem isn't with the (what appears to be) many freelancers bailing on him, rather it's with the OP.

    2. 1

      How does the frustration go both ways? Talented engineers are frustrated with ... what?

      1. 4

        I don't know you and your project but 90% of the time the frustration is:

        • Client is unwilling or incapable of paying a meaningful rate.

        • Client wants developer to take the risk of a fixing the price on a project that is not actually fixed in scope.

        The above means that developers looking for freelance work is actually facing the same signal to noise ratio as you are seeing. Just flipped around; 90% of jobs out there are simply not worth anyones time.

        That said your situation might be different. I can see you list yourself as a developer and designer so I am sure you would have been faced with the above issues before.

        1. 1

          90% of jobs out there are simply not worth anyones time.

          You've hit the nail on the head.

          I think the problem is that the OP is so wrapped up in his project he's not clearly seeing this.

  6. 3

    I can assure you, that non of talent developers will work for a 'complete project, get money' scheme.

    Have you tried paying premium? Or your expecting to find talented developers for 15 $ an hour?

    My first round of interview with a developer is to understand if a person can clearly communicate in a written form. I'm trying to test his argumentation, I can disagree with it, but if there is some clear logic behind it - it's great. I also try to see how person reacts try critics (as an example if I hire a react developer, I would point out that react seems like an absolute garbage and other frameworks does stuff better).

    If I'm satisfied with first round, I usually hire person for a paid test work. I don't give out any theoretical problems or textbook coding bullshit, usually it's real issues from real projects (if I don't have any issues at hand in my own projects, I pick any issue from open source library my project uses). Since I can code myself, I can tell a lot after seeing person's code.

    After these two rounds, I can with a low margin of error, understand level of this developer and if I want to work with him in future.

    Basically, I've been getting a lot of devs like that for my clients and most of those hires has left everyone happy.

    1. 3

      I agree with your first few points, but "pointing out" to a React developer that React is "absolute garbage" is neither a valid criticism nor a valid test of how someone handles criticism.

      If you don't see that React has it's advantages / use cases, then that just means you don't understand React.

      I say this as a primarily Vue.js developer.

      1. 1

        I don't agree myself that react is garbage, idea is to hear person's arguments against this notion. Usually people that have versatile experiences can point out and agree on some imperfections of a framework, but they also need to present valid reasoning that framework is usable (besides 'i like it').

        1. 1

          Wouldn't saying that risk the dev thinking you don't know what you're talking about and dismiss you as someone one does not want to work with?

          1. 1

            Well, it could probably happen. And I'm okey with it.

    2. 1

      Good point at not giving

      theoretical problems or textbook coding bullshit.

      These textbook tests always drive me crazy and drop the job offer.
      They are the worst crap ever designed to test development skills.

  7. 2

    I've worked with many developers and have about 20 in my company. I've also worked with a bunch of freelancers. So I have a bit of experience with the issue you are asking about.

    The best way I've learned to manage this is to go fixed price instead of hourly. If you have "pretty complicated code" then you should look at hiring a senior developer which may appear to cost more at first glance. But in the end of you hire a bunch of juniors or intermediates who bail on the project, you're likely to end up paying more than just paying the senior.

    Also, there is the opportunity cost of time. For example, I had a mid-level developer working on a pretty complicated project which took him 11 months to complete. A senior developer who later re-wrote the code took 2 months to do it. Let's say because he already had a functioning system too look at it was a bit quicker so we assume 3 months to do it from scratch. That's still 8 months I would have saved to test out the product!

    The senior may have cost on a per hour/per project basis, but I would have gotten results much quicker and started testing the product.

    So, to summarize, here is what I recommend:

    1. Find some senior developers who you think can build this for you
    2. Find a senior developer in your network to interview and test them. You can never be sure until you start working with the person but this will at least eliminate some of your risk
    3. Agree on a fixed price for the project. Make sure you assume a 20-30% buffer on top of whatever you agree to. In my experience, it always gets more complicated than expected. And then break out the payment schedule according to milestones.
    4. Try to have the person give you demos every couple of days to show you what they've been working on
    5. Use a code management tool like Bitbucket so you can check the developers commits. Ideally, you have somebody to do a code review once in a while to see how they are working.
  8. 2

    I agree with @JamieO about rates. When you pay peanuts you get monkeys.

    Also, what was your relationship with this person who bailed you? Are you a nice person to work with? Did you treat your developer with respect?

    Why would anyone leave a well paid, fulfilling gig?

    There might be someone else, in some other community asking: where do you find resoanable clients who pay well?

  9. 2

    Maybe the issue is that you are trying to pinch pennies first by using Upwork and now by not paying at all until the project is complete (according to your definition).

    Exactly what you did you expect?

    1. 1

      Maybe you missed my point, but I'm paying "in the end" to prevent from being burnt by devs that bounce after doing X many hours. Also, when did I say I'm pinching pennies? I'd gladly pay premium to get it done!

  10. 2

    Do you have BNF for the language that you would like to parse?

    1. 1

      I started writing it. But I needed some help finishing it.

      1. 2

        I have written a couple of parsers during my career. I recall it always as a lot of fun. Once you have BNF it shouldn't be a very time-consuming task, either.

        Write me an email with what you would like to accomplish and attach this draft BNF you already have. Maybe I will be able to help somehow.

  11. 1

    Sounds like a challenge for a college student, don't pay hourly. pay flat rate. Most developers online are crap and copy & paste devs. I posted on upworks for a slightly complicated code for Android I needed, no takers. I can program but haven't done much with Android SDK , I figured it out in 4 days hacking on it 2hrs every night. 8 hrs of work, yet 0 takers after 1 week of posting.

  12. 1

    I've worked with many developers and have about 20 in my company. I've also worked with a bunch of freelancers. So I have a bit of experience with the issue you are asking about.

    The best way I've learned to manage this is to go fixed price instead of hourly. If you have "pretty complicated code" then you should look at hiring a senior developer which may appear to cost more at first glance. But in the end of you hire a bunch of juniors or intermediates who bail on the project, you're likely to end up paying more than just paying the senior.

    Also, there is the opportunity cost of time. For example, I had a mid-level developer working on a pretty complicated project which took him 11 months to complete. A senior developer who later re-wrote the code took 2 months to do it. Let's say because he already had a functioning system too look at it was a bit quicker so we assume 3 months to do it from scratch. That's still 8 months I would have saved to test out the product!

    The senior may have cost on a per hour/per project basis, but I would have gotten results much quicker and started testing the product.

    So, to summarize, here is what I recommend:

    1. Find some senior developers who you think can build this for you
    2. Find a senior developer in your network to interview and test them. You can never be sure until you start working with the person but this will at least eliminate some of your risk
    3. Agree on a fixed price for the project. Make sure you assume a 20-30% buffer on top of whatever you agree to. In my experience, it always gets more complicated than expected. And then break out the payment schedule according to milestones.
    4. Try to have the person give you demos every couple of days to show you what they've been working on
    5. Use a code management tool like Bitbucket so you can check the developers commits. Ideally, you have somebody to do a code review once in a while to see how they are working.
  13. 1

    You've already answered your own question. The definition of payment for your task is to comple code base validated by passing all tests. Hire someone on that basis rather than hourly rate. Offer 10% prepayment to retain a contractor. Do due diligence and have a budget to pay for quality. ESB was built in 1 year and 45 days. Bet your task isn't harder.

  14. 1

    Feel you man! Just done a project and frustration was every time we discuss the timeline.

  15. 1

    You can try searching user here - https://usercv.com/users
    Or based on the service here - https://usercv.com/users

    1. 1

      Thanks.. great resource

  16. 0

    I have been very successful building SaaS, With WBS, micro deliverables, testing and deployment.