Pros and cons of getting a job at a very small software company? (14 employees)
I have the opportunity to maybe get a job as a software developer at a small software company that employs 14 people. But my gut is telling me that getting a job at a small company like that might he terrible. Do you guys have any experiences working at companies that small?
In my mind, I imagine the CEO would have a very large presence at the company and everyone would feel a lot of pressure to appease him. I imagine that the whole company would just be a boys' club. But I guess any company can be like that, so maybe I'm jumping to conclusions, and the size of the company isn't actually related to company culture?
Lots of room for creativity, innovation, and change. But as others mentioned, this depends on the company culture.
Less red tape because of the shorter line up the organization.
Faster promotion track if the company grows and you've already established yourself. You can also get a huge payout if the company is acquired in the future.
The bad:
Possibly not as organized vs a company with an established support group (admin, payroll, HR, etc.).
People having to perform multiple roles due to having fewer personnel.
As a counter to the 2nd bullet in the pro section, having to deal directly with top management means you're more exposed to politics.
Possibly lower pay. But you said they've been around for 2 decades so maybe they're paying well, and I'm sure you've considered the pay already.
People having to perform multiple roles due to having fewer personnel.
A pro in my book. I like the diversity of work rather than getting pigeon-holed into some very niche little task that I would have to do day in and day out.
For sure, but it depends if you actually want to do the additional work assigned to you. It's all good, until you're being asked to do some administrative stuff like help Jen from accounting on company finances because it's tax season. Or finish some paperwork for the lease on the building the company is renting. Or sales/marketing stuff like reaching out to a customer to sell additional features, when you're a backend developer. Or provide technical support when you aren't supposed to be customer-facing.
I really like this list. But another thing is job security. Generally the larger the company the more likely it is to continue existing.
This is more important for VC-funded startups that are more likely to run out of cash than continue existing, but is still true of established profitable companies.
SMB owners tend toward arrogance and micromanaging, as a group. This isn't a criticism - these are traits that enabled them to start a business and keep it going.
Of course, every business is different.
SMB won't be as structured as a larger business, and will likely operate with more flexibility.
As you've already touched on, company culture is everything at small companies. If you fit in well, you'll love it. If you don't, you'll hate it. I would ask to talk to other people in the company besides the CEO and talk to them about what working there is like and what kind of person would fit in well. If the CEO (I'm assuming that is who you are interviewing with) balks at the Idea, that right there tells you something.
Clique culture in small companies is pretty common. It might not be boys club but there's no middle man to protect Devs from those in charge so there's always going to be pressure to hang out if everyone is or to work overtime. You have to work in that clique culture but you don't have to always say yes as long as you are friendly about it. The phrase "being firm" has never sat right with me for these as it's the antithesis of friendliness you can be loose and say no and if it's brought up again stay loose and continue to say no. You don't need an excuse but a loose excuse is works well.
Security is obviously always scary but the tech landscape does not really have that anyway. Realistically if the only worry is it's a small company and everything else is good, take it. If you find that you don't fit into the small team flow, then you can continue looking in the future.
I'm a software dev whose first job out of college was at a tiny company, 10-15 people.
Pros: I learned a lot. Each project had different technologies involved. I def didn't get bored!
Basically no red tape. I reported to the IT director, and he reported to the owner. Nothing could really get lost in bureaucracy there.
Cons: Payscale was weak, but eh, it was my first job out of college.
No room for advancement. What even is a promotion when the whole company is only a dozen people?
Limited mentoring. While I had a lot of guidance from my boss there, especially early on, now years later I'm looking back, wishing I'd gotten a more varied perspective. You can only learn so much from one person's perspective.
I'm in this exact situation now and have been for many years, while previously in a gigantic company..
Pros:
You (hopefully) tend to have significantly more influence on the tech stack and software direction.
You're (hopefully) treated like a real person and not a cog in the corporate machine.
You (hopefully) get to learn and do a larger variety of things.
Cons:
Pay can be lower, and getting raises can be harder when you're talking directly to the CEO/Owner and it is quite literally coming out of his or her pocket.
Taking leave tends to be harder when there is so few people to pick up the slack.
Ok, I'll give my experience. I was hired as basically a paid intern. I was in high school, I "knew" computers like a nerdy teenager knows computers... Not real knowledge of their workings but I played with some programming(I got hello world to work using perl) , I could install linux(in the early 2000s, I bought copy of Debian Linux on 7 cds). I was basically told I would be an assistant to the other computer technician.
A week after I got hired, he got fired. For the next several months people got hired and fired after a 2-3 weeks. The company was 3 people, myself, the owner, his wife did the accounting. I didn't know what I was doing, googling what I could to figure stuff out(i now know that's normal but also now know how to Google correctly). I leaned on the owner to figure out things. I don't know if your job is in computers but these are things I learned later were absolutely idiotic.
If a computer came in with a suspected virus, standard protocol was no research or investigation... Format and reinstall.
We had corporate clients (main client was a credit union), we gave the windows CD and license code to each teller with no record of what they were. He sold the license at the price he bought then for from staples.
All servers had local admin accounts. All local admin accounts had similar passwords. I was the only person who knew what those passwords were.
My boss thought time spent documenting was time wasted.
Anyways I stayed there for 4 years. It was not perfect and I learned so much wrong stuff. It was a decent job, my boss had really weird rules(why so many people got fired), and my time would of been spent better learning correct information.
That said I ended up causing the company to go bankrupt and the owner and his wife are now Christian consulers...
Long story short... Most of the money the company earned was from the credit union. I went through a depression phase and tried to kill myself (I'm doing better now) so I was inpatient in a mental ward for about a month.
The credit union got a computer security audit from the ncua(similar to fdic but for credit unions). My boss could not access any system. No servers, no firewalls, no intrusion detection systems, nothing. I had the passwords but was unable to be contacted and "documentation was a waste of time".
They failed the audit. Credit union basically asked "we pay you for computer security, we failed an audit for computer security, so why do we pay you?"
Contract was lost and company went under shortly afterwards.
That "micromanaging CEO" can also happen in big companies as your skip-manager doing that. So, being in a big company isn't a safe bet against it.
I would say there are more pros than cons in working for a small company. Especially if you're at the beginning of your career.
What you should make absolutely clear is that what you'll be working on i.e. products & technologies.
Pros:
You may learn a lot of things. Not only on the tech side but also about how to deal with people, how a project is managed, how business is translated into tech.
It's easier to be seen and heard. You see a problem with a business initiative, you can convince the managers and change it to avoid a certain disaster. Your achievements will be recognized more.
Less bureaucracy. Big companies move very slowly. Also with your career development. You will have to jump through many many loops to just get a pay raise as much as the inflation. In small companies salary adjustments and promotions are much faster.
You may rise up quite fast. With the allure of big companies stealing talent from small companies there may be many opportunities to grow into different roles in the company.
Small companies need to retain their employees more than the big companies. It's an expensive and time consuming process to hire. So a smart small company will try their best to retain its employees. If the financials of that company are good it means you will have better job security.
Less playing politics. In big companies there are a lot of times you have to play politics against other teams to get something done. That's tedious and time consuming. You may see the work you spent so much time on to be "postponed" to another quarter just because some other team "wasn't ready yet".
In big companies there are a LOT of legacy, badly written, big riddled, failing code present. Most likely you will have to maintain code like that alongside new code. In small companies it's less likely to encounter very bad legacy stuff.
Cons:
If there's a micromanaging CEO (especially without tech experience) this may drive you crazy. The same applies for an incompetent direct manager.
It may be unbearable if you don't "vibe" with the people. Especially if they are rude or insulting. In big companies how people shall interact with each other is defined and enforced. May not be the case in a small company.
The salary may be lower than what you'll get in a big company. But if you're early in your career that shouldn't be the most important point.
After 2 - 3 years most likely you'll learn everything in the company and it won't feel challenging. Then you'll need to change jobs as the things you can learn at a small company are limited to what they are using anyway.
There will be a lot of focus shifts and last minute changes. Things will (almost) never go according to the plan. What you have been working on may be shelved due to changes in business requirements.
Related to the previous point you may need to work overtime.
Disagree about the salary part. From my experience smaller companies tend to pay a bit better because they don't have the reputation and the presence in the industry that a big company has.
I worked in one for 6 years. The best thing was getting close to my coworkers, I'm still in contact with some of them to this day. The worst thing was the compensation. Can't get more money when there's none to go around.
Pros: there shouldn't be a lot of red tape or layers of middle management to deal with. If you have an idea, you know exactly who you have to convince to get them to buy in. Your contributions will have a visible impact right away. If you get along well with the team it may seem like too much fun to really be work.
Cons: resources will likely be scarce. The "IT Department" might just be Ed, one of the greybeard Linux guys, who maintains the servers in his spare time. (or worse yet, Ed might have just retired, and they think you're the new Ed). There are only a handful of people "in charge" and if you don't get along with them you may not be able to get much done.
Whether the culture is good or bad is not strongly indicated by the size. You'll get a good feel by meeting them. Prepare some questions on turnover and overtime use. You want both low.
You will have to do work that in a bigger company would be specialist work. Some possible examples: Maintain infrastructure, drag network cables, purchase your computer, negotiate with service providers, software architecture, UX, product strategy, frontend, backend, integrations, customer support, QA, fix the printer, argue with the landlord about ventilation, etc. All this could be heaven or hell based on your personality. :)
the biggest downside imo is it can be hard to leave because you'll feel more connected to everyone involved. but they won't necessarily be able to pay you much more than you start at even if you do stay. and you'll be spending that time on more or less the same tech stack which can limit your growth and make it harder when finding a new job later.
id say it's fine especially as an early job but strongly consider a new job after 2-4 years
I actually started at my current company when there were only 12 employees total. Now we're 100+ employees. I witnessed the shift from a small company to medium sized.
When I started, the CEO was very present in day to day operations in the company. We hold a weekly meeting and everyone gets to share their updates and the CEO is involved in the day-to-day operations in the projects.
I lucked out having an excellent CEO so my experience is great when we're at the small company stage. However since we've scaled up to be more than 100 employees there's already middle management and what we did needs to be filtered thru the middle management.
Unfortunately the middle management layer is not as great as the CEO. So I've been contemplating moving to another company but the pay is good and I work remotely, but I've been looking around to see if there's better options.
A small company like that likely won't have policies and processes to fall back on. This can be good for some things, but when things go bad it can backfire.
Mainly for things like promotions, HR, complaints, etc. In big companies there's a formal process for how to get promoted and what's expected at each level, etc. Same for HR complaints. At a small company you're going to be more subject to the whims of whoever is in charge.
Same for new projects. In a big company you have red tape and processes to blame when something fails, but in a small company it'll be more likely to be "your fault".
Mainly for things like promotions, HR, complaints, etc
Haha this is such a good point.
The CEO took us to lunch and said to me, "I don't know if your people like the Olive Garden or not." Which if I was to report to HR, that would be HIS BROTHER.
I also didn't get a promotion because I don't go to his golf outings.
Oh and his wife was a CTO and she once asked me why I release software with bugs in them. That was when I started applying for other jobs.
I've done both large companies, small startups, did freelancing, anything for a paycheck. I now am a engineer for a major company with 10k employees and there's so much that I picked up that would have made my life easier when I worked at a small company.
At a small startup, I absolutely was the jack of all trades developer. Everything from setting up infrastructure to web development. I was paid well but I didn't feel like I knew anything. We were always in rush mode. I remember working 60hr weeks for months because we had so little revenue and we're trying to save the company.
At a small company of 20 ppl, I was senior developer #3. There were only three developers. All seniors apparently, but paid like 30% less than our counterparts in other cities. The drama was so stupid. Everything was done because "That's how we did it." So much reinventing the wheel. The lead senior belittled and was a awful human. When I quit and joined my current job, he asked me for a recommendation. I still gave it, but he failed the first round of technical questions.
The cons of working at a small company?
Too many hats.
You are in charge of the domain. If you take two weeks off, you will get phone calls.
It's only as good as the experts involved. Good Project managers and testers are a godsend and may not exist in small companies.
I was paid well but being in revenue talks and the "we have two months of runway before the whole company shuts down" is so incredibly stressful.
There's pros too. But at my experience level and current lifestyle, I love turning off my laptop for the day and coding my own stuff on the side.
I've worked at both small companies as small as about 12, all the way to massive fortune 100 companies (as a trans woman). Big companies get you many perks and often a very nice campus. But I've had better experiences mostly at the small companies.
The "boys club" thing never materialized too much, coworkers were decent people and I made great friends Never had a problem being trans at work. But the size definitely affects culture. Large companies have a fake explicit (not bad words, I mean explicit as in well defined and stated) culture shoved down your throat, small companies tend to have an organically formed culture. Big companies often attract leaders with high levels of narcissism highly driven to succeed and you have to deal with their tantrums. Startups attract unique people, still driven but in a different way.
One thing to be aware of at small companies though, is that many of these companies were formed for the purpose of being acquired, so their goal isn't to be a cool company, it's to do whatever it takes to be an attractive acquisition target which often sucks.
Even in a small company, the CEO is either going to be busy doing other things not managing IT, if they do manage IT, they would be no different than any other boss.
I worked for a small software company for 6 years after finishing uni. I was the first person the founders hired. It was a great time and I learnt a lot and got to make a lot of decisions and had a lot of freedom.
But they didn't pay anywhere near as much as a corporate job so when I got offered significantly more money to work for a very large company the small company couldn't match it and pushed me to take it as a huge career and development opportunity.
It's been great working at the big company but I really miss the culture and involvement I had at the small company.
I’ve worked at two smaller companies like that. I had a great experience at one of them, and a mediocre experience at the other one. So, I feel like it’s probably just hit or miss depending on the company.
Some thoughts to keep in mind, speaking from my own experiences:
A small company is a higher risk in many regards, less ability to remain solvent during difficult times, less resources so more pressure on the smaller workforce, things like that.
From a dev perspective, you are also limiting the number of similar or better co-workers you could interact with which reduces exposure to things that came to them with experience that you don't have yet.
Then consider whether you're getting equity or mere-paycheck,
then consider whether the circumstances make that particular context, & particular pay-regime, a risk you aren't long-term accepting.
Also invest in 2 books on the enneagram, "The Modern Enneagram", the one by 2 women, 1 of whom is Bell, iirc, not the other one with the same name, & "Taking Care of Your Type",
& consider how well those 2 specific ones get you, then do your own analysis of the ones who'd be affecting your life.
The more you understand what you'd be in for, the better for you, right?
The 1st mentioned Modern Enneagram book has links to scientific papers, if you want that background.