I'm impressed everyday over the company culture, and the happiness of the employees. There are so many perks and benefits which makes working here comfortable and healthy.
Support from management
Management has a very clear goal in mind, any compromise or thoughts (good or bad) you have regarding it is dismissed and frowned upon. They've been here for 10+ years so no matter what you have to say, you will be rejected. If you have a better way to implement something that doesn't align to their expectation is it dismissed. Tenure here rules everything, your skill, ability, and previous accomplishments doesn't matter.
The form of teamwork here is called "process". Would you like your colleague to check out an interesting idea? There's a process for that, which turns into two weeks of making documentation and looking for a time slot to setup a meeting, only to be pushed back one reason or another. In any other company I've worked for in the past eight years it goes like this: "hey bud, check this out ..." Teams rely on over-engineered teams which rely on over-engineered teams. If your code requires a bug-fix from another team, expect two months of down time until you get it.
Freedom to work independently
This is probably the worst I've seen. Developers here aren't software engineers, they're engineers from different fields: bio, medical, electrical, mechanical, etc... who've been molded into writing code for their product instead. That said, most of the developers here don't have a lick of knowledge about best practices or the common basics of computer science. These are the people doing your code reviews, and they will mold your work into what they want to see (which rarely is the proper direction, because after all, it wasn't in their schooling to know the best practices).
Among the worst internal communication I've seen. Every piece of information is thrown into wiki's which are incredibly esoteric to read and understand. Not to mention these "documentations" are all out of date and rarely can be applied anymore, instead of keeping their internal process and information up to date, they just make another wiki page and link into it from an old one, making new and old hires spend hours upon hours clicking through wikis to find what they need.
The biggest hype I've seen. If you're coming right out of college this might be an okay place for you, you will be molded into what they want as software engineers, doesn't matter what field you're from, and you can forget about your years of schooling, you'll never be able to get a job in your intended field again since you have zero experience in it. MathWorks has turned you into a hack-shop programmer who doesn't understand the basics of computer science, but can copy-paste your way through the job. If you already have experience in programming this will be the end of the line. The world will fly by you in technologies while you're stuck in the early 2000's.
Overall compensation for your work
Generally the pay is comparable to most companies, as always you should always try and negotiate to the highest possible since the rest of your tenure will be based from that. They are in-the-clouds with process and that doesn't exclude HR as well, they only want to know your years of experience, and degree; these are the only factors when they come up with your salary.
Office / Work Environment
There's nothing bad to say about the office/work environment. It's a phenomenal environment worthy of the highest praise.
The work-life balance is pretty ideal. You rarely ever need to stay late or come in early, and you don't need to take your work home with you which is nice. Working from home (although possible) is highly frowned upon, which I find strange being the 21st century of software engineering. Even when its snowing you'll see employees coming into work.
From what I've seen, nobody gets fired from MathWorks, they keep writing their sloppy code for ever and ever. A perfect place for someone to cruise through their career life without a care in the world.
The challenge here is learning what all of these processes and wiki pages are trying to say. Your brilliant idea to turn 10000 lines of code into 100 comes with a price of 6 months of documentation, reviews, documentation, reviews, wiki's, meetings, process, and... congrats, you just wrote 100 lines of code in a half-years time.
Suggestions for improvement
- Stop hiring people who don't have a lick of knowledge in computer science and making them write code. Update your tooling and systems to the 21st century. Your processes only slow down your company to a crawl and it shows in your product. Enforce code conventions and proper tooling, when the code base is large readability, simplicity, and maintainability should be the #1 priority.
What I like about the company
The environment and culture truly is spectacular, excellent benefits and perks to your day-to-day work life.
What I dislike about the company
The knowledge, expertise, and advice you give is only weighed by your years of tenure at MathWorks. It's rare to find someone with a computer science background writing code, and it shows in the product. Code is sloppy with no convention guidelines. Tools are so outdated and painfully irritating to work with. Processes have gotten way out of control. Internal documentation is out-dated and esoteric. Expertise of new hires is dismissed.