58

TL;DR: Young inexperienced coder gets an internship, gets offered a stake in the start-up he's working for, and now feels like a big fraud.

Some context

I'm a coder from an undisclosed European country, and recently I accepted an internship in a non-tech start-up in my city. I am enrolled in university, despite not actually attending courses, but I don't study Computer Science.

The reason I've been offered this internship is that I've been coding since I was really young and, in the past, I made some simple programs for friends and family. These attracted the attention of an entrepreneur (let's call him Bob), who decided to give me a shot as the core developer for the start-up he's launching.

Problems

Although I was very excited about this position (it's my first ever "real" coding job) things started going south pretty quickly:

  1. The task is gargantuan (for me at least). I have to build a complex multi-site web parser and a sibling web application (front-end and back-end) that exposes the parsed data to an internal sales department. Now — this is on me — as I accepted this position without realizing how big this project was really going to be.
  2. Bob has no expertise in tech/programming, so he doesn't really know how to manage the project. Indeed, he isn't. He pretty much told me: here's the end goal, go ahead. So architecture, management and actual development are on me.
  3. Did I mention I'm the only developer in the company?

Plot twist

After about a month that I was working here (that I spent making a usable demo of the project) Bob offered me a small stake in the company. And he'd be paying for it until I can repay him. I said yes.

Keep in mind that Bob is no fake-guru: he's a successful CEO, and he employs dozens of people. I'm not 100% naive: I'm sure there's more to this choice than just me impressing him with my talent. Anyway, I'm very happy about this opportunity.

The problem is that I'm not making meaningful progress. I've always been a procrastinator, and I've always excelled at doing everything last-minute. But now I feel incredibly pressured into doing something that will wow everyone, as Bob trusted me with this responsibility, and it is in my best interest for the sake of the company, but still, I can't quite get to do the work.

It's incredibly frustrating being tired at the end of the day (since I do other stuff in the meanwhile, but for other projects of mine) and when I get home and think about how little I've "worked" I can't help but feeling like a huge impostor.

What can I do? Should I tell him that the workload is overwhelming? We are already looking for another developer to work with me, as I already proposed that it would be helpful, so I don't know how much telling him would help.

Honestly, my raw feelings are, "I just want to be done with this and move to the next thing". But it's been like this my whole life, and I don't think this behavior will benefit me in my career. I want to learn how to manage situations like this.

I know this was a long post, if you read it all, thank you.

What do I do when I feel like I'm in over my head?

2
  • 1
    Comments are not for extended discussion; this conversation has been moved to chat.
    – Kilisi
    Jun 9 at 1:59
  • Please explain your university course. A course where you don't attend classes ? Is it related to computer science, e.g. is it in science or engineering, economics, mathematics, etc ? Or does it use info science as a tool in research, e.g archaeology, anthropology, history, sociology ? Why the split between what you choose to study and what you want to be working at (coding) ? I think these are fair questions for someone making your kind of post.
    – Trunk
    Jun 9 at 9:43

12 Answers 12

106

At the end of the day, Bob has done themselves a bit of a disservice by employing someone with no (meaningful) experience, and no (formal) education.

It's perfectly possible that this is how Bob operates in general, and you are just the latest employee in their latest company that feels the way you do. They may engage a whole bunch of people like you, pay what would be wages presumably on the low scale, and hope that one of many seed companies eventually makes it.

I don't think you should beat yourself up over the risk that Bob was willing to take. Assuming you didn't lie to Bob, they knew what they were getting.

It's no doubt Bob will attempt to offload some of the risk to you. They may offer to pay you in shares, rather than a salary. They may make it sound like an amazing deal to you, that they are doing it for you benefit, but it's not. It's about making you even more emotionally and financial invested.

My advice would be to make sure you get paid, and not to accept shares as payment.

Beyond GOATNine's good answer, you should try to ensure you work is in a good state so if/when you quit, or new employees join, they can resume the work.

If you are a procrastinator (which is fine, everybody is different), you should consider looking for jobs with more structure. A lot of the time, startups are only really viable for very driven people.

7
  • 3
    I want to say that I think of myself as falling into the "very driven" category. Before this job (and still today) I worked on a personal business project that has taken the good part of these last 2 years (I'm quite young, 2 years is almost 10% of my life). I've been working on this project about 70 hours a week, almost nonstop. But these difficulties are completely new, as I have to report to someone other than me.
    – 965311532
    Jun 6 at 15:47
  • 4
    I'm awarding the correct mark to you because, despite the many helpful considerations and suggestions that emerged from this question, I think your answer is really descriptive of the current situation and it helped me take a step back to reassess my relationship with Bob and my expectations from myself. Thank you and thanks to everyone who took the time to answer and share opinions.
    – 965311532
    Jun 6 at 20:21
  • 4
    I suspect Bob does this often, and 50% of his projects don't get off the ground, but the other 50% succeed with minimal investment into the employees. As an actual project, he should hire 3-5 people for 6 months to get a real product off the ground, so avoiding hiring a team, he takes a 50/50 chance of getting something useful to show case, and then hire a real team later.
    – Issel
    Jun 7 at 2:14
  • Im currently busy learning react so that I can prepare for a technical interview. I have no real experience in that or any real qualifications but with a couple of weeks intense learning I may just get employed
    – Neil Meyer
    Jun 7 at 18:30
  • 4
    @965311532 The mention of 70 hours/week on personal project worries me. A lot. Does that mean you work 100+ hours week? If so, I would strongly advice to reconsider your plans, pick one thing and focus on that. With such workload, burndown is assured. With severe and long-lasting health issues. Colleague of mine ended up in hospital for ~half a year (blockage of neck muscles), I was recovering ~4 years from it. Anything more then ~60 hours/week for a prolonged periods of time will hurt you really badly. Take care of yourself, otherwise you will regret it for decades.
    – CorwinCZ
    Jun 8 at 9:31
56

In a situation like this, where you have accepted a task that you didn't realize was going to feel so far beyond you, there are only a few options that you have that won't feel dishonest or fraudulent. The one I favor is open honesty and analysis of what I need to succeed.

You mention Bob is a successful CEO and quite savvy. The important thing here is that he is likely to look past the immediate problem and try to find a solution. He cannot be expected to read your mind though. He will not know there is a problem unless you tell him there's a problem. I would spend a small amount of time putting together a document of the issues you see, and what resources you would likely need to overcome them. Those resources can be outside help in the form of additional developers (contract or full time), training courses in technologies that you will need to be successful but don't understand quite yet, or even architectural assistance (what tech stack should you use) which will give you key areas and technologies to work with. find the time to present Bob with these items, and be sure to portray the situation as one where you need the help, but are not incapable of achieving the results.

From the sound of it, you're in over your head, but not necessarily impossibly behind. With dedication and communication, you can get the resources needed to succeed. The sooner you bring this up to Bob, the faster things will get back on track.

It is important to mention that not knowing something does not make you a failure or imposter. Those states only come up when you fail to seek remedy for a less than ideal situation such as you find yourself in now.

Alternatively, if you feel like the task is beyond you and you cannot get it done, tell Bob. It will be a difficult conversation, but it is the responsible thing to do when you are overwhelmed. Bob doesn't want to be blindsided by this task failing, and you don't want to go through the stress and pain of working from behind with insufficient resources.

It is not unprofessional to ask for help when you need it, or to state when something is beyond your (current) capabilities.

50

I came to this question expecting to offer reassurance to a young intern suffering from imposter syndrome, but reading your story I don't think this is the issue. I think you've joined a doomed company.

You say that the entrepreneur (Bob) has no expertise in technical matters and he has picked someone with minimal technical experience to be the core developer for a complex project with no backup. Quite frankly, this is insane. I know you said that Bob is a successful CEO employing dozens of employees. That doesn't guarantee that his decisions are rational or well-planned. Sometimes success goes to peoples' heads and they become convinced that they can do anything by sheer force of will and their inherent awesomeness. Sometimes successful people have enough money and resources that they make big bets simply on whims. Sometimes incompetent people are successful simply by luck (maybe Bob made $10 million by starting with $20 million inherited from their grandparents). All this is just to say that Bob's decision to make you the project's core developer may have been a terrible decision, and Bob's history doesn't make him immune from making terrible decisions. However, that's on Bob, not on you.

However, insofar as Bob is paying you, I think there are couple of things you do owe Bob, and you've mentioned some concerning issues in your question and subsequent comments.

First, you and Bob have to have an honest understanding of how much effort you are putting into the project. You mention in a comment that you are also working on a personal project 70 hours a week. Is Bob aware of that? Do you have a set number of hours you are supposed to work for Bob? Are you meeting those hours? Frankly, if you are working 70 hours a week on a personal project, fatigue is going to guarantee that you will be ineffectual on any other projects you undertake.

Second, you must provide Bob with honest progress reports and status updates. You mentioned that you are a procrastinator, relying on last minute sprints to complete projects. You can do that with your own projects if you like, but it's not appropriate if you are being paid by someone. If you think you are behind schedule or unable to complete the project on the agreed schedule, you must let Bob know ASAP.

Finally, I'm worried about your statement that

Bob offered me a small stake in the company. And he'd be paying for it until I can repay him.

A stake in the company has value only if the company is successful. Essentially you are being paid in lottery tickets. This can sometimes be a reasonable gamble, but I'm worried that because of your lack of experience you have no basis for estimating the odds in this gamble. The word "repay" also sets off flashing red lights for me. This sounds like he could demand repayment if you left the company or if he decides he doesn't like the job you've been doing. Is the repayment conditional on the stake in the company being worth something on the open market? If not, it sounds like a way of "paying" you with your own money. I've purchased a stake in a start-up company using money the other founders loaned me, but this is definitely something you should have a lawyer look at.

3
  • You have a point in saying that we should define the terms of our agreement a bit better. Honestly I think I was so excited by the opportunity of being part of a company that I didn't consider how it might bite me in the future.
    – 965311532
    Jun 6 at 20:15
  • 9
    +1 for mentioning the red flag of repaying him for the stake in the company. My exact thoughts. Also, Bob might not be as successfull as he looks. He employs dozens of employees, so what? It is perfectly possible that all his start up companies are financed with high risk loans and that they will all go down. Jun 8 at 6:32
  • I chose this answer as the best one: to sum it up, it's a runaway train and you should just get out ASAP. Don't even blame yourself for anything - it's all on Bob for making this huge gamble and hedging his bet with the payback clause. The actual fraud here is Bob. Jun 9 at 15:43
23

It sounds like you need to give yourself some clear path forward.

Draw architecture diagrams, state diagrams, or any other diagrams you think are useful. Write notes on how it's going to work. Then stop planning and actually start doing something.

Take an agile approach. Work out the "minimum viable product" (MVP) - something that's more useful than nothing. Work towards that. Prototype and test as you go.

Once that MVP is done, then you can show it to people, and decide what needs to be done next. You can keep adding more features to do more things.

2
  • 16
    I like this answer for your average programmer at a startup. The difference here is that OP is an intern, with a low amount of experience in any given tech stack. They may be struggling just to get enough know-how to produce an MVP, let alone implement it. That being said, it's solid advice, +1.
    – GOATNine
    Jun 6 at 16:02
  • 2
    I think this answer has a lot of merit in many situations, for overcoming analysis paralysis and inertia at the start of a task or project. But in the OP's specific situation, it fails to address the core of the issue, that the developer needs at the very least to clear the lines of communication with their boss, and to get some help. Jun 7 at 16:01
19

You are being conned

There is no way an intern can lead a project. What I suspect is happening is Bob wants to pay as little money as possible for someone else to develop a proof of concept for him just so he can vanish with whatever poor sod fall for his antics investor money.

Seems that startup culture is where all the conmen congregate.

16

Tell Bob that he needs to hire a professional with experience in this area, or he risks his company taking real damage down the line because of potential security issues.

Simply put, you're planning on building a website, with access to data, which will then expose that data after processing to internal users.

In Europe.

The GDPR is the law of the land, and the regulators won't take kindly if Bob's excuse for breaking the law by mishandling data and its storage is "My only tech person was an intern with no formal training or professional experience".

Additionally, depending on the tech stack you're using, and how you're configuring it, you're potentially creating an attack surface that hackers could use to steal data from Bob's company.

Both of these are issues that, as a novice programmer, you're not really equipped to deal with. Bob needs an experienced, trained professional - someone who has the skills to build a website both securely, and in compliance with the relevant regulations.

Learning by doing is a perfectly valid method for acquiring professional skills, but apprentices still need to learn from experienced masters of their trade. There's no need for you to reinvent the wheel; having someone experienced to learn from can channel your talents from unproductive flailing in every direction into directed value for the business.

9

Divide the project into small pieces or goals, that have visual or demonstratable functionality. Each one of these tasks will be a milestone.

For the first few milestones, make a guestimate on the duration. Write down your guestimate. Start working on the milestone. Every week or so, check your progress versus the guestimate. If the progress is detouring from the guestimate by a good or great margin, set up a meeting with Bob and discuss. The sooner that Bob knows that you won't meet your guestimate, the better for everybody.

After completion of the milestone, record both the estimate, the lines of code, and the actual estimate. Use this data to help you create a better estimate for the next milestone.

Milestones should be small enough that you are confident in completing and not too large that you feel you can't finish the milestone in time. Always feel free to push a task or more onto the next milestone, to help you complete the present milestone in time.

Spiral development model of milestones. Waterfall development within the milestone.

I did this with a "start-up" and built up a good relationship with the management, as management could visual see the progress. Remember to "Save early, Save often". Minimally, backup after each milestone (source code and other stuff). This gives you a working foundation to restore to, in case something happens (new requirements, bad algorithm, etc.)

1
  • I was going to answer, but this pretty much covers it, and cannot be stressed enough. Study (maybe for an evening, but not more) the general idea of Scrum. Write down the first 2-3 basic features, and then break them down in to the smallest possible tasks that will be complete and visible. I am a serial procrastinator, deluded that I am a perfectionist, and this approach works. If a task is less than 1-2 days, then the scope is predictable and understood. Do it the simplest way possible to acheive a result; it can be polished and expanded as you move along. Good Luck!.
    – GCon
    Jun 7 at 11:14
7

What do I do when I feel like I'm in over my head?

I don't mean this in a bad way, but you are in over your head. You don't have the experience to tackle such a project, and I doubt many senior developers would be successful in your position, either. If I were offered this job, I'd have tons of questions before I even entertained the offer. You being green means you don't have the industry knowledge to even know what questions to ask.

I see a few other answers explaining how to break down work and tackle a large project. That's good and all, but it's also a skill and best learned from someone more experienced in a team oriented environment. It can take several months/years to only be decent at breaking down a large project into tasks. Even then, you'll still get estimates wrong on a regular basis.

The way I see it, your best option here is to say you need an experienced engineer to lead the project and help out. Explain you don't feel confident you can deliver this on your own.

Honestly my raw feelings are "I just want to be done with this and move to the next thing". But it's been like this my whole life and I don't think this behaviour will benefit me in my career. I want to learn how to manage situations like this.

I wouldn't really beat yourself up over this, for what that's worth. I don't think you've been put in a position to be successful, so your feelings are valid. Resigning is a perfectly acceptable response to your situation. I'd even encourage it.

Assuming you leave: If you were interviewing with me and told me about this job and that you left due to stress, I wouldn't hold it against you. The fact that you made it as far as you have would probably score you bonus points.

1
  • "...would probably score you bonus points." Indeed. Being able to say "I'm aware of my inexperience and areas where I need to learn more, and my previous job was not putting me in a position to learn what I want to learn" shows that your inexperience isn't likely to be a problem for long, given the right environment.
    – cjs
    Jun 9 at 4:40
7

I will only provide some advice for the general theme of procrastination. As a big procrastinator working in software, here are some principles that help me get work done and avoid a horrible last-minute rush:

1- settle for a general architecture (techs used etc), do not waste time going into the details and comparing all the possible designs in the world hoping to find the absolute best. I always try to keep the design and thinking phase pretty minimal.

2- Thin down the spec to a bare minimum, and code something that does it. As soon as you start coding, concrete issues will emerge that you didn't think about before and the design will refine itself.

3- Now that you've got something that does some work, iterate on 2 while adding more features.

4- As the application grows, you may see that your first design wasn't very well suited. That's usually a big sticking point, as it requires you to go back to stage 1 and do a refactoring (never a very enjoyable process). But if you write your code with some level of separation of concerns you should be able to reuse many parts.

And repeat...

For me the big problem is always paralysis by analysis, wanting to do something perfect right from the start etc... I had an internship where I wasted a good part of my time there reading a theoretical book. Yeah it was a research lab and they gave me this book as a reference for the assigned task. Looking past, I should not have bothered to read much more than the intro, and instead go straight to solving some examples on paper and coding. I ended up doing this pretty much near the end of the internship, and indeed felt like a total fraud because the amount of actual work done didn't deserve the general appreciation.

Hope it has some relevance to your case,

3
  • "if you write your code with some level of separation of concerns you should be able to reuse many parts." Do you really expect an intern with no formal training or professional experience to write cleanly separable code? I'd be surprised if they didn't just lump most everything into a single main() function.
    – nick012000
    Jun 8 at 11:36
  • 1
    Yeah it's like version control systems, it's hard to see the point of it when you've never worked on a big project (and formal education rarely provides such an experience). However the idea is not that complex. If he has some experience with OO languages he already knows about it. The first iteration could still be just a main() without causing too much effort later on, if the iterations are kept small (as it should be). Jun 8 at 13:55
  • @nick012000 Regardless of how good the OP is at building systems that can more or less easily be refactored later, understanding when you go in that pretty much everything you write will be rewritten helps a lot with getting moving on a project. And while you may not understand at the start how to write easily refactorable code, simply knowing that you need to learn that will help you get better at it a lot more quickly than if you're assuming that most code is never changed after it's written.
    – cjs
    Jun 9 at 4:44
4

Here is the big kicker: You are working as an intern, probably not getting paid or just getting paid peanuts. Bob is selling you shares of the company, and since you do not have money he 'kindly' lends you money.

A sucker is born every day, and Bob found one. Two possible solutions:

  • Ask for a proper work engagement (with market rates, tech lead shd get low 6 figure salary), cancel the agreement for paying for the shares, you can make some shares part of your total compensation package. Basically grow a pair.

  • Or, see you have been taken advantage off, and run. Terminate the share buying on margin agreement though. Look for a real job and a lawyer to see if you have to pay back your debt.

9
  • This guy is too young and inexperienced to demand a 6-figure salary and too poor to engage a lawyer for his employment contract. How serious are you here ?
    – Trunk
    Jun 8 at 16:35
  • @Trunk then make it middle 5 figures. The point is this doesnt sound like an intern position and he is been taking advantage of. Basically he is paying for his job with creating debt. Who knows if there is a non dilution clause, if not he will loose all anyway (well the debt stays)
    – lalala
    Jun 8 at 16:38
  • That may be true. But none of that is what OP is worried about: he's worried about his own capability for this project. Like many in similar situations, he may reckon that if he can overcome the challenge then the rest of the story - like pay, bonuses and the value of his incentive stake - will be fine. But if he fails then he's got only whatever the day rate is for his time and he's done serious harm to his working reputation and his self-confidence. If he put his hand up now and admits it's too much for him then he's better off than someone who tries to con it to the end.
    – Trunk
    Jun 8 at 16:49
  • 2
    @Trunk thats why I wrote this. The OP is not worrying about their real problem.
    – lalala
    Jun 8 at 17:25
  • I disagree. The state he's in is common for guys ~ 20 who talk their way into a big job, then find themselves facing it alone. The sort of advice you're giving him is more like what you'd say to someone with no doubts about their own competence but fearful of not making much money from a lot of work: hang tough on salary, see a lawyer about project contract and share options, etc. No way can he grow a real pair overnight. Besides, he doubts if he has anything behind it all. He needs to discuss this with an experienced developer who can tells him if he's got a realistic chance of success here.
    – Trunk
    Jun 8 at 21:20
3

I agree with the technical cautions mentioned by others here like nick012000, Thomas Matthews and Simon B.

But I feel that we have to be fair to you also.

Nobody is the best judge of their own work or their own talent level. So I think your first decision should be to get a consultant standard web engineer to study this project's goals and your own work to date on it. I can't see how a successful CEO like Bob could disagree with this process: it's essentially an insurance policy against failings we are blinded to by the subjectivity of our own perspective.

So go out and find a respected web engineering consultant with strong backend development expertise (ask around if you don't know any) and - without losing your human dignity - be completely honest and open about your situation with him/her.

We don't know what they will advise. It may simply be selecting a better architecture or choosing a different backend technology. Or it may be "This project really is too much for you, best drop it".

But whatever the advice is, you'd best take serious heed of it.

1

tl;dr: Consider that you may be simply serving as window dressing for the benefit of potential investors.

Based on

But now I feel incredibly pressured into doing something that will wow everyone, as Bob trusted me with this responsibility, and it is in my best interest for the sake of the company.

and the rest of what you've described, I have to agree with @NeilMeyer's answer that you and others are likely "being conned".

Startup culture is mostly about skillfully spewing calculated words that make people do things that result in you filling your own pockets with money. (cf. reality distortion field)

Sometimes that results in a great business, but so often that's of secondary concern.

Who knows what your actual purpose is. It might be to pull a rabbit out of your "hat" and produce excellent software, but it is much more likely to be to serve as window dressing for investors; "there's a computer wizz-kid doing our software, but once we get the next round of funding step #1 is to pull in some heavy-hitters" for example.

lalala@'s points out the very unusual nature of the shares you might or might not actually end up owning. Read the fine print, and if you have not been provided a document with fine print then that would probably be suspicious as well. Don't forget the famous dilution scene.

I've had two related experiences in startups that were similar in that I provided some technical contribution but was not involved in the business end, and had one excellent bit of advice that got me through it:

Of course they are going to screw you, that's a given. Just make sure you can walk away safely with a bit of money and experience.

Now the "safely" bit is key, as I actually had to say "no" to doing things that were fishy, "tell potential investor X this" and "I can't remember how to spell your name, just write it on this check for me", and once a founder even lifted my wallet, perhaps to get my ID for god knows what purpose while on an overseas trip.

To this end please check @nick012000's answer which illustrates how yo might even be being set up to take the fall for potential legal problems later.

You must log in to answer this question.

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