Original post

Hey all,

I learnt this year and got an internship in in a company I really like (used to). The first month was really cool I got to work on some storage services. I really enjoyed simplicity and design philosophy. The testing tool helped raising my attention to some cases I missed… Even there was a code review by a junior engineer, it was not really thorough. Just few minor suggestions about style and naming… Actually, one commit had some package had three exported functions that are not concurrently safe and they were being used by different routines, but got approved…

Anyway, two weeks ago I started working on the big project and I have not made a single commit since. This project is a migration from a previously written awfully slow JS version. So basically they are migrating to go for performance. I was asked to implement a feature which is not very complicated to, but committing it to the current code base is. This code base is everything that can be wrong with engineering:

  • Insanely poor error handling; the project would crash and you had to follow the stack trace to see what’s going wrong and most likely it is not something you are working on.

  • No tests of any kind.

  • Confusing comments, one file has the same comments as another file for everything single method… different behavior, different implementations. Although, this is on the main branch and went through code review?

  • Mutex everywhere even when the method is concurrently safe. Once I raised the lock contention issue we have in the code base and the manager said “we got no time for that now.”

  • 0 README.MD files.

So today I tried my best to go through the code base, I gave it solid 4 hours then I gave up. The straw that broke the camel’s back was the abuse of interface{}. Every method is returning an empty interface. I saw that in every meeting someone says we need to refactor most of the team says we will do it after we are done. Thus, I am stuck working on this nightmare for the three next months. This week I have started working solely on side projects and preparing the interviewing process to get into reputable tech companies. I hate my job. I cannot complain about the company on any level but the product itself.

As resigning is not an option, how can I convince them to start doing things the right way?
Should I put more time in the side projects and interviewing prep? Or should I just go with it and write more rubbish?