48

I've been contacted as a freelancer about a project. It's not my field of knowledge exactly, as it's in a different language and all that, but we agreed it should be trivial to learn it and related technology in a timely manner. When I felt I know enough I was given a test project to show my skills. The tasks are quite simple and aren't the obstacle to the job. The bummer is that one of dependencies just doesn't work with a cryptic error message. The search on the Internet I've been conducting for the past week doesn't get me anywhere, and I'm getting progressively anxious and frustrated, since no proposed solution is applicable or working for me. I've tried asking in relevant IRC channels and in the official mailing list, but have gotten no responses so far.

While I was given "as much as you need" time to complete the tasks, I've not really done anything meaningful due to this since the error prevents the project from running at all.

How can I explain my situation the best to the employer? I feel I need to let them know I've not gotten anywhere, since just waiting for the problem to go away won't work, and probably they could have already encountered the exact error and could guide me in fixing it or at least decide to let me go right away, just so I wouldn't get worked over it too hard.

7
  • 1
    Comments are not for extended discussion; this conversation has been moved to chat.
    – user44108
    Commented Sep 20, 2018 at 7:32
  • 24
    Have you posted your problem on StackOverflow? I've heard it's a great site for programming related questions and problems.
    – Anoplexian
    Commented Sep 20, 2018 at 15:37
  • 1
    @Anoplexian I bet it's related to some niche software that most people have never heard of.
    – jpmc26
    Commented Sep 20, 2018 at 22:26
  • 2
    Is your employer the maintainer of that dependency?
    – Navin
    Commented Sep 21, 2018 at 5:57
  • 1
    @Navin: no, he is not.
    – ZzZombo
    Commented Sep 22, 2018 at 7:06

6 Answers 6

64

Yes, talk to your manager/contact about this.

Lead with the positive about what you have achieved and learnt so far and show that you understand the platform enough to work on this.

And then lead into your problem by describing your reasoning for going down that route. Describe the issue and then ask for how you should continue this.

Admit to yourself that this might not be the right approach and that looking at this from another direction might be more appropriate. There's been plenty of times where I've come against a brick wall only to find out that my approach has been all wrong. This happens, we all tear down walls or find another way of doing something. We're all learning.

Be honest about it, and ensure that the experience is positive and forward looking rather than blocking.

4
  • 3
    And if the problem is consistently reproducible, OP could even spin it into "bug discovered". Though for OP's sake, I hope it's reproducible - lots of problems that go away when you started again from scratch, so it might mean a lot of time wasted otherwise.
    – muru
    Commented Sep 19, 2018 at 20:42
  • This is probably not a good idea. Either the assigner considers the dependency issue something to be trivially overcome in the course of routine work, such that failing to do so will mean failing. Or else they know that it is a hard problem, and they've assigned this as a fake test to try to get a solution for free. Either way, admitting failure over that issue is probably a loss, the more meaningful question is if this is one the candidate should actually want to win, or one that is best avoided. Commented Sep 20, 2018 at 1:30
  • 4
    Having both been a freelancer and hired freelancers, I'd like to add the suggestion that you communicate about this as soon as possible. As a freelancer, if I took a long time to raise a blocking issue in provided tools, clients would assume I had been working on another project instead of theirs. As a client, we wouldn't have deliberately made a test like this, but we often forgot that a tool would only work within our own office network.
    – Adrian Cox
    Commented Sep 20, 2018 at 8:58
  • Alright, the plan is to evaluate needed changes to get the job done, maybe even commit some showing the vector I'd move in normally even if I might add code that won't even compile. In my message I will talk more in depth than usual about my approach and ask if they have any thought on the error itself.
    – ZzZombo
    Commented Sep 22, 2018 at 7:06
36

Since they're the ones that have setup the technical environment, you're perfectly entitled to ask help instead of trying a weird, unstable, unperformant workaround.

A lot of bad stuff we see in IT come from people not communicating their problem and creating a "workaround that work for them".

Even if you may find the way, you should always communicate where you are in the realisation and if you have any problem. It is standard communication among peers of a same project.

0
27

The search on the Internet I've been conducting for the past week doesn't get me anywhere....

Then search in the source code, not on the internet.

Also, file a bug report, and submit a pull request to fix the issue (or to fix the documentation) when you solve it.

