I work as an engineer at a technology company. For the past few months, we've had an issue that is caused by a deliberate limitation of the platform we're using. I'm the only engineer working on this part of the project, and given the limitation, I don't think that I'll be able to solve it. Combined with other issues we've had, I've decided I'm probably not qualified for the job, and to resign.

I think that the company deserves someone that can do the work better than I, and we're only able to have one person working on this, since it's a startup. I have a large amount of savings and the job market for engineers is currently fantastic, so this is not a financial issue for me.

How should I phrase my resignation?

I'm placing this as an edit as I am not permitted to reply to the comments (I used a 10minutemail.com email to register and forgot it, usually I use mailinator, but it was down).

Switching platforms is not a possibility. This is an application for a popular mobile operating system, I'm not talking about switching from Angular to React. We can't just abandon half of our users.

The limitation I am hitting against has been implemented by the vendor of the OS as a privacy measure. There is no workaround, it is deliberate (and, in my personal option, a good thing).

There is nothing to learn that can fix this - I actually consider myself fairly expert in the platform. There is no "new material" to learn, I'm the only one at the company who even knows the programming language used, to say nothing of the platform frameworks.

Everyone at the company is incredibly aware of the issue, and of my explanation of impossibility, but continue to ask me to solve it.

What will you say in your next job interview when they ask you on why you stopped working at your previous employer? "The problem was too difficult, so I quit.", yikes.
– Ceiling GeckoNov 30 '15 at 6:46

I'm a bit confused.. the first part of your question (and title) seems to suggest that you can't fix this problem because you're incompetent, but your edit makes it seem like the problem/limitation is unsolvable, as the vendor implemented a deliberate privacy measure. ... So which is it? Are you being told to do something that's impossible/unfeasible, or are you just not good enough to perform your engineering duties? It makes a difference.
– HopelessN00bDec 1 '15 at 16:44

5

Anything to do with SELinux being enforced in Android 5.0? That's giving everybody nightmares. Anyway, if the current problem is effectively insoluble due to an 'act of god' (the OS vendor), then try taking a step backward in the problem chain. Instead of looking at 'why can't we do X', ask yourself 'why do we want/need to do X? What alternatives Y might be viable given what we've learned about X?'. If you have a working theory but are lacking resources/technical contacts, go to the BI guys and say 'we need Z in order to do Y which replaces X, which the vendor has made impossible'
– CCJDec 1 '15 at 21:07

10 Answers
10

If you are finding it tough, you can discuss your troubles with your manager (and/or the CTO). I'm sure he'll have a nice solution.

If you are committed to resigning, you can simply write about the problems you were facing and that you would like to get some more experience in a role where you are better suited to the task. Wish them luck, and sign off.

Adding this after your recent edit:

As you say people at the company are aware of your situation. By people, I am also considering your manager(s) and other seniors, you definitely need to quit and move on to a job in which you are a better fit.

So, make sure you have an offer at hand before quitting, so that you can play safe.

By all means talk to management first. Nobody knows everything, and you may be able to learn the new material as rapidly as anyone (or anyone they can afford.) There may be additional resources available, or they may be willing to change their schedules to give you more time to figure this out. You may be badly misjudging yourself.
– keshlamNov 30 '15 at 3:26

68

Right. You must be competent or they wouldn't have hired you. If you can't do this task, say to the boss, "I never did X before, I don't think I can do this in the time limit we have. Either I need to train for the task, or we get someone else in who has experience in X." I haven't been sacked yet for admitting this.
– RedSonjaNov 30 '15 at 7:13

9

@RedSonja Not to criticise the OP who I don't know, but they were hired because their employer believed OP was competent. People are not necessarily hired on the correct basis, or with an accurate view of their skills. Especially if the employee and employer have different skillsets. I do think the OP should start off thinking they were hired correctly, but it is very much possible that they just weren't a good choice and only realise it now.
– SuperBiasedManNov 30 '15 at 9:54

I'm with Dawny33, you certainly should not paint yourself or even think of yourself as "incompetent" just because you can't engineer a solution to a problem that may actually be insoluble.

That out of the way, if you feel that you are not well suited to the job, then you should treat it the same as any other situation where you wish to leave a job due to not being well suited to it.

Try to line up another job before you resign. You may have a large amount of savings and the job market for engineers may be fantastic, but there's no good reason to gamble your savings on you personally being able to find a great new role immediately. That road could easily lead to you taking another job that isn't a great fit.

Then, give your notice and depart in the most professional way you can. Hand over everything as well as you are able - if you're the sole engineer, this will probably involve copious documentation since they may well be unable to get a replacement starting before you leave.

You want to leave in a way which leaves your employer thinking "jglars was a good engineer and a great guy, just not the right guy for us".

I have faced exactly this situation myself. After stressing about it for a couple of weeks I eventually asked the boss if I could have a chat with him about the job and I explained the problem. Somewhat to my surprise the boss was really keen not to have me leave, and he and I between us managed to restructure what I had to do to alleviate the problem.

So my recommendation would be to talk to your line manager. In my case the boss was a really nice guy and it was easy to summon up the courage to ask to see him. If your line manager isn't a nice guy then I appreciate it can be intimidating to have the meeting, but the worst they can do is fire you, and you were thinking of leaving anyway.

In practice they aren't going to fire you if there is another option because the legal implications of firing people can get quite involved. If they want you to leave it's more likely they'll arrange some face saving compromise that involves you leaving of your own free will and won't look bad on a CV.

If/when you arrange the meeting don't mention any personal stress you've been feeling because at best your line manager will find that faintly embarrassing. Just lay out the facts as you see them and explain why you're having the problems. That worked for me.

One thing I'd add is that while it's understandable to wait two weeks from identifying a problem you can't solve alone, until raising it with someone else, it's much better for everyone if that time is more like "until the next morning". Even in a startup that can't assign two people full-time to a task, there's likely to be something someone can do to help you solve it, but if only you know that there's a problem then it definitely won't be solved.
– Steve JessopNov 30 '15 at 12:50

@JoeStrazzere Firing for cause can still require more legal documentation compared to someone resigning of their own free will. Even someone fired for cause can still sue for wrongful termination, etc., but someone who resigned willingly can't.
– TylerHDec 1 '15 at 16:19

1

As an interstitial to this conversation, might I add that the word "incompetent" should never be used to self-describe yourself in a work environment. The company can probably fire you for cause (you're incompetent) and use your own words against you, alleviating their requirement for thorough documentation.
– K. Alan BatesDec 1 '15 at 21:37

Then resign from your present company. You can tell them that you are moving on because of a great opportunity at your new company.

This has nothing to do with "incompetence", and you shouldn't mention that in a resignation, or during an interview for your next job. Instead, this is about "company fit". You need to find a company that needs your specific talents, and that conversely fits your specific needs.

Finally a real answer after all the "it's not you" posts. Sometimes people really are incompetent at their jobs, don't have the tools to get significantly better at them and can change jobs to a position where they'd have a better time, learn more and be more productive. Even if OP can learn and get better eventually - they sound like under a lot of stress and are not progressing well which can be incredibly frustrating on its own.
– Benjamin GruenbaumNov 30 '15 at 14:08

In a situation where I feel I am in over my head, I tell the boss and work out a solution with him/her. Resigning just gives them another problem to deal with. Solutions can range from outsourcing part of a project to giving me more time to sort it out.

Very few problems cannot be solved, if the platform has limitations, find or make one that caters for your needs. A defeatist attitude in a startup is bad news for all concerned. Actually in any job it's bad news. But sometimes you are asked to do things that just can't be done for technical/legal or ethical reasons and it's best to be upfront about these.

If you must resign, but want to leave with a positive reference for future jobs, you'll have to lie about your reasons. 'Incompetence' isn't a good look. I would use something else like 'family reasons' and expect the boss to be a bit unhappy because you're leaving him shorthanded with a partially complete project.

Good point: If you want to help your boss, resigning is probably not the best solution. Resigning never solves problems :-).
– sleskeNov 30 '15 at 10:01

@sleske of course it does.. even if it probably won't solve it for the company it certainly will for OP.
– Benjamin GruenbaumNov 30 '15 at 14:09

1

As Kilisi suggests, outsourcing or giving you more timer are potential options. Another option is for the employer to send you to a training course, or to bring in a contractor short-term to work with you and help you get up to speed.
– mhwombatNov 30 '15 at 18:04

First of all, engineering training is substantially, if not almost entirely, the process of teaching the trainees a set of solutions to problems: what solvable cases are known, and how to apply the general approaches known to provide a solution in similar case, and how to apply them to your own specific case which require such a solution.

Sometimes these solutions have a good sound scientific explanations as to why they work, sometimes they are heuristics - rules of thumb.

This can very often lead engineers to believe deep down in their gut, at an unconscious level, that there are always solutions for everything.

Really, it's just that there have always been solutions for everything covered in their training.

Secondly, we are at our least creative when we are stressed and pressured. It sounds like you have felt this way for some time. This can lead you to "tunnel vision" in you approach. You feel the pressure, and the solution space that you are considering actually narrows. Most of the greatest "Aha!" moments in scientific and engineering history have popped into the minds of people when they were out strolling, or having baths, or, legend has it while sitting under an apple tree on a sunny summer's day. Einstein had his key breakthrough while travelling on a tram. This is because a lot of our cognition happens without explicit guidance from our conscious attention.

Given your current circumstances - pressure from the deadline, apparent insolubility, and feeling like you are carrying the weight of the company and the livelihoods of all the people in it on your shoulders - it is unsurprising that you are only able to bring half your brain to bear on the problem. The consciously attentive part.

