I am a fourth year Computer Science University student. I recently completed a 6 month web development internship in a small start up company.
Immediately after I started, I regretted my decision to join the company. The new batch of interns consisted of me and 1 other student. There were two older interns who did a one week “handover” to us, and then left the company afterwards. Other than that, there was one “senior developer” who was working part time and outsourced from an overseas agency. We were only able to contact him for questions via WhatsApp during his working hours, which was 3 hours a day. He did not look through our work or provide any other sort of supervision. Other than him, there was no other tech educated person in the company. We reported directly to the CEO, who would give us tasks to do, but was also not tech educated. To me it was clear from the start they didn't intend to teach me anything.
From the very first day when I was introduced to the code and technologies, I was shocked speechless. The quality of the codebase was so atrocious that I still don't really know how to describe it. Every basic software engineering principle I can think of was violated. There was no Git workflow, project workflow, testing procedure, documentation, coding standard, nothing. All the code was messy, unindented, unformatted, undocumented… It was clear that no real full time professional was ever hired to work on this. Which was insane to me, because the code was like this across all of the company's actual public digital platforms. As in, the actual public website, mobile app, and private websites used by actual people daily. I could not imagine trying to work with this quality of code for the next 6 months of my life.
There was no structure to the internship at all. As mentioned, the CEO would give us tasks to do, which involved creating new featues, fixing bugs etc. on any of the company's digitial platforms. We were also generally responsible for other tech related tasks, like creating and conducting technical assessments for the next batch of interns. We would be given a task, either verbally or through WhatsApp. Then it was up to us completely from there. It was up to us to ask questions about what user requirements or use cases there would be, to do the UI/UX, frontend, backend, testing, version control, deployment. Everything, in general, was all over the place.
We couldn't really ask the CEO or senior developer for help, and even when we did, either 1) they would just tell us to decide for ourselves “what's best” 2) they wouldn't know how to answer our questions because the code was undocumented and very poor quality.
I had a lot of other complaints about the company work environment and culture, but my main problems were the ones listed above. I felt like I was made to do full-time work with pay lower than if I were to work at a fast food chain. On top of that 70% of my intern salary was subsidised by the government. So the company was really only paying 30% out of pocket for the peanuts I was given.
I did try to leave halfway through, and talked about it with my university internship team. They did side with me at first, but after talking with the CEO, they emphasised that the working world “wasn't perfect” like how I supposedly want it to be, and that working with bad code is just part of the job. They also said that at the very least, the company wasn't abusing their power by making me do work outside the initial job description, and that they at least “bothered” to hire the guy who worked 3 hours a day to “supervise” us. Then they talked a lot about how students from the university were expected to be “self directed learners” and shouldn't expect things to be spoonfed to them. All in all, they just told me to suck it up.
The CEO talked to me as well. He also went on about how the world wasn't “perfect” my coding experiences in school work. Then said he was “nothing but nice to me”, and that he never gave me hard deadlines, or expected me to do overtime, or text him after work. And obviously, he didn't approve of me trying to leave. Because I made up 1/3 of his entire tech team. In the end, I couldn't quit because completing the internship was a requirement for me to graduate. And if I did, it would say that I failed my internship on my university transcript.
I broke down after this and just felt so humiliated. I know working with bad code and limited guidance is part of the job. But I felt that the extent to which I had to deal with that as an intern being paid almost nothing was unreasonable. It felt like everyone was thinking I was throwing a childish tantrum because I just didn't know what a real job was like. Am I really overreacting? I know the job wasn't really that bad, but I felt like I was exploited for cheap labour and I don't want to feel like this again. But my professors all said that this kind of work and pay was normal for internships, and it made me question if I was being a big baby about everything.
In the end, I stuck it out and finished the 6 months of the internship. I'm glad it's over, but it made me extremely anxious about my future. I'm worried that with the current state of the economy I won't be able to find a job. And even if I do, it might just experience this all over again. It made me question if I even wanted to work in tech, because even after everything I've done I was only able to land that crappy internship. I know it's my own fault that I'm not smart enough for leetcode or to have the mental capacity to do projects and hackathons and whatnot along side my school work. But I just want to stay alive and not feel miserable. Sorry for the rant.