Error messages come from somewhere. Unless you're dealing with closed-source proprietary software, you have the ability to find exactly where the error message is coming from.

This is hardly a workplace answer, just technical advice. So let me add in some comments as to why I think this is the correct workplace solution:

Someone has to solve this problem. You haven't been hired yet, and are demonstrating that it would be a good idea to hire you. The most valuable thing to any employer is someone who solves problems and doesn't bring their problems to others. (Of course that doesn't mean you solve problems that it's other people's job to solve, but that isn't the case in this situation.)

So from a workplace standpoint, showing that you can solve problems is the thing to do here.


Note that the question is insufficiently detailed to be 100% certain that this advice exactly applies. For instance, if the company that's considering hiring you made the library/dependency that's failing with a cryptic error, then even if it's open source you may have an easier route than digging into the source code. Namely: asking your contact at the company to put you in touch with the developers of that dependency for your technical questions (and mentioning in your request that you've exhausted online search, documentation and official mailing lists and come up empty).

The point is, there is no such thing as "It just doesn't work" to an engineer.

6

As soon as possible

How to tell my (possible) employer about a technical showstopper in performing a task?

As soon as possible. Yes, that's the answer, independent of what you are working on. As soon as you identify a showstopper, you need to discuss it - you need to communicate.

Communicate with your client

The client needs to know about it - maybe he needs to give up the project. Maybe he has some way to remove the showstopper, because he has options
you do not have.
Or you do not know about.
Or you can not know about.
The later are the ones which give you this nice "wow" effect. And/or the "Fuck, why didn't I ask earlier" effect.

Delaying the decision is expensive.

Showstopper slowly appearing

Maybe you slowly arrive to the conclusion that there is a showstopper. Often by running out of options how to work around it. That makes it hard to decide at which point you should stop digging, and start communicating.

That is much harder, because you need to make the psychological decision of weighting perceived seriousness of the showstopper against the psychological barrier to communicate. That's hard in part because you need to "give up trying".

The test project

There are skills that are tested for obviously. But maybe one is not obvious - communication:

Maybe they do know that this issue will come up, and are testing your ability to communicate?

That would be brilliant, right? It is more important whether you can use a specific language or tool.

They can just ask you about your technical skills, and you have answered the question honestly. Done.

But how to find out how you communicate in general, and what you do in difficult situations? They can not just ask you. You may not even be aware of it yourself.

If you were aware of any problem with it, you could just change it yourself!

2
  • 3
    That would not be brilliant, that would be extremely stupid. I hate people testing other people. Commented Sep 20, 2018 at 17:11
  • @KorayTugay I do hate that too. But it is about showing his skills. And the critical skill for an external contractor is communicating. Software skills can be tested for in an interview. But communication is in the wetware, and not easy to test. Maybe it wouldn't be brilliant, but I don't see how it is stupid. Hating your employer is legitimate and common. But that does not imply the employer is stupid, right? Commented Sep 20, 2018 at 20:17
3

Probably they could have already encountered the exact error and could guide me in fixing it or at least decide to let me go right away, just so I wouldn't get worked over it too hard.

If you said that "they probably encountered it" there is no problem asking, you could get a solution in minutes.

In fact, you can simply demand them, as part of your ability to work on the issues, to be provided with tools and assistance to set up an environment.

A lot of complex or outdated libraries throw cryptic errors when they run on an unsupported (read, too new) OS environment or are not cryptically configured correctly. Not bad to worry about if someone else had its pain in the belly before you.

It may end up into

  • Company emailing you some configuration files
  • Company providing you with docker images or virtual machines where application works
  • (worst case) company sending you a laptop where you can work on the real issues

What is unclear to me from the question is that if this is a showstopper only to you or to them too. I mean, if they called you to fix that issue in particular.

3

Speaking from the position of a technical manager, I would always say that you will never go wrong by being honest with me. It is MY job to make sure you have the tools at your disposal to do YOUR job and if you're blocked by something the sooner you tell me about it the better so we can get together and find a solution. I can't speak for your actual manager but they gain nothing by being annoyed with you for having a "blocker" but they are far more likely to be upset if you tell them at the last minute that you've been stuck for weeks and didn't flag it up.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .