Categories
Uncategorized

Types of Software Development Companies

The application, interview, and internship experience is very different based on what kind of company it is, and what you’ll experience is heavily dependent on what the industry standards are.

The following categories summarize a few different kinds of companies, and ranks them in terms of pay, work-life balance, job stability, corporate-ness, and the interview process.

These categories are not mutually exclusive; a company can fall into multiple categories. These are also obviously not all-exclusive. Your company may be different. These are general trends within the tech industry, but don’t make conclusions about a specific company without investigating them first.

Tech-For-Tech Companies

Tech For Tech companies are companies whose main product is software. Some examples would be Google, Facebook, Airbnb, Spotify, or Tumblr. They tend to be the kind of companies that people talk about when they talk about “Silicon Valley” and “tech startups.” Tech For Tech companies are stereotypically “cool”, young, hip, progressive, and diverse. They’re the companies known for their free food, doctors on staff, and special shuttle busses for employees.

How can you tell if a company is tech-for-tech? Some signs are job titles like “Software Engineer” or “Software Developer.”

  • Pay: High. Generally, Tech For Tech companies pay extremely well.
  • Work-Life Balance: Depends – it can be very high or very low. As an intern you likely won’t have to be on-call, but as an employee you likely will. Some companies feel fewer compunctions about overworking employees than others; for example, one of the FAANG companies is well-known for demanding overtime, whereas others are much more flexible – but you still may have to work overtime simply to keep up.
  • Stability: Low. Tech For Tech companies will fire you if you are underperforming, or if there are layoffs, or for any unrelated reason; a common attitude among Tech For Tech executives is “hire fast, fire fast.” You’ll also need to keep up with the changing software development world with its quick-changing technologies.
  • Corporate: Low. You can wear what you want, drink alcohol at work events, and in general get away with things you wouldn’t get away with at most companies.
  • Types of Interviews: Mostly heavy algorithmic. These are hardest, most intense algorithmic interviews, and while sometimes there is a behavioral interview or two it’s not the focus of the interview process.

Tech-For-Non-Tech Companies

These companies make a product that is not software. Some examples would be Goldman Sachs (finance), Guardian Life (insurance), or WPP Group (advertising).

Signs of a Tech For Non-Tech company include job titles that have the words “Technology”, “Information Technology”, “Programming”, or “Coding” in them.

  • Pay: Industry standard to low.
  • Work-Life Balance: Generally a standard of 40 hours per week.
  • Stability: Medium. You’ll likely work in less shiny technologies, like Java or .NET. If you need to learn something new, the company will often take responsibility for training you in it. Often such companies invest in people staying long-term, and people might spend thirty years working for the same company.
  • Corporate: High. You might wear a suit or formal wear to work. There are strong managerial hierarchies, and you’ll talk about your boss’s boss’s boss’s boss.
  • Types of Interviews: Technology + Behavioral. Non Tech For Tech companies generally have “technical” interviews (as opposed to “algorithmic” interviews), where applicants are asked questions that show their understanding of technology and programming (for example, “Tell me some new features of Java 8” or “Describe how the singleton design pattern works”). There’s also a greater emphasis on your attitude, your abilities, and how you work in a team.

Small Businesses

Also known as family businesses, these include your neighbor who’s happy to give you a job in his business making websites or your local paint store that hires you to maintain their website.

  • Pay: Low, unless you’re freelancing or a contractor.
  • Work-Life Balance: Generally high. This is the tradeoff of the low pay: if you need to drop your son off at playgroup or stay home with him when he’s sick, it’ll likely be fine. You can often have flexible hours and work 7-11 AM and 4-8 PM.
  • Stability: High. Small businesses don’t want the headache of hiring and finding new people, and if you’re doing a good job, they’ll want to keep you. On the other hand, if you’re not doing a good job, they’ll want to replace you quickly – they don’t have the money to keep a low performer on.
  • Corporate: Low.
  • Types of Interviews: Behavioral. Small businesses want to know you have some knowledge and can learn, and can do what they need, but they care a lot about whether you’re friendly, work well in a team, and have a good attitude.

Government

Government jobs are a whole different beast.

  • Pay: Low. The government is notorious for its extremely low-paying jobs – although the benefits are great, and you may also get a pension.
  • Work-Life Balance: Very high. The government has to pay you for overtime and generally doesn’t want to. You’ll work a standard 40 hours per week.
  • Stability: Extremely high. It’s extremely hard to get fired from a government job.
  • Corporate: High. You’ll likely wear formal wear to work, speak in corporatese, and obey a long list of rules about what you can and cannot do at work.
  • Types of Interviews: Easier algorithmic or technical + behavioral interviews.

Startups

Startups are heavily glamorized in popular culture, and can appeal to applicants’ ideology, sense of risk, or desire for adventure. However, there can be significant drawbacks to working at one as well.

  • Pay: This depends on the startup and how it’s funded. If the startup is a “unicorn,” like Airbnb, Stripe, or Uber, the pay will likely be extremely high, higher than even FAANG companies. On the other hand, a fledgling startup without lots of funding may not be able to pay much.
    Startups may try to pay you in promises. Something important to remember with startups is that the startup’s success is not your success; unless you own a significant amount of stock in the company, if the startup becomes a unicorn worth three billion dollars, nothing will change for you and you’ll still get your regular salary.
    Startups may also try to pay you in dreams, and always remember that dreams don’t pay the bills.
  • Work-Life Balance: Low. Because startups try to conserve runway and their spending, there’s often not as many people as are actually needed to build software, and when something goes wrong at three in the morning it’s you who will have to fix it. If a customer needs a feature by tomorrow morning, the startup may not have the leverage to refuse, and you’ll be up all night coding it.
  • Stability: Low. You don’t know if the company will exist next week, and you can be laid off any time the company doesn’t have enough money to pay you.
  • Corporate: Low. You can program in a hoodie while drinking beer.
  • Types of Interviews: Algorithmic + Behavioral.

Other Factors To Take Into Account

  • Size. The smaller the company, the more room there is for your own personal and technical growth. One Google engineer I spoke to complained that she had spent the last six months on a single part of a single page of an app. Large companies have less room for innovation; at a smaller company or startup you’ll be able to get your hands dirty and learn about how to do everything. The flip side is that at a big tech company you’ll specialize; you might become extremely knowledgable about one specific thing, like cloud storage or databases or load balancing.
  • Tech Culture. Does the company have a tech blog? Have they updated their technology since 1988 when it was first built? Will you be dealing with legacy code? What is the company’s attitude towards new tech?
  • Mentorship. Will you have someone dedicated to mentoring you? Will you get comprehensive code reviews? Good mentorship is crucial, and is often the difference between a good internship experience and a bad one.
  • Experiences. If you’re considering an internship, you’ll want to look at Glassdoor at what employees have to say about the company or reach out to previous interns on LinkedIn. While no one’s experience is definitive, it’s a good idea to know what others’ experiences are to have a frame of reference of what to expect.

Ultimately, choosing a company is about you and how you work best. There are different strokes for different folks; some people enjoy a corporate environment and some enjoy a more flexible, open environment. Some people enjoy throwing themselves into their work and working sixty-hour weeks, while some want to work forty hours and not think about work the rest of the time. The benefit of internships is that you can try out different environments and see how you work best without any commitment to continue working at the company.

Leave a Reply