Working at s IT Solutions: My first large company
I have been working self-employed for s IT Solutions since 1 March 2010; from 1 September I'm salaried there. (I shall still be doing bug-fixing for my old customers, consultancy, and perhaps some smaller new development projects on the side. This is explicitly allowed in my employment contract.)
s IT Solutions is the IT provider for Erste Bank and the Sparkasse Group. My role is in the team doing the Internet presence of those banks (e.g. corporate homepages; has more software of a greater complexity than one would perhaps imagine..) and the online banking services for those banks (which has as much software as one would imagine..)
It's the first large company I've ever worked for. Every other company was either a start-up or had grown from being a start-up. Obviously there are a lot of differences, but I have to say there are both advantages and disadvantages to both options. Working at start-ups one gets a lot of marketing that working for large companies is really bad, that everyone would rather be working for a start-up, "doing something they love", and that those of us who manage to make it into the start-up world are those who have had the courage to make the move, "fire the boss", and we look in pity at those who haven't had that courage; examples 1 2. I’m pretty angry about myself having believed that marketing unquestioned for so long.
My experiences with large companies are obviously incomplete as this is my first large company, so I can't really tell which properties are properties of only this company, and which are properties of large companies in general. But the benefits which have become obvious so far as:
- Food – Perhaps this has the most impact on my daily life ;-) The food is really excellent, and only costs €3.40 for soup, salad, main course, desert and fruit. Better than microwaved stuff from the shop, or going to a restaurant and spending €10.
- Variety of people – It's nice to talk to different people with different backgrounds and experiences (obviously easier if there are more people to talk to), there is a greater range of older and younger people.
- Higher salaries – At least this seems to be the case. By some philosophies at least, this makes one feel more valued, although how sound that logic is, I'm not so certain. But on a purely practical level, obviously more money is good.
- Fewer salary discussions – At a few places I've worked, there have been some students, who have been really talented, and earn e.g. €19/hr. It's inevitable then, if one earns more, there are going to be discussions from time to time about why one earns more than them. I am fed up with such discussions.
- Less unnecessary pressure – If one is ill, having a bad day, or whatever, there are more people who can take over from you the larger the team.
And some disadvantages:
- More specialised roles – Whereas in smaller companies I've done requirements, software design, programming, deployment, performance analysis, live bug fixing, a certain amount of sysadmin, here everyone has more specialised roles.
- Can't access Gmail or Facebook etc. at work – This has disadvantages above and beyond just not being able to surf. Those two sites are really the leaders of web usability, not only in terms of their innovation but also in terms of their adoption. As a consequence, people at larger companies, if they don't use those sites at home, are not necessarily familiar with the current trends in web usability.
- Ridiculous VPN software – Most of my small-company customers are hosted at (or are) Nessus, they always set the systems up so that they are simultaneously secure and very convenient to log in to (e.g. ssh directly, test servers via https) so that VPNs were not necessary. I guess commercial VPNs succeed/fail solely by their marketing to bosses, as opposed to how convenient the employees find them, and thus the VPNs evolve consistent with these environmental demands.
- Less choice of OS – I don't mind working with Windows but I know that's not the case for everyone.
Some things are the same:
- Source code beauty – I have worked on two projects here, one more beautiful than the other. The code quality at the small companies I worked at also varied greatly. I assert code quality and company size are orthogonal dimensions.
- You always have a boss – I have had good and bad bosses at small companies. I get on well with, and respect, my boss here. But no doubt there are bad bosses in large companies too. Therefore I further assert that how much you like your boss and company size are orthogonal dimensions.
- Difficulty of the work – You can choose your jobs/customers based on any number of attributes of the potential assignments, for example salary, difficulty, location of the office, and so on. Very rarely have I had the luxury of seeing an opportunity which is both extremely challenging, and well paid. While the work here is "just programming", most of the work I've been doing in the last few years has been "just programming", and I think one can make a big difference for the customer by doing excellent "just programming", so I am more than happy to do that.
And this consequences which is an advantage/disadvantage depending on your viewpoint ;-) (but in my view an advantage)
- Not blindly applying frameworks – At least the group I'm in, they don't blindly follow software trends, but are also not inflexible either. I have had a lot of bad experiences with certain Java frameworks (all at small companies, obviously). Using simple programming, without thousands of XML config files, has advantages in terms of performance, maintainability, reliability (bugs), and IDE being able to do refactoring.
So the main thing I'm trying to say is I believed assertions, by startups, that only startups are good, for 10 years of my life, going to no effort to actually verify or refute them. This was a mistake, which I regret.