Pros
The employees are awesome. Some of the smartest people I've ever worked with. Tons of technical talent at this little company. Great place to get a lot of varied experience. You won't generally be working on the same thing for very long. You will drift from Angular, to PHP, to Ruby, to C#, to Kotlin. They have projects in almost every tech stack you can think of. If you like to bounce around a lot between technologies. this could be a pro. There is free soda, if that's important to you. The company provides lunch once a month or so. Some cool and interesting projects to work on from time to time. If you stick around long enough, and they sell off one of their companies you can get an arbitrarily decided payout (which you could make up in salary elsewhere). Seriously, again, the people.
Cons
Literally everything else. Mostly upper management. The President/Owner micromanages everything and everyone. He comes in at 4 or 5pm as everyone is getting ready to leave and will keep them for hours getting into the nitty-gritty detail of what they're working on. He often keeps people until 4am the next day. Overtime pay is calculated illegally, based on an 80 hour pay period instead of a 40 hour work week. In other words, an employee might work 79 hours in ONE WEEK, and then just be told to not come in for a week so they don't have to pay them overtime. All employees are hourly. Some employees are "salaried," not paid overtime for extra hours worked, but are docked pay if they don't hit at LEAST 80 hours per pay period. Salaried employees are still forced to punch a clock for "accounting purposes." FYI this is also illegal. No training opportunities. Attending conferences is discouraged. In house training programs are completely lacking and efforts to initiate them are blocked by management. Anything not increasing "billable time" is not going to happen. It's all about the bottom line. No efforts to increase employee success or betterment. Nepotism. Anyone in any kind of position of authority is often related to the President/Owner through either blood or marriage. No 401k. No stock options. No retirement plan. Only 10 days of PTO per year. If you don't get enough billable hours in a pay period, they burn your PTO to make up for it, assuming you must've taken time off for it instead. Most people here are paid well under market value. The President/Owner uses peoples' ignorance to his advantage and lowballs everyone on pay/compensation. Remote work or work from home is not a thing here. As a developer, you will not be provided a laptop, but rather a desktop/gaming machine that, it is thought, will keep people in the office where management can keep tabs on them. They don't trust anyone to work from home and barely trust they're working in the office. Want to take a quick break and head to Maverick for a fountain drink? Not without clocking out you won't. They account for every minute of your time to try to avoid "time stealing." It's not about doing your job or being paid for what you know. You are paid for your time, in your chair, coding on your keyboard. Any time spent pair programming, researching, asking for help, etc is highly discouraged as it's not generally billable time. Focus is always on billable hours and how they can squeeze every ounce out of you to bill their clients. Management is always going on about the awesome "culture," but the only culture that exists is that of "billable time." It's like a cult of billable time. The ones who have 90%+ billable are praised, and the rest are publicly shamed. The owner owns several other companies. Some of those have perks/rewards that Guru employees don't get and vice versa. It creates a lot of jealousy back and forth, but the employees at all of them are still awesome and get along well. Again it just comes down to perceived fairness. Very reactive environment. Your attention is always directed to the biggest perceived fire. No opportunity to get ahead of anything and be proactive, because the owner himself is not proactive. He always reacts to the biggest "fire" in his face and nothing else. Status checks, you will randomly get asked for very detailed status updates on anything/everything you're working on. Sometimes/often by the owner himself. You need to provide detail in your hourly reports to account for why you spent your time on what you spent it on. You need to be able to account for every 15 minute chunk of time throughout your day and be able to justify every bit of it (i.e. to a client or management). Bottom line, everyone is overworked, and underpaid. The owner comes in at random hours and expects people to be working at all hours. Expect any ideas you have to be always shot down/overridden by the owner's "experience." It trumps all (whether it actually does or not).