This is an anonymous post sent in by a member who does not want their name disclosed. Please be thoughtful with your responses, as these are usuall...
For further actions, you may consider blocking this person and/or reporting abuse
That's a hard spot to be in. I sympathize with the feeling of being stuck.
I'd say that there are several issues here that are working against you.
Two of these are within your control.
The first thing that I would do is to work on improving your documentation throughout the code base. I like Using README.md files in the base of the repo and in any major package/director to explain the overall function of that package/directory and what should be inside.
I would also work on adopting clean coding practices here as much as possible so that it's as easy as possible to read the code for someone that has no clue how it works. I would also put together usage documentation. It should cover everything necessary for getting the code pulled down and running.
The next thing that I would do is to try and hire a second developer to allow yourself to have off days. I'd pitch it as ensuring that the company can continue functioning if you were to get hit by a bus. It's a value to the company to make sure that you aren't a single point of failure for the whole thing.
Once you have these things in place you can work on training the other developer up and consider whether or not they could continue doing the day to day without you. If you wish to leave the company at some point you could be retained as a consultant. Through the life of a startup it takes different people to get things off the ground and to keep it running long term. These are different skill sets, and while you could learn to cover the long term support role, if it isn't something that you would enjoy then you should build an understanding with your friend that allows for you to pursue things that you find enjoyment in.
Perfectly explained.
A friend of mine was in a similar situation but it's a brother, not a friend and he got a good amount of shares of the company so now it's also he's company (at least in a percentile).
If you didn't got any amount of the company there's no reason to stick into it. Maybe it could be a way of getting motivated if you get an agreement with your friend to get a part of the company to stay in.
Also if you had your internship there and you built the thing up from a greenfield, chances are that some of the oldest parts of the project need a refactor (or tests if there's none or few) in which case you need to set up a daily time (through an agreement) to improve those obscure parts and proceed with what @xanderyzwich well said.
It happened to me multiple times. I wanted to leave but wondered how the important projects where I contributed a lot could possibly carry on.
I left anyway. As it turns out I was wrong and cemeteries all around the world are full of indispensable people.
Man the reason you should leave is simple: you have only one life.
You aren't even a good employee anymore if you go to work dreading to be trapped forever here.
There are things you can do to help the company make the transition, like coaching whoever will replace you.
But it's not your responsibility to come up with such a plan it's the responsibility of your company.
Loved it. That made my day!
It's a quote from Georges Clemenceau
I'd suggest starting to work on this aspect of your day-to-day job. You want the company to succeed with or without you. Improving your pre-existing documentation, can help with your company possibly expanding (with new hires) or taking over in-case you are unavailable.
I'd talk to your manager(s) about this, as regardless of what you do for you job prospects, it's important for the business to minimize risk. If you're a critical part of the business, then minimizing that critical part should be paramount.
This is traditionally thought of as loyalty to your employer. Having loyalty isn't necessarily a bad thing, but at the same time it could also mean going against your best interests in favor of your company.
How far you'd like to be loyal is ultimately up to you.
However, the best thing you can do is set them up for success as much as possible. So yes, providing documentation and training and possibly even on-boarding new developers to help you during a transition phase (official or unofficial) should be discussed.
Finally it's worth mentioning there are multiple ways to do this which depend on your relation to the company. You could go as far as to tell them outright your looking for other opportunities, and would like to create a transition plan with a given timeline.
You could also go with the traditional 2 weeks notice (once you have a job lined up I'd hope!) and try to squeeze in as much as you can during that time, but it will probably leave a large void as it isn't much time.
You could also do something in the middle, and give a deadline for when you leave for a newer/better opportunity.
Regardless the choice is up to you on how you'd like to approach this!
You've got to talk to your friend (I know big step, sorry for making it sound easy). When you do, make sure it doesn't sound like you made up your mind, just tell them how you feel. For example, don't tell them: I feel trapped, I want to leave the company. Just say you feel trapped and that you feel a lot of pressure. See how they respond and be ready to explain what you mean with examples. Your friend will probably view it as a problem and they will try to make suggestions on how to solve the problem. Listen to the suggestions they make with an open mind and take some time to think about if it will improve your situation or not. If it doesn't work for you, talk to your friend again... This time it will be even harder, because you will have to tell them that you have given it a lot of thought, but that you don't see it working out. Before you have this talk, make a plan on how you can transfer the knowledge and responsibilities that you have within the company. Share this plan with your friend but give them a chance to also give their input. From here it can go two directions... direction A (most likely): your friend wants whats best for you and will facilitate your departure. track B (hopefully not): your friend tries to force you to stay and you have to take a look at your contract to see under which conditions you can end it... Worst case you might need a lawyer but keep in mind... Slavery is not really allowed anymore.
If you dont feel happy somewhere, you have every right to try and change that situation. You don't owe anyone a depression or burnout.
You are not married to your company, no matter how long you've been there. If you feel it's time to leave, leave. Staying in a spot you don't want to be in can quickly lead to decreased performance, a lack of fulfillment and eventually burnout. You as a developer have the privilege to choose your job as you want, use that. If it's your friend you're working with, they'll understand that.
That sounds like a management issue. The company has failed to keep the bus factor high.
If you want to ease your feeling of guilt, start working on a documentation that helps the next hire after you to pick up.
I've been in this spot before, held back out of what I saw as loyalty. I gave a company I felt was a dead end for me 8 years, feeling like I'd have a graceful transition point just over the horizon, but it never came.
It might be a codependency thing, to feel needed, I don't know. What I do know, is that my prospects dramatically improved the moment I finally was let go and I wished I'd left of my own volition years earlier.
As long as it's not your own business, you need to have a working distance. If they cannot provide you with help so that you can rest in peace, you must let them understand. Otherwise nothing will change. If your friend is the boss, just talk to him.
I agree with the other commenters that it's a big failure of the company if you can't take time off. That does need to be resolved immediately. It may not be your fault (for example, if your coworkers are being lazy or if you're not being granted enough support staff) but imo it's your responsibility to at least raise the alarm that the company would be sitting ducks if you got hit by a bus.
If you've documented everything as well as you can and you've notified the company of the risks of having everything fall to you, you've done all you can do.
I also want to just raise... it sounds like you have a set of feelings that you can't fully explain. You might consider talking to your EAP or doing some short-term therapy to figure out why you feel like you are obligated above and beyond the normal employer/employee agreement.
Hold my bear π»
Could a new hire be on the cards? Maybe somebody at your level or just under so that you can... Have open options, in fact you could even voice that your worried that there is no back up should you have trouble for health issues, encourage a plan be planned
I would suggest that you create some time to make sure you are well.
Then, I would recommend contributing to OpenSource projects, in a meaningful way.
You'll need to be very careful selecting the projects, as a wrong project or approach can cause you more harm than good.
I spent 12 years at same company. There were points where I was a key person and if I left it would cause them big problems. I stayed loyal when company had financial struggles even when we had a 15% pay cut.
My reward for my loyalty? - I was made redundant just before Christmas when no one was hiring and they gave me the minimum amount they could and ripped me off on holiday allowance because they were legally allowed to do that. I (same as other people) was kicked out the door like a criminal.
Moral of story. A job is a two way thing. They owe you nothing and you owe them nothing. Be selfish - do whats best for you