Is it wrong to write a such a review for a software company for their horrible C++ practices?Why is it not a good idea to “badmouth” a previous employer?Should I add a Glassdoor review for a company so small they will know it is me?Are there any known alternatives for code review?How to deal with coworkers who don't want to give code reviews?How to survive as a junior developer in workplace that does not tolerate mistakes?Software Industry - How do I deal with legacy code and clean code effectively?I'm no longer enjoying my work. How can I revamp?Introducing software management practices in poorly managed company
How to detect a failed AES256 decryption programmatically?
Output with the same length always
Have made several mistakes during the course of my PhD. Can't help but feel resentment. Can I get some advice about how to move forward?
Has there ever been a truly bilingual country prior to the contemporary period?
Levenshtein Neighbours
Are there categories whose internal hom is somewhat 'exotic'?
Reducing contention in thread-safe LruCache
Why do aircraft leave cruising altitude long before landing just to circle?
Best model for precedence constraints within scheduling problem
Installing the original OS X version onto a Mac?
Will some rockets really collapse under their own weight?
Just one file echoed from an array of files
Can you find the next number in the following series?
Replacing old plug-in 220V range with new hardwire 3-wire electric cooktop: remove outlet or add a plug?
Does the Temple of the Gods spell nullify critical hits?
What should I do with the stock I own if I anticipate there will be a recession?
How to use the passive form to say "This flower was watered."
Can I submit a paper computer science conference using an alias if using my real name can cause legal trouble in my original country
Are unaudited server logs admissible in a court of law?
Shading faces depending on orientation
what article (a/an) to use when there when there's a parenthesis following it?
What does a comma signify in inorganic chemistry?
Do banks' profitability really suffer under low interest rates
Radix2 Fast Fourier Transform implemented in C++
Is it wrong to write a such a review for a software company for their horrible C++ practices?
Why is it not a good idea to “badmouth” a previous employer?Should I add a Glassdoor review for a company so small they will know it is me?Are there any known alternatives for code review?How to deal with coworkers who don't want to give code reviews?How to survive as a junior developer in workplace that does not tolerate mistakes?Software Industry - How do I deal with legacy code and clean code effectively?I'm no longer enjoying my work. How can I revamp?Introducing software management practices in poorly managed company
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
I wrote this review of a company that I'm going to post on glassdoor and similar websites, and I'd like to know whether this is wrong from a professional standpoint. I'd like to be fair with what I wrote. I'm angry at the company as it's a harsh review (and this is obvious from the review), but I still want it to be a fair and professional review of what I saw there.
I worked at CompanyName for a couple of years. I'm a C++ developer, and this review is to help those seeking to know whether CompanyName is the right environment for them. This is the first time I write a review.
CompanyName, in their branch in Germany, has two primary divisions. First works with C++ primarily, which is about simulations of different space related hardware, and the second is Java related. I'm not in authority to speak about Java, so I'll focus on C++. The reason why I joined CompanyName is that they list in their ads that they work on "mission critical" stuff. This sounded very intriguing to me since I'm obsessed about quality, so I joined.
You can split the employees who work with C++ in CompanyName into seniors and juniors (I'll talk about management later). There are around 35-40 persons in that branch who are separated from the main company in almost everything. The number of seniors is like 3-5.
Seniors basically work with C++ of 15 years ago. Boost is very intimidating to them at all levels. Their knowledge of C++ is embarrassing, and any modern C++ is seemingly very intimidating to them, to the point that they push out anyone who advocates for it, including myself. Seniors, up to this day in 2019, still use "new" to allocate memory manually, and "delete" to delete it manually (and yes, they use exceptions in their code). Zero use of smart pointers exists, because they don't know how to do it. RAII? Forget it. They still allocate arrays manually with "new[]" and "delete[]". They don't know how/want to use std::vector or std::array to avoid memory leaks and have range protection in debug mode. This leads constantly to horrible bugs (which sometimes show up years later when reusing code... we all know what undefined behavior means), because they reuse code a lot, but they use Valgrind to solve these problems (just like the 2000s), which doesn't always work. If you're an advanced C++ developer, you'd know that Valgrind is almost never used nowadays, especially when you have good practises that are agreed upon in the whole C++ community in the world, that we constantly see everywhere in every forum, including cppcon, etc.
Besides all this, how about the senior who doesn't know what a functor is? Or the senior who doesn't know the difference between auto and auto_ptr? Or the senior who thinks it's OK to use auto_ptr in 2019? Or the senior who doesn't know that templates should all be defined in all in header files and why?
Don't even think about the real cool modern stuff, like type_traits, fold-expressions, SFINAE, etc. That's absolutely never gonna happen.
Ignorance is not usually the problem. We're all learners after all in this field. The problem is the huge ego and disinterest in learning anything new. It's frustrating.
So seniors there code with C++ to make the software compile and get the tests to pass through lego-like copy-pasting code. There's almost no understanding of the risks associated with doing what they're doing, and there's no will to change or learn at all.
Once I saw a junior coming to a senior and telling them in some context "I'm using new to allocate this array but Valgrind is crashing at that point... what do I do?", and no facepalming in the world could've cut it in my head. When that junior left, I asked the senior (with a pokerface) "Why aren't we using vectors for memory safety?" and he was convinced that it's OK to allocate and delete arrays manually in order not to write a function to define how to serialize a vector, and creating excuses for it. This was two years ago, and still remains to be the case.
In 2019, using a vector or a smart pointer to do safe memory work was called "textbook approach" by the same senior... another facepalm I lived there. Apparently coding safe C++ is extraordinary or something. I don't really know what to say.
Of course, this means that their code is infested with all kinds of memory corruption, both stack and heap. The last disaster I lived through was some code that crashes when quitting, which happened because of tons of these practices, including (but not limited to) allocating arrays manually and writing to wrong indices in these arrays. Of course, every experienced C++ developer knows that STL containers would protect from such problems since they fire asserts at invalid element access in debug mode. But CompanyName's seniors prefer to have these bugs over learning how to do correct C++.
To be fair, there is one senior who knows what he's doing there. He's the only one I'm really happy to have worked with (both on the professional and ethical level), and I learned a lot from him. But every other senior... If you're an experienced C++ developer, you can imagine the frustration.
Juniors: They're usually like a sponge. They want to learn and thirsty for it, and they believe that those seniors know what they're doing. Some of them realize what a disaster working in CompanyName is for C++ developers, and they leave in relatively short time. Others grow to seniors by conforming to these standards at CompanyName, and life continues.
To add to the stories: Once there was a junior who told me, that another senior (who worked there for like 20 years, and who I didn't have real work with) told him that "allocating memory is dangerous, because cleaning it up can be hard", and prevented him from doing it... and that was in 2018. How hard is it to use your own custom RAII wrapper? Who knows...
But how does such a company survive? They survive because they're contractors. They get the SRS (Software Requirement Specifications), and they follow it. The "quality" specifications come from the customer, which can be described as nothing but laughable. "Quality" there means that you run Valgrind and it doesn't give "lots" of memory leaks. But in my eyes, nothing matters if your code is infested with undefined behavior due to negligence and deliberate ignorance. Maybe I'm paranoid and crazy?
But how can the customer accept this? Because the customer is... a governmental institution. It's the only reason a company like CompanyName survives. As we all know, the public sector doesn't care about modern standards of quality that much. They have "quality standards" that are 20-year old.
Management: They ask you to innovate and be creative, but if you ever disobey seniors, they'll blame you for not being obedient. They also have standards imprinted in their brains that if ever broken, they frown at you. For example, if you write your own implementation of something for a good reason, they blame you in a condescending tone without a discussion, obviously because "writing your own implementation is bad"... with absolutely no context... it's just bad (the implementation I wrote was like 100 lines of code to avoid using a huge GPL library that needs 3 hours to compile, so you judge, and it wasn't even discussed, just blame was thrown). That's the mentality there. They completely fail at understanding how being obedient and being innovative are mutually exclusive. That's how I exited the company. It was hopeless to convince management that anything those seniors are doing is wrong, and it was impossible to have a constructive discussion on any decision that I made.
Why? Because the management loves those seniors, because those seniors understand the game. They know how to write proposals and get more contracts (nothing wrong with that). But... the idea is, If you want to join CompanyName to learn how to be a good coder, this should be the least of your hopes.
Pay: Expect 70%-80% of the standard market salaries. This is because this company deals with the government, and as we know, the public sector doesn't pay much.
Conclusion: CompanyName knows how to make money by utilizing the market very well. But it's not suited for enthusiasts.
Is CompanyName for you?
If you're looking for a stable job where you absolutely don't care about quality or upgrading your knowledge (except in their field, which is only used in a handful of companies) and are looking for mediocre, stable pay by following orders; then CompanyName is definitely for you. I understand that some people want that because work is just work; with no enthusiasm; nothing wrong with that; people are different.
Also, if you're a new graduate who wants to add 1-2 years of experience to their CV before going to real private companies that have real quality standards where you can make real skills, also CompanyName can be a good start, since it's very easy to be hired there and no one outside cares about the quality standards in other companies. CompanyName loves juniors, because they get very low pay.
But, if you're a senior who pays attention to detail and wants to create beautiful code that runs for years and focus on improving yourself, then CompanyName is absolutely not for you. Every senior there will fight everything you do until they get you out, and management will applaud.
Advice to management: Maybe let your seniors get off their high horses, and read some C++ book that's not 15 years old.
EDIT about possible duplicate: This is not about bad-mouthing in interviews, which is obviously not in my interest. This info never goes into interviews. This is going to anonymous glassdoor or similar services. Also I would love to make this as "not" bad-mouthing. It's bad-mouthing in a way, but I would love it to be as objective as possible.
software-industry software-development software review glassdoor
New contributor
SlimEnergy is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
|
show 4 more comments
I wrote this review of a company that I'm going to post on glassdoor and similar websites, and I'd like to know whether this is wrong from a professional standpoint. I'd like to be fair with what I wrote. I'm angry at the company as it's a harsh review (and this is obvious from the review), but I still want it to be a fair and professional review of what I saw there.
I worked at CompanyName for a couple of years. I'm a C++ developer, and this review is to help those seeking to know whether CompanyName is the right environment for them. This is the first time I write a review.
CompanyName, in their branch in Germany, has two primary divisions. First works with C++ primarily, which is about simulations of different space related hardware, and the second is Java related. I'm not in authority to speak about Java, so I'll focus on C++. The reason why I joined CompanyName is that they list in their ads that they work on "mission critical" stuff. This sounded very intriguing to me since I'm obsessed about quality, so I joined.
You can split the employees who work with C++ in CompanyName into seniors and juniors (I'll talk about management later). There are around 35-40 persons in that branch who are separated from the main company in almost everything. The number of seniors is like 3-5.
Seniors basically work with C++ of 15 years ago. Boost is very intimidating to them at all levels. Their knowledge of C++ is embarrassing, and any modern C++ is seemingly very intimidating to them, to the point that they push out anyone who advocates for it, including myself. Seniors, up to this day in 2019, still use "new" to allocate memory manually, and "delete" to delete it manually (and yes, they use exceptions in their code). Zero use of smart pointers exists, because they don't know how to do it. RAII? Forget it. They still allocate arrays manually with "new[]" and "delete[]". They don't know how/want to use std::vector or std::array to avoid memory leaks and have range protection in debug mode. This leads constantly to horrible bugs (which sometimes show up years later when reusing code... we all know what undefined behavior means), because they reuse code a lot, but they use Valgrind to solve these problems (just like the 2000s), which doesn't always work. If you're an advanced C++ developer, you'd know that Valgrind is almost never used nowadays, especially when you have good practises that are agreed upon in the whole C++ community in the world, that we constantly see everywhere in every forum, including cppcon, etc.
Besides all this, how about the senior who doesn't know what a functor is? Or the senior who doesn't know the difference between auto and auto_ptr? Or the senior who thinks it's OK to use auto_ptr in 2019? Or the senior who doesn't know that templates should all be defined in all in header files and why?
Don't even think about the real cool modern stuff, like type_traits, fold-expressions, SFINAE, etc. That's absolutely never gonna happen.
Ignorance is not usually the problem. We're all learners after all in this field. The problem is the huge ego and disinterest in learning anything new. It's frustrating.
So seniors there code with C++ to make the software compile and get the tests to pass through lego-like copy-pasting code. There's almost no understanding of the risks associated with doing what they're doing, and there's no will to change or learn at all.
Once I saw a junior coming to a senior and telling them in some context "I'm using new to allocate this array but Valgrind is crashing at that point... what do I do?", and no facepalming in the world could've cut it in my head. When that junior left, I asked the senior (with a pokerface) "Why aren't we using vectors for memory safety?" and he was convinced that it's OK to allocate and delete arrays manually in order not to write a function to define how to serialize a vector, and creating excuses for it. This was two years ago, and still remains to be the case.
In 2019, using a vector or a smart pointer to do safe memory work was called "textbook approach" by the same senior... another facepalm I lived there. Apparently coding safe C++ is extraordinary or something. I don't really know what to say.
Of course, this means that their code is infested with all kinds of memory corruption, both stack and heap. The last disaster I lived through was some code that crashes when quitting, which happened because of tons of these practices, including (but not limited to) allocating arrays manually and writing to wrong indices in these arrays. Of course, every experienced C++ developer knows that STL containers would protect from such problems since they fire asserts at invalid element access in debug mode. But CompanyName's seniors prefer to have these bugs over learning how to do correct C++.
To be fair, there is one senior who knows what he's doing there. He's the only one I'm really happy to have worked with (both on the professional and ethical level), and I learned a lot from him. But every other senior... If you're an experienced C++ developer, you can imagine the frustration.
Juniors: They're usually like a sponge. They want to learn and thirsty for it, and they believe that those seniors know what they're doing. Some of them realize what a disaster working in CompanyName is for C++ developers, and they leave in relatively short time. Others grow to seniors by conforming to these standards at CompanyName, and life continues.
To add to the stories: Once there was a junior who told me, that another senior (who worked there for like 20 years, and who I didn't have real work with) told him that "allocating memory is dangerous, because cleaning it up can be hard", and prevented him from doing it... and that was in 2018. How hard is it to use your own custom RAII wrapper? Who knows...
But how does such a company survive? They survive because they're contractors. They get the SRS (Software Requirement Specifications), and they follow it. The "quality" specifications come from the customer, which can be described as nothing but laughable. "Quality" there means that you run Valgrind and it doesn't give "lots" of memory leaks. But in my eyes, nothing matters if your code is infested with undefined behavior due to negligence and deliberate ignorance. Maybe I'm paranoid and crazy?
But how can the customer accept this? Because the customer is... a governmental institution. It's the only reason a company like CompanyName survives. As we all know, the public sector doesn't care about modern standards of quality that much. They have "quality standards" that are 20-year old.
Management: They ask you to innovate and be creative, but if you ever disobey seniors, they'll blame you for not being obedient. They also have standards imprinted in their brains that if ever broken, they frown at you. For example, if you write your own implementation of something for a good reason, they blame you in a condescending tone without a discussion, obviously because "writing your own implementation is bad"... with absolutely no context... it's just bad (the implementation I wrote was like 100 lines of code to avoid using a huge GPL library that needs 3 hours to compile, so you judge, and it wasn't even discussed, just blame was thrown). That's the mentality there. They completely fail at understanding how being obedient and being innovative are mutually exclusive. That's how I exited the company. It was hopeless to convince management that anything those seniors are doing is wrong, and it was impossible to have a constructive discussion on any decision that I made.
Why? Because the management loves those seniors, because those seniors understand the game. They know how to write proposals and get more contracts (nothing wrong with that). But... the idea is, If you want to join CompanyName to learn how to be a good coder, this should be the least of your hopes.
Pay: Expect 70%-80% of the standard market salaries. This is because this company deals with the government, and as we know, the public sector doesn't pay much.
Conclusion: CompanyName knows how to make money by utilizing the market very well. But it's not suited for enthusiasts.
Is CompanyName for you?
If you're looking for a stable job where you absolutely don't care about quality or upgrading your knowledge (except in their field, which is only used in a handful of companies) and are looking for mediocre, stable pay by following orders; then CompanyName is definitely for you. I understand that some people want that because work is just work; with no enthusiasm; nothing wrong with that; people are different.
Also, if you're a new graduate who wants to add 1-2 years of experience to their CV before going to real private companies that have real quality standards where you can make real skills, also CompanyName can be a good start, since it's very easy to be hired there and no one outside cares about the quality standards in other companies. CompanyName loves juniors, because they get very low pay.
But, if you're a senior who pays attention to detail and wants to create beautiful code that runs for years and focus on improving yourself, then CompanyName is absolutely not for you. Every senior there will fight everything you do until they get you out, and management will applaud.
Advice to management: Maybe let your seniors get off their high horses, and read some C++ book that's not 15 years old.
EDIT about possible duplicate: This is not about bad-mouthing in interviews, which is obviously not in my interest. This info never goes into interviews. This is going to anonymous glassdoor or similar services. Also I would love to make this as "not" bad-mouthing. It's bad-mouthing in a way, but I would love it to be as objective as possible.
software-industry software-development software review glassdoor
New contributor
SlimEnergy is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
1
"I'd like to know whether this is wrong from a professional standpoint. " - since you will post this anonymously, it's hard to say it might be "wrong". As far as accomplishing whatever it is you are shooting for, that's another matter. It's pretty long, and I doubt most folks on Glassdoor will bother to read all of it. In my personal experience, Glassdoor reviews (both positive and negative) are useless.
– Joe Strazzere
1 hour ago
@JoeStrazzere I am not shooting for anything other than making people realize how it looks like, bad as it's (at least in my eyes, so people can make that judgment). I suffered, and I'd like to make the info available. I wish someone told me this when I joined.
– SlimEnergy
1 hour ago
1
Possible duplicate of Why is it not a good idea to "badmouth" a previous employer?
– gnat
1 hour ago
4
This is a huge wall of text. What little I did read, read like a rant. It was preachy and sounds more like a personal grudge than an objective review. I really doubt it will accomplish anything, as Joe said.
– bruglesco
46 mins ago
1
to be fair I didn't even read the whole thing. You may want to get opinions other than mine.
– bruglesco
36 mins ago
|
show 4 more comments
I wrote this review of a company that I'm going to post on glassdoor and similar websites, and I'd like to know whether this is wrong from a professional standpoint. I'd like to be fair with what I wrote. I'm angry at the company as it's a harsh review (and this is obvious from the review), but I still want it to be a fair and professional review of what I saw there.
I worked at CompanyName for a couple of years. I'm a C++ developer, and this review is to help those seeking to know whether CompanyName is the right environment for them. This is the first time I write a review.
CompanyName, in their branch in Germany, has two primary divisions. First works with C++ primarily, which is about simulations of different space related hardware, and the second is Java related. I'm not in authority to speak about Java, so I'll focus on C++. The reason why I joined CompanyName is that they list in their ads that they work on "mission critical" stuff. This sounded very intriguing to me since I'm obsessed about quality, so I joined.
You can split the employees who work with C++ in CompanyName into seniors and juniors (I'll talk about management later). There are around 35-40 persons in that branch who are separated from the main company in almost everything. The number of seniors is like 3-5.
Seniors basically work with C++ of 15 years ago. Boost is very intimidating to them at all levels. Their knowledge of C++ is embarrassing, and any modern C++ is seemingly very intimidating to them, to the point that they push out anyone who advocates for it, including myself. Seniors, up to this day in 2019, still use "new" to allocate memory manually, and "delete" to delete it manually (and yes, they use exceptions in their code). Zero use of smart pointers exists, because they don't know how to do it. RAII? Forget it. They still allocate arrays manually with "new[]" and "delete[]". They don't know how/want to use std::vector or std::array to avoid memory leaks and have range protection in debug mode. This leads constantly to horrible bugs (which sometimes show up years later when reusing code... we all know what undefined behavior means), because they reuse code a lot, but they use Valgrind to solve these problems (just like the 2000s), which doesn't always work. If you're an advanced C++ developer, you'd know that Valgrind is almost never used nowadays, especially when you have good practises that are agreed upon in the whole C++ community in the world, that we constantly see everywhere in every forum, including cppcon, etc.
Besides all this, how about the senior who doesn't know what a functor is? Or the senior who doesn't know the difference between auto and auto_ptr? Or the senior who thinks it's OK to use auto_ptr in 2019? Or the senior who doesn't know that templates should all be defined in all in header files and why?
Don't even think about the real cool modern stuff, like type_traits, fold-expressions, SFINAE, etc. That's absolutely never gonna happen.
Ignorance is not usually the problem. We're all learners after all in this field. The problem is the huge ego and disinterest in learning anything new. It's frustrating.
So seniors there code with C++ to make the software compile and get the tests to pass through lego-like copy-pasting code. There's almost no understanding of the risks associated with doing what they're doing, and there's no will to change or learn at all.
Once I saw a junior coming to a senior and telling them in some context "I'm using new to allocate this array but Valgrind is crashing at that point... what do I do?", and no facepalming in the world could've cut it in my head. When that junior left, I asked the senior (with a pokerface) "Why aren't we using vectors for memory safety?" and he was convinced that it's OK to allocate and delete arrays manually in order not to write a function to define how to serialize a vector, and creating excuses for it. This was two years ago, and still remains to be the case.
In 2019, using a vector or a smart pointer to do safe memory work was called "textbook approach" by the same senior... another facepalm I lived there. Apparently coding safe C++ is extraordinary or something. I don't really know what to say.
Of course, this means that their code is infested with all kinds of memory corruption, both stack and heap. The last disaster I lived through was some code that crashes when quitting, which happened because of tons of these practices, including (but not limited to) allocating arrays manually and writing to wrong indices in these arrays. Of course, every experienced C++ developer knows that STL containers would protect from such problems since they fire asserts at invalid element access in debug mode. But CompanyName's seniors prefer to have these bugs over learning how to do correct C++.
To be fair, there is one senior who knows what he's doing there. He's the only one I'm really happy to have worked with (both on the professional and ethical level), and I learned a lot from him. But every other senior... If you're an experienced C++ developer, you can imagine the frustration.
Juniors: They're usually like a sponge. They want to learn and thirsty for it, and they believe that those seniors know what they're doing. Some of them realize what a disaster working in CompanyName is for C++ developers, and they leave in relatively short time. Others grow to seniors by conforming to these standards at CompanyName, and life continues.
To add to the stories: Once there was a junior who told me, that another senior (who worked there for like 20 years, and who I didn't have real work with) told him that "allocating memory is dangerous, because cleaning it up can be hard", and prevented him from doing it... and that was in 2018. How hard is it to use your own custom RAII wrapper? Who knows...
But how does such a company survive? They survive because they're contractors. They get the SRS (Software Requirement Specifications), and they follow it. The "quality" specifications come from the customer, which can be described as nothing but laughable. "Quality" there means that you run Valgrind and it doesn't give "lots" of memory leaks. But in my eyes, nothing matters if your code is infested with undefined behavior due to negligence and deliberate ignorance. Maybe I'm paranoid and crazy?
But how can the customer accept this? Because the customer is... a governmental institution. It's the only reason a company like CompanyName survives. As we all know, the public sector doesn't care about modern standards of quality that much. They have "quality standards" that are 20-year old.
Management: They ask you to innovate and be creative, but if you ever disobey seniors, they'll blame you for not being obedient. They also have standards imprinted in their brains that if ever broken, they frown at you. For example, if you write your own implementation of something for a good reason, they blame you in a condescending tone without a discussion, obviously because "writing your own implementation is bad"... with absolutely no context... it's just bad (the implementation I wrote was like 100 lines of code to avoid using a huge GPL library that needs 3 hours to compile, so you judge, and it wasn't even discussed, just blame was thrown). That's the mentality there. They completely fail at understanding how being obedient and being innovative are mutually exclusive. That's how I exited the company. It was hopeless to convince management that anything those seniors are doing is wrong, and it was impossible to have a constructive discussion on any decision that I made.
Why? Because the management loves those seniors, because those seniors understand the game. They know how to write proposals and get more contracts (nothing wrong with that). But... the idea is, If you want to join CompanyName to learn how to be a good coder, this should be the least of your hopes.
Pay: Expect 70%-80% of the standard market salaries. This is because this company deals with the government, and as we know, the public sector doesn't pay much.
Conclusion: CompanyName knows how to make money by utilizing the market very well. But it's not suited for enthusiasts.
Is CompanyName for you?
If you're looking for a stable job where you absolutely don't care about quality or upgrading your knowledge (except in their field, which is only used in a handful of companies) and are looking for mediocre, stable pay by following orders; then CompanyName is definitely for you. I understand that some people want that because work is just work; with no enthusiasm; nothing wrong with that; people are different.
Also, if you're a new graduate who wants to add 1-2 years of experience to their CV before going to real private companies that have real quality standards where you can make real skills, also CompanyName can be a good start, since it's very easy to be hired there and no one outside cares about the quality standards in other companies. CompanyName loves juniors, because they get very low pay.
But, if you're a senior who pays attention to detail and wants to create beautiful code that runs for years and focus on improving yourself, then CompanyName is absolutely not for you. Every senior there will fight everything you do until they get you out, and management will applaud.
Advice to management: Maybe let your seniors get off their high horses, and read some C++ book that's not 15 years old.
EDIT about possible duplicate: This is not about bad-mouthing in interviews, which is obviously not in my interest. This info never goes into interviews. This is going to anonymous glassdoor or similar services. Also I would love to make this as "not" bad-mouthing. It's bad-mouthing in a way, but I would love it to be as objective as possible.
software-industry software-development software review glassdoor
New contributor
SlimEnergy is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
I wrote this review of a company that I'm going to post on glassdoor and similar websites, and I'd like to know whether this is wrong from a professional standpoint. I'd like to be fair with what I wrote. I'm angry at the company as it's a harsh review (and this is obvious from the review), but I still want it to be a fair and professional review of what I saw there.
I worked at CompanyName for a couple of years. I'm a C++ developer, and this review is to help those seeking to know whether CompanyName is the right environment for them. This is the first time I write a review.
CompanyName, in their branch in Germany, has two primary divisions. First works with C++ primarily, which is about simulations of different space related hardware, and the second is Java related. I'm not in authority to speak about Java, so I'll focus on C++. The reason why I joined CompanyName is that they list in their ads that they work on "mission critical" stuff. This sounded very intriguing to me since I'm obsessed about quality, so I joined.
You can split the employees who work with C++ in CompanyName into seniors and juniors (I'll talk about management later). There are around 35-40 persons in that branch who are separated from the main company in almost everything. The number of seniors is like 3-5.
Seniors basically work with C++ of 15 years ago. Boost is very intimidating to them at all levels. Their knowledge of C++ is embarrassing, and any modern C++ is seemingly very intimidating to them, to the point that they push out anyone who advocates for it, including myself. Seniors, up to this day in 2019, still use "new" to allocate memory manually, and "delete" to delete it manually (and yes, they use exceptions in their code). Zero use of smart pointers exists, because they don't know how to do it. RAII? Forget it. They still allocate arrays manually with "new[]" and "delete[]". They don't know how/want to use std::vector or std::array to avoid memory leaks and have range protection in debug mode. This leads constantly to horrible bugs (which sometimes show up years later when reusing code... we all know what undefined behavior means), because they reuse code a lot, but they use Valgrind to solve these problems (just like the 2000s), which doesn't always work. If you're an advanced C++ developer, you'd know that Valgrind is almost never used nowadays, especially when you have good practises that are agreed upon in the whole C++ community in the world, that we constantly see everywhere in every forum, including cppcon, etc.
Besides all this, how about the senior who doesn't know what a functor is? Or the senior who doesn't know the difference between auto and auto_ptr? Or the senior who thinks it's OK to use auto_ptr in 2019? Or the senior who doesn't know that templates should all be defined in all in header files and why?
Don't even think about the real cool modern stuff, like type_traits, fold-expressions, SFINAE, etc. That's absolutely never gonna happen.
Ignorance is not usually the problem. We're all learners after all in this field. The problem is the huge ego and disinterest in learning anything new. It's frustrating.
So seniors there code with C++ to make the software compile and get the tests to pass through lego-like copy-pasting code. There's almost no understanding of the risks associated with doing what they're doing, and there's no will to change or learn at all.
Once I saw a junior coming to a senior and telling them in some context "I'm using new to allocate this array but Valgrind is crashing at that point... what do I do?", and no facepalming in the world could've cut it in my head. When that junior left, I asked the senior (with a pokerface) "Why aren't we using vectors for memory safety?" and he was convinced that it's OK to allocate and delete arrays manually in order not to write a function to define how to serialize a vector, and creating excuses for it. This was two years ago, and still remains to be the case.
In 2019, using a vector or a smart pointer to do safe memory work was called "textbook approach" by the same senior... another facepalm I lived there. Apparently coding safe C++ is extraordinary or something. I don't really know what to say.
Of course, this means that their code is infested with all kinds of memory corruption, both stack and heap. The last disaster I lived through was some code that crashes when quitting, which happened because of tons of these practices, including (but not limited to) allocating arrays manually and writing to wrong indices in these arrays. Of course, every experienced C++ developer knows that STL containers would protect from such problems since they fire asserts at invalid element access in debug mode. But CompanyName's seniors prefer to have these bugs over learning how to do correct C++.
To be fair, there is one senior who knows what he's doing there. He's the only one I'm really happy to have worked with (both on the professional and ethical level), and I learned a lot from him. But every other senior... If you're an experienced C++ developer, you can imagine the frustration.
Juniors: They're usually like a sponge. They want to learn and thirsty for it, and they believe that those seniors know what they're doing. Some of them realize what a disaster working in CompanyName is for C++ developers, and they leave in relatively short time. Others grow to seniors by conforming to these standards at CompanyName, and life continues.
To add to the stories: Once there was a junior who told me, that another senior (who worked there for like 20 years, and who I didn't have real work with) told him that "allocating memory is dangerous, because cleaning it up can be hard", and prevented him from doing it... and that was in 2018. How hard is it to use your own custom RAII wrapper? Who knows...
But how does such a company survive? They survive because they're contractors. They get the SRS (Software Requirement Specifications), and they follow it. The "quality" specifications come from the customer, which can be described as nothing but laughable. "Quality" there means that you run Valgrind and it doesn't give "lots" of memory leaks. But in my eyes, nothing matters if your code is infested with undefined behavior due to negligence and deliberate ignorance. Maybe I'm paranoid and crazy?
But how can the customer accept this? Because the customer is... a governmental institution. It's the only reason a company like CompanyName survives. As we all know, the public sector doesn't care about modern standards of quality that much. They have "quality standards" that are 20-year old.
Management: They ask you to innovate and be creative, but if you ever disobey seniors, they'll blame you for not being obedient. They also have standards imprinted in their brains that if ever broken, they frown at you. For example, if you write your own implementation of something for a good reason, they blame you in a condescending tone without a discussion, obviously because "writing your own implementation is bad"... with absolutely no context... it's just bad (the implementation I wrote was like 100 lines of code to avoid using a huge GPL library that needs 3 hours to compile, so you judge, and it wasn't even discussed, just blame was thrown). That's the mentality there. They completely fail at understanding how being obedient and being innovative are mutually exclusive. That's how I exited the company. It was hopeless to convince management that anything those seniors are doing is wrong, and it was impossible to have a constructive discussion on any decision that I made.
Why? Because the management loves those seniors, because those seniors understand the game. They know how to write proposals and get more contracts (nothing wrong with that). But... the idea is, If you want to join CompanyName to learn how to be a good coder, this should be the least of your hopes.
Pay: Expect 70%-80% of the standard market salaries. This is because this company deals with the government, and as we know, the public sector doesn't pay much.
Conclusion: CompanyName knows how to make money by utilizing the market very well. But it's not suited for enthusiasts.
Is CompanyName for you?
If you're looking for a stable job where you absolutely don't care about quality or upgrading your knowledge (except in their field, which is only used in a handful of companies) and are looking for mediocre, stable pay by following orders; then CompanyName is definitely for you. I understand that some people want that because work is just work; with no enthusiasm; nothing wrong with that; people are different.
Also, if you're a new graduate who wants to add 1-2 years of experience to their CV before going to real private companies that have real quality standards where you can make real skills, also CompanyName can be a good start, since it's very easy to be hired there and no one outside cares about the quality standards in other companies. CompanyName loves juniors, because they get very low pay.
But, if you're a senior who pays attention to detail and wants to create beautiful code that runs for years and focus on improving yourself, then CompanyName is absolutely not for you. Every senior there will fight everything you do until they get you out, and management will applaud.
Advice to management: Maybe let your seniors get off their high horses, and read some C++ book that's not 15 years old.
EDIT about possible duplicate: This is not about bad-mouthing in interviews, which is obviously not in my interest. This info never goes into interviews. This is going to anonymous glassdoor or similar services. Also I would love to make this as "not" bad-mouthing. It's bad-mouthing in a way, but I would love it to be as objective as possible.
software-industry software-development software review glassdoor
software-industry software-development software review glassdoor
New contributor
SlimEnergy is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
SlimEnergy is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
edited 55 mins ago
SlimEnergy
New contributor
SlimEnergy is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
asked 1 hour ago
SlimEnergySlimEnergy
11 bronze badge
11 bronze badge
New contributor
SlimEnergy is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
SlimEnergy is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
1
"I'd like to know whether this is wrong from a professional standpoint. " - since you will post this anonymously, it's hard to say it might be "wrong". As far as accomplishing whatever it is you are shooting for, that's another matter. It's pretty long, and I doubt most folks on Glassdoor will bother to read all of it. In my personal experience, Glassdoor reviews (both positive and negative) are useless.
– Joe Strazzere
1 hour ago
@JoeStrazzere I am not shooting for anything other than making people realize how it looks like, bad as it's (at least in my eyes, so people can make that judgment). I suffered, and I'd like to make the info available. I wish someone told me this when I joined.
– SlimEnergy
1 hour ago
1
Possible duplicate of Why is it not a good idea to "badmouth" a previous employer?
– gnat
1 hour ago
4
This is a huge wall of text. What little I did read, read like a rant. It was preachy and sounds more like a personal grudge than an objective review. I really doubt it will accomplish anything, as Joe said.
– bruglesco
46 mins ago
1
to be fair I didn't even read the whole thing. You may want to get opinions other than mine.
– bruglesco
36 mins ago
|
show 4 more comments
1
"I'd like to know whether this is wrong from a professional standpoint. " - since you will post this anonymously, it's hard to say it might be "wrong". As far as accomplishing whatever it is you are shooting for, that's another matter. It's pretty long, and I doubt most folks on Glassdoor will bother to read all of it. In my personal experience, Glassdoor reviews (both positive and negative) are useless.
– Joe Strazzere
1 hour ago
@JoeStrazzere I am not shooting for anything other than making people realize how it looks like, bad as it's (at least in my eyes, so people can make that judgment). I suffered, and I'd like to make the info available. I wish someone told me this when I joined.
– SlimEnergy
1 hour ago
1
Possible duplicate of Why is it not a good idea to "badmouth" a previous employer?
– gnat
1 hour ago
4
This is a huge wall of text. What little I did read, read like a rant. It was preachy and sounds more like a personal grudge than an objective review. I really doubt it will accomplish anything, as Joe said.
– bruglesco
46 mins ago
1
to be fair I didn't even read the whole thing. You may want to get opinions other than mine.
– bruglesco
36 mins ago
1
1
"I'd like to know whether this is wrong from a professional standpoint. " - since you will post this anonymously, it's hard to say it might be "wrong". As far as accomplishing whatever it is you are shooting for, that's another matter. It's pretty long, and I doubt most folks on Glassdoor will bother to read all of it. In my personal experience, Glassdoor reviews (both positive and negative) are useless.
– Joe Strazzere
1 hour ago
"I'd like to know whether this is wrong from a professional standpoint. " - since you will post this anonymously, it's hard to say it might be "wrong". As far as accomplishing whatever it is you are shooting for, that's another matter. It's pretty long, and I doubt most folks on Glassdoor will bother to read all of it. In my personal experience, Glassdoor reviews (both positive and negative) are useless.
– Joe Strazzere
1 hour ago
@JoeStrazzere I am not shooting for anything other than making people realize how it looks like, bad as it's (at least in my eyes, so people can make that judgment). I suffered, and I'd like to make the info available. I wish someone told me this when I joined.
– SlimEnergy
1 hour ago
@JoeStrazzere I am not shooting for anything other than making people realize how it looks like, bad as it's (at least in my eyes, so people can make that judgment). I suffered, and I'd like to make the info available. I wish someone told me this when I joined.
– SlimEnergy
1 hour ago
1
1
Possible duplicate of Why is it not a good idea to "badmouth" a previous employer?
– gnat
1 hour ago
Possible duplicate of Why is it not a good idea to "badmouth" a previous employer?
– gnat
1 hour ago
4
4
This is a huge wall of text. What little I did read, read like a rant. It was preachy and sounds more like a personal grudge than an objective review. I really doubt it will accomplish anything, as Joe said.
– bruglesco
46 mins ago
This is a huge wall of text. What little I did read, read like a rant. It was preachy and sounds more like a personal grudge than an objective review. I really doubt it will accomplish anything, as Joe said.
– bruglesco
46 mins ago
1
1
to be fair I didn't even read the whole thing. You may want to get opinions other than mine.
– bruglesco
36 mins ago
to be fair I didn't even read the whole thing. You may want to get opinions other than mine.
– bruglesco
36 mins ago
|
show 4 more comments
0
active
oldest
votes
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "423"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
SlimEnergy is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fworkplace.stackexchange.com%2fquestions%2f142387%2fis-it-wrong-to-write-a-such-a-review-for-a-software-company-for-their-horrible-c%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
SlimEnergy is a new contributor. Be nice, and check out our Code of Conduct.
SlimEnergy is a new contributor. Be nice, and check out our Code of Conduct.
SlimEnergy is a new contributor. Be nice, and check out our Code of Conduct.
SlimEnergy is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to The Workplace Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fworkplace.stackexchange.com%2fquestions%2f142387%2fis-it-wrong-to-write-a-such-a-review-for-a-software-company-for-their-horrible-c%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
"I'd like to know whether this is wrong from a professional standpoint. " - since you will post this anonymously, it's hard to say it might be "wrong". As far as accomplishing whatever it is you are shooting for, that's another matter. It's pretty long, and I doubt most folks on Glassdoor will bother to read all of it. In my personal experience, Glassdoor reviews (both positive and negative) are useless.
– Joe Strazzere
1 hour ago
@JoeStrazzere I am not shooting for anything other than making people realize how it looks like, bad as it's (at least in my eyes, so people can make that judgment). I suffered, and I'd like to make the info available. I wish someone told me this when I joined.
– SlimEnergy
1 hour ago
1
Possible duplicate of Why is it not a good idea to "badmouth" a previous employer?
– gnat
1 hour ago
4
This is a huge wall of text. What little I did read, read like a rant. It was preachy and sounds more like a personal grudge than an objective review. I really doubt it will accomplish anything, as Joe said.
– bruglesco
46 mins ago
1
to be fair I didn't even read the whole thing. You may want to get opinions other than mine.
– bruglesco
36 mins ago