Thirdly, talking issues over out loud brings different (and, therefore, additional!) neural pathways into play. It also forces each step of the problem-solving process, and each piece of information relevant to the problem, to be made explicit. Otherwise, your audience would not understand enough of the issue to contribute. Some of these required necessary steps and pieces of information get left unsaid when we think things to ourselves, in our internal dialogue.

This is a key advantage of being one of two or more people in a technical specialisation within an organisation. Other knowledgeable people that you can talk to. Failing that, find unknowledgeable people to talk to. Or a life-size cardboard cut-out of a famous fictional character. Or a rubber duck!

Many a problem in software development has been solved by what I was introduced to as the "deaf ear" technique. It has also been documented as Cardboard Programmer or Rubber Ducking at the software engineering patterns repository.

This is would be one of the key benefits of discussing this with your line manager, the senior management or your peers at your company. Or (with key proprietary details withheld) with friends and acquaintances from your days as a student.

4) Brainstorming is another technique that is relevant here, for jogging loose your additional brain capacity. The idea is to express all thoughts that occur to anyone in the group - event stupid ludicrous ones - as these can often jar unexpected new relevant productive thoughts loose in the other participants.

Perhaps the company should organise a company-wide brainstorming session. Maybe hire in some other engineers for the week that happen in. Two days bringing the new engineers up to speed. A day with a large group brainstorming as part of a facilitated joint session

Like many others here, I've started off dealing with this question as an XY problem. You're asking about how to resign, but we are all convinced you would prefer to stay if you could see a path to a technical solution.

5) To a man with a hammer, every problem looks like a nail. You're focussed completely on engineering your way to a solution given the current set of constraints on the approach. Involving more of the company in the process could help identify where the constraints could be adjusted, which would allow new approaches to become potentially useful. Perhaps the solution to the company's problem lies outside the engineering sphere, by moving the engineering target somehow.

6) If you and your managers and the company's senior management all decide that you have exhausted the other approaches outlined above, then it's time to move on.

You may have noticed that I, like many of the others responders, think this is an XY question. You're focussed on asking how to solve X, but really, you are trying to solve Y.

But, just in case:

7) In parallel with options 1 to 6, keep your eyes open for possible new opportunities in other organisations.

At which point, if you decide it's best, 8) get a new job offer and give notice that you are leaving.

I have gone from being one of a technical group, then moved to a different organisation where I was the only technician in my field. That situation is a lonely existence, and brings pressures and difficulties, especially to social animals like humans.

For the past few months, we've had an issue that is caused by a deliberate limitation of the platform we're using. I'm the only engineer working on this part of the project, and given the limitation, I don't think that I'll be able to solve it.

Ok, here is the main question: the "deliberate limitation": what was the reason for the deliberation? You are the only engineer working on this part of the project, so the choice should not have been made without checking that it meets the available skill sets. A "platform" is something that is chosen because it supports the desired use cases in a practical manner rather than just being theoretically capable enough.

If the platform does not deliver that, your job is not to use but rather develop a platform. Which is a job requiring significant skills and experience or the willingness and time to acquire them.

It may be that you are not the right man for the job. It also may be that your manager is not the right man to figure out what people to plan for what tasks in which time frames.

If you don't see yourself getting your part of the plans under wraps timely, your first priority is communicating that and working out together with the team what other approaches and platforms would needed to be taken for you to pull this off, or how people could be reassigned to form a team that could get the job done with this platform. As long as you are the only one on this particular task, it's your job to communicate problems with it since the entire other team is basing their work on you getting your part done. If that's not going to happen, there will be a mess, and it's not very probable that somebody affordable can be hired off the street and smoothly get this mess under wraps while staying in budget.

So you should try to communicate the problems and be an active part of finding the solution (which may be you quitting and somebody else getting hired with the necessary skills for pulling this off with the current limited platform: there is a danger that the long-term costs of that step, even if it succeeds, will be larger than picking a better-suited platform).

The least this should result in are somewhat useful references. Throwing the towel in without giving your manager a chance for figuring out how to change his plans in order to make human and project needs meet is not going to be a good sell to your next employer.

A few years ago I had faced a similar situation, and I was about to quit because I was assigned to redesign, reengineer a system with a bunch of issues. One of these issues took me a month of study and careful dedication, but that resulted in nothing. After talking to my manager, a young engineer was hired to take care of that issue, so I informed him of the status of the issue by then and prompted myself to help in case of need. One month later we talked about that specific issue and he told me that there had been no progress at all. So I confessed to him that even though I was sorry to know that, I was also a bit relieved because that had shown that I was not really incompetent/unskilled at all. Later the company decided it was better going groud zero and restart that system's engineering, since there was still time and budget.