- SwitchThink has an identity crisis. The company started out with a heavy aspect on software and have quickly evolved into an IT service company which has kind of reduced the development team to second class citizens. It’s clear that senior management undervalues our work to clients (we’re not charging anywhere near as much as we should!) and holds our server teams to a higher standard, as they keep hiring more people over there to help but the development team keeps taking on more responsibility without getting more resources.
- Salaries are significantly under valued. Most of the staff is working for 25-40% less in comparison to what they could make elsewhere. As more experienced staff leaves, it will be very hard to find replacements unless pay is increased to match the market.
- Many positions don't have a level system and those that do only go to level 3 (senior). At least on the software team, the majority of developers have 4+ years of service with the company and are already at the senior level, they have no where to move up and small salary increases every year isn't enough incentive to keep them. Management seems blind to this being an issue and even though it's been brought up multiple times in meetings, there's never any action around it.
- At least on the software side, it's very hard to find talent. We have had positions go unfilled for over a year with barely any candidates interviewed in that time. Aside from that, the hiring process is generally very slow and we've lost good candidates because making an offer takes so long that people have accepted offers elsewhere in the meantime.
- Client work is not very well managed. The project vetting process goes through a sales team that signs off on the team being able to do something usually before anyone technical even says it's possible and/or an unrealistic timeline for completion is given.
- Raises come once a year and are based off performance of which the max increase is barely enough to cover cost of living increases. High performers are rewarded with only a 2% increase more than if they met their expected output.
- Bonuses are paid out yearly and the amount is communicated well throughout the year. By the end of December, everyone knows the percentage they'll be getting (generally a base of 5% with a max of 7.5%) but it takes until mid-March to be paid out.
- Often times when we break the backend, our front end devs can't do any work which causes them to be blocked for large amounts of times because we host the front end and backend on the same servers, in the same solution.
- The core product SwitchThink work revolves around, KeyStone, is probably one of the worst applications to work with. Fortunately/unfortunately, there’s only one team that deals directly with it on a day-to-day basis.
- Code reviews are all generally done by a single person, which makes learning from them difficult. And while the company has adopted a lot of new tech over the years, those who make technology decisions are also very resistant to change. There are many tools available that could make life easier for developers and reduce a lot of headaches we currently have, but since the people at the top don’t have experience with those technologies or understand them well enough, they are passed over as options.
- None of the code is tested. Bringing it up as a concern in meetings is usually opposed because it may take developers longer to do their job. We have an awesome manual QA team that does their best to find any issues, but in the end, they’re mostly just QAing the UI and I feel bad when the responsibility then falls on our front end devs to figure out where the problem actually is.
While the tech stack may be on the newer side, deployment and hosting definitely isn't:
- Most apps are hosted on local Windows servers that have to be provisioned by another department in order to standup new projects (we do not have DevOps), which more than often takes a very long time to get done. Training was done to understand what's out there for dev team to use on Azure, but it was pretty clear that the current staff needs more specialized training as they've been doing it a certain way for years and changing that will be difficult.
- Deployment is done via Bamboo for some applications, but it's not setup as a CI/CD solution and manually logging into servers and deleting/creating folders is still necessary for the most part. Many of the older applications still require you to run the build and copy/paste it onto the server, which is kind of a nightmare. Production deployments end up taking hours instead of a few minutes.