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?
Please let me know if you have any thoughts.
EDIT: The company has been around for two decades
It’s a two-edged sword for sure.
The good:
-
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.
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.
There’s nothing like some droll task like stuffing some envelopes to get your mind off that problem you’ve been wrestling with.
But yeah, this all is highly dependent on the company and the work expected of you. I was thinking more along the lines of not wanting to have to do devops all day every day. While I do like that work, I much prefer when I also get to do other work like architecture, programming, db design, etc.
Yeah, this is what happened to me. Went in with a 50/50 business analysis & programming role, and now I’m having to do marketing, customer service, project management, documentation, all-of-the-above because we’re understaffed. Great from an entrepreneurial standpoint to learn a wide-range of skills, but I don’t enjoy it, and I don’t have control over my workday.
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.
Man, I have all of those cons at in an org that has 20,000 people…
Also there may be very good coworkers or very bad coworkers, you’ll probably work closely with either.
And things will probably be a lot more informal.
-
pros - you can make a big impact and less strict processes.
cons - you cant just pass the buck and hide, you couldnt say ‘thats not in my job description’ just he ready to wear random hats when needed.
Small companies are great. Opportunities for growth. Always the chance to switch to a bigger company later.
In my experience the micromanaging is LESS at a smaller company. No middle managers who have to justify their existence.
It really depends on the owner.
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.
Pros: You get hands on with all sorts of tech and get to do everything. You’ll have more flexibility in how you solve things.
Cons: You get hands on with all sorts of tech and get to do everything. You’ll have more flexibility in how you solve things.
It’s fun being at a small software company but it can be exhausting.
Very small is 3 people. It’s a small company.
My experience working in a dev company exactly that size -
Pros
Less dead wood (people not carrying their own weight).
Everyone knows everyone well, it’s a tight team
Think it, do it - quick to develop and respond
Less pressure
Feels a bit like a family
More chilled than corporate esp. working from home
More support of networking and linking up with industry peers
Higher degree of trust and support
Way more latitude to do what you want to do
Easy to influence senior leadership
Can offer things like equity etc
If you’re a high performer you will be noticed
Way less red tape
A lot more trust
Company can prosper if everyone works hard
Cons
Company favourites
Can be quite political, although far less so than some large organisations I’ve worked for
Less cover if you’re on leave or similar
Harder to get some things done if money is needed (lower budgets and thinner reserves)
Lower remuneration, fewer levers to pull to get a salary increase
More drama with paychecks etc
Fewer higher skilled people to learn from
Culture can go sideways quickly
Nowhere near the same level of support and benefits provided by the big companies
Tend not to attract the best and brightest talent
Comoany more impacted by economic conditions
It also greatly depends on you and your preferred style. Some people just outright don’t like working for big businesses and prefer smaller gigs.
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.
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…
How did you cause them to go bankrupt?
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.
Your boss caused the company to go bankrupt due to his behavior.
Mostly but that doesn’t make as good of a story 😁
all that time spent documenting, probably
-
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.
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.
I worked in both small and big companies.
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.
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. :)
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.
Or Ed is maintaining the servers full-time and doesn’t have time for your desktop/laptop issues
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