What I Wish I Knew Before Starting my First Software Business

There’s so much more to it than just the code

Photo by Lala Azizli on Unsplash

Building your own Software as a Service (SaaS) startup is a lot more than just writing a piece of software and sending it to your friends over instant message. There are a lot of pitfalls and nuances that I’ve dealt with over the course of building my own startup that I hope to help you avoid. It helps to know where you’re weakest and where you’re strongest so that you can recruit others that can make up for your weaknesses.

There are generally 2 sides to a SaaS business — the technical side and the social side. The two sides exist on a spectrum of sorts, with engineers generally being better at tasks that are technical and salespeople being better at tasks that are social. To be successful you and your team need to be able to cover it all. When I built my first company I had to learn all of it as I went. This article is designed to help kickstart that process and help you avoid months of trial and error. Here’s a non exhaustive list of things you need to keep in mind when building your business:

While it kind of goes without saying, you can’t sell something you don’t have and you can’t sell something that nobody wants. Every service, at its core, provides an experience to the end user that if removed would leave the service without a solid base to stand on. You’re goal at this point is to build the most cut down version of your service that still shows off what it can do and see if people like it. This video by Extra Credits was originally made for video games, but the discussion around minimum viable products broadly applies to software development in general.

Your potential market at this point will be made up of people just as enthusiastic as you are. If this cut down version of your service solves their problem, they’ll put up with the lack of features and bugs to use your service for the simple reason that you’ve solved their core problem. If they aren’t enthusiastic about your service, then you haven’t solved their problem and either need to change markets/customers, change your core design to solve their problem, or move on to another idea.

Those of us who have looked at building something in the cloud will have heard about the big three:

Those of us who have built something using the big three will know of their terrible web user interfaces and/or large complexity. They’re powerful no doubt. I used AWS EC2 instances as the GPU backbone for my startup, but unless you’re building something that requires a technological niche (maybe one of those vendors has a specific GPU that you need) or is absolutely massive (like…Netflix big), I would highly recommend going with either:

Their pricing transparency and ease of use is the best bar none. I have been a customer of theirs for years now and I highly recommend the both of them. Development is straightforward and thanks to the helpful communities that have been built up around these two companies it makes development a breeze.

The only times you should be considering using one of the big three is when they are the only ones who have what you need (most of the time this isn’t the case), when you need insane levels of scalability (this won’t be a problem for you for a long time), or you already know how to use them.

For the love of God don’t be a hero and try to build everything from scratch if you don’t have to. I say this as someone who tried that method. I get it, I get the relief of ditching that god awful legacy code, I get the pride of building something that is truly and 100% yours, of knowing how every wheel and cog in the system works and if something breaks you not only know how to fix it but make it better than ever before. It’s exciting, but…

This is a business. Your customers pay you to solve their problems, not tinker with some minute part of your code base.

This isn’t some side project that you can endlessly mess around with. This is a business with the goal of delivering a service to a customer. Even if you’re willing to put in the leg work to set up a full blown website complete with your custom service, there’s a lot more to it than just that. Here’s a list of things that are easier when using website building tools like WordPress, SquareSpace, or Wix:

  • Make your website looks good on all popular phones/screen sizes
  • Make your website looks good on all popular browsers
  • Make your website looks good on all popular operating systems
  • Make your website work on all of the above
  • Set up a subdomain for testing purposes
  • Payment integration
  • Search Engine Optimization
  • Email Lists
  • Affiliate Links

Unless you absolutely need some custom functionality that a website builder can’t offer, I would highly suggest using one. Maintaining a custom built website can easily be a full time job in and of itself, and there are many more important things to do to build your business.

There are hundreds of domain name providers out there. It’s important to note that different domain name providers will sell an individual domain for different prices, so shop around!

A forewarning to those who are new to web dev: Out of all the domain hosts, I have never had a worse experience than with GoDaddy. In addition to their long list of controversies, their help guides are outdated and their user interface is terrible. Doing anything beyond the absolute bear minimum is always paired with several non-helpful in depth Google searches that become real old real quick. The only reason why so many businesses use it is because they advertise so much. That’s it. Not because they’re good, but because they’re the only one the general populace has heard about.

If you enjoy not having migraines every time you want to mess around with your domain name, use Namecheap. I’ve been using them for years and they are fantastic. It’s short, sweet, and to the point. Everything you need is easily accessible and, as the name suggests, domain names are generally pretty cheap.

You’re gonna want a professional email. joe.blow@gmail.com just doesn’t have the same ring to it as joe.blow@JoeBlowsBlowpopEmporium.com. It’s a part of what gives your service and your goals legitimacy in the eyes of others. Having your own domain name for your email also allows you to add new users and emails under the same umbrella. Another relatively insignificant but more of a nice to have benefit of this is that every email you send out will be like a mini advertisement for your website.

To get a custom email address, generally what people do is piggyback off of the hard work that the big email services like Gmail and Outlook have already done. Both of these offer subscriptions (usually on a per email basis) whereby they will manage all the backend heavy lifting and you get an easy to use custom email address that has the same interface as a generic gmail or outlook account. Some popular ones are:

I personally used Google Workspace for my startup and currently use it for my personal site. It’s easy to use and reliable. Microsoft 365 is also a common business email manager that I’ve seen used at schools and within businesses. For the more security conscious crowd, ProtonMail also offers professional email addresses.

Some notes on emails to help you be as professional as possible:

  • Make sure to have an email signature set up that contains your name, company, contact information, and a link to your website
  • Have common email addresses dedicated for common purposes

The emails you’ll want to have are:

  • <standard-name-format>@yourcompany.com

Having a standard name format between all your employees makes it easier both internally and externally for people to remember your email address. Having an organized system from the get go will also make things easier because there won’t be any ambiguity for how things are supposed to be done (save for edge cases of course).

  • no-reply@yourcompany.com

This will be used for things like company updates to your email list, password resets, and financial changes (like the user changing their payment method).

  • support@yourcompany.com

This provides an easy to identify email for users to ask for help. Maybe they have a feature request, found a bug, or are just looking for help using your service.

  • contact@yourcompany.com

This is for things like initial point of contact for business deals or collaborations. Imagine content creators inquiring about affiliate links or partnership deals, legal matters, things like that.

  • engineering@yourcompany.com

If you’re building a SaaS startup, you likely have an engineering team (even if it’s a team of one). This email will be a group email that everyone who is a software engineer will be able to see. Throughout your service you should implement error reporting so that whenever something goes wrong, your engineers get an email with as much detail as necessary about what went wrong and can fix it ASAP.

So you have the MVP, you have the website, you have the professional email, now you need a way for your customers to get money from their pockets to yours. I can’t emphasize enough how bad of an idea it is to process customer’s money yourself. Doing so will require getting certifications and (more importantly) navigating the crazy amounts of legal framework.

Unless that’s exactly what you’re SaaS business is going to be, it’s a good idea to piggy back off of the hard work that others have done and let them deal with processing customer orders. Some common payment processors are:

I personally recommend Stripe because they won’t just process payments, they’ll also show you ROI graphs, revenue projections, customer retainment, coupon code generation, return payments, email confirmations, etc. These things allow you to view, at a glance, how you’re service is doing financially.

Stripe has some of the best documentation for developers of any product I’ve worked with so I highly recommend them.

Once you’ve made some sales, the money will be in the account for whatever payment processor you’ve decided to go with. These payment processors will have online forms that let you connect your account with them to a bank/credit union account that you own.

While you could just send the money to your personal bank/credit union account, having a separate one for your business makes it extremely easy to track revenue and expenses. It makes sense to do this if you have multiple people who have access to that account — wouldn’t want to give people access to your personal finances. It also helps in the event that the IRS comes knocking on your door, you can more easily justify business expenses.

For this you need to decide whether you want to go with a bank or a credit union. There are benefits and deficits to both.

Credit union members benefit by getting lower interest rates on loans, paying fewer fees, and have higher interest rates on saving. A major deficit of credit unions is that they often only have a few locations in a local region.

Banks have higher fees and interest rates for loans, but they have many locations across the country. They also tend to be more up to date with technical conveniences like online mobile banking and better financial monitoring solutions.

So if you’re looking to be traveling a lot for your company I’d go with a bank, otherwise I’d just stick with a credit union.

This bank/credit union account will be used to pay for things like email, cloud compute/storage, marketing, legal, and many of the other expenses that will come up through the normal operating cycle of your SaaS company.

Nobody will fight for you if you don’t fight for you, and it will be hard for people to fight for you if they can’t find you. You need to get the word out about your service. The high level view of what you need to do to market your service is to get good at SEO. How good you are at SEO determines how easily people find your product. The concept of SEO doesn’t just apply to Google searches, but also Facebook suggestions, YouTube results, effectiveness of your ads, Twitter suggestions — basically any website with a search bar or suggested content is a qualifier for SEO.

A few easy ways of boosting your SEO results is:

  • Every website and social media account you have should link back to each other
  • Post regularly

The internet is a big place, and if all you’ve got is your rinky dink little website that you post to Facebook every now and then, no algorithm is going to pick up on that. A concentrated network of links that are all about your company will do much better than a single link here or there. Adding onto that, get into the habit of posting regularly. Algorithms and communities as a whole tend to reward predictable trends. If they can count on getting regular high quality content from you, then they will be more likely to follow you.

High quality content in this case doesn’t have to mean you put a month’s worth of work into every tweet. High quality means interact with the community, interact with your customers, and give value to your followers without the intention of closing a sale. Doing these things consistently builds a relationship between you and your customers, which in turn builds your following and sales opportunities.

Another thing to consider when cross posting content is that different communities will respond differently to the same content. Content that you post to TikTok won’t be received the same way as on LinkedIn. One is for casual and funny content and the other has a much more professional atmosphere. Gary Vaynerchuk has an excellent course on Skillshare that goes into depth talking about the different approaches that need to be taken for each social media platform. It’s a few years old, but the main points are still very applicable.

As an aside, there are lists of websites you can find or buy online where you can post your service to:

  • Ads are a mixed bag
  • Emails help retain customers
  • Affiliate links/referral programs are your friends.

Before you start shoveling money out to Facebook or Google for ads, make sure you have some traction with good old fashioned SEO. Ads in combination with good SEO can yield good results, but ads alone will just be a money pit (in my experience, at least). If your traffic is reliant on ads then as soon as you stop paying for ads your traffic will dry up. Keep in mind that high traffic doesn’t mean high sales, so you might not even be making money off of that traffic. Suffice to say that this is not a position you want to put yourself in.

Having an email list is an important part of retaining customers. An email provides a direct line of communication from you the business to the user. It’s not reliant on a social media algorithm to display your update to the user or and ad to try to get them to buy the latest and greatest from you. It cuts through all the noise of the internet to provide your users with the information they need. This helps to retain customers by allowing you to tap into your most loyal customers in a more direct way. Not only that, but there’s a mind share element to this too. By having an email list you allow yourself the opportunity to stay relevant in the minds of your users.

Onto affiliate links/friend codes. By giving your current users either a financial kickback or in store credit for bringing new users onboard, you offer an incentive for them to market your product for you. Consider the two situations a potential user might come across your service:

  • They see it mentioned online
  • A friend of theirs personally recommends and encourages them to use your service that will give one or both of them a financial benefit in some way

There’s no contest. There’s a reason why affiliate links are so popular — because they work. Affiliate links are a massive force behind what powers some of the largest YouTube channels, Instagram influencers, content creators, and writers (myself included). Every company implements their affiliate system a little differently, but the basic concept is the same: provide an easy way so that you, the current user, and the new user can all benefit from using your service.

There are a few ways you can get initial funding for your startup:

  • Your own personal savings
  • Loans
  • Investors
  • Crowd Funding

While it’s an exciting thought to jump ship from your 9–5 to work on your brand new startup full time, you need to make sure you can financially support yourself. It’s important to make sure you have at least 6–12 months of savings built up before you do so. In the event that your startup fails, you don’t want to be caught with your pants down scrambling for either a job or money.

If your startup require more capital than you have saved up, you will need either a loan or investor money. With loans from a bank or a credit union you are borrowing the money but still to a large degree operating on your own. With investors they are functionally buying an ownership into your company. Investors, at least at the small scale brand new entrepreneur startup stage, can function as mentors. Paul Graham wrote an article entitled “Billionaires Build” that goes over some of the finer details on how to attract investors.

Crowdfunding is kind of a hit or miss, but most likely a miss. There are two main sites that creators, startups, and communities flock to for new products:

Kickstarter has the advantage of name recognition, but you only get the payout if you meet your goal. Indiegogo has less name recognition, but allows for a payout even if you don’t meet your goal.

My point about different social media sites having different cultures applies here too. Kickstarter campaigns tend to focus on more professional products while Indiegogo campaigns tend to focus on indie and community projects. There is of course some overlap and these aren’t hard rules, but these are the trends that both of these websites have.

Just as a reminder before I get into this section, this is a non exhaustive list and could easily be expanded into several textbooks. I am not a lawyer, laws are different in different parts of the world, this should not be taken as legal advice but rather a very high level overview of things to consider and look into further. Consult with a legal professional about these matters.

Before or as you are forming a company, if you are going into business with partners, talk about who owns how much of the company. This is NOT something you want to be ambiguous. It might feel awkward but it needs to be done. Hammer out all the financial details of ownership now so that everybody is clear about who owns what. All of these things can be accomplished in a single document called a Business Operating Agreement. I would encourage you to talk to a lawyer to help draft one up for your company.

Many states require a legal form to be filled out to be officially considered a company. In many cases this document is called the Business Declaration Form. One key thing you get once you are a business is an employer identification number (EIN). Your EIN is essentially a social security number for your business, so treat it with as much care as you do your own.

If you are not a sole proprietorship, I would recommend having three or more people having a voting interest in the company. This makes it so that no single person can overrule all the others and that company decisions are done based on majority vote. If something goes very wrong legally with your company down the road, this will also help to protect any individual person of being prosecuted against.

Rocket Lawyer is a website that can easily make legal documents for you. If you don’t have hundreds of dollars per hour to shell out to lawyers, this will work for small scale legal cases. It’s cheap yet provides you with many different formats by which you can create legal documents like employee contracts, business contracts, operating agreements, etc.

Make sure your website has a privacy policy and terms of service. Don’t let anyone under 13 sign up for your website because that could very quickly become a legal nightmare due to COPPA. Make sure you have a special clauses for California and the EU (with GDPR) — their consumer data protections are a lot more extensive than most places in the US.

Tax-wise you now need to file 1099 instead of W2. I don’t know much about taxes and even less about how to explain them, so here’s an infographic that shows some of the key differences:

Source: https://napkinfinance.com/napkin/1099-vs-w2/

Don’t think that just because you‘re building a business for yourself you’ll get to work whenever you want. You’ve made the decision to work 16 hours/day for yourself instead of working 8 hours/day for someone else (kind of hyperbole, but don’t expect a 4 hour work week right from the beginning). You need a schedule, a routine that you put yourself through. Consistency is key here. Consistency keeps the hours of lost productivity from slipping into weeks.

For example, my day starts off nearly the same every single day. I get up, exercise (planet fitness pre-COVID, beat saber recently), shower, eat, make some coffee or tea, then work until I get tired, and only after that do I get to relax. Some days I end up working 16+ hours, others only a few. Truth is, some days I feel better than others. I’m allowed to slow down, that’s just a part of life, but I never allow myself to stop.

To help keep me on task I would use Trello. It’s a great piece of software for managing features and tracking progress. Despite my praise of Trello, I wouldn’t use it for anything other than a small scale operation. For large operations I’d use Monday.com. Monday.com is more expensive than Trello, but it is also designed to do much more, integrating many different aspects of business under a single cohesive umbrella.

Building a business is a lot of work. Even if your business fails, you learn so much in the process that makes subsequent startups easier, or maybe you realize that running your own business just isn’t for you. Either way the knowledge gained from action tends to stick a lot more than knowledge gained from theory.

From building the MVP to closing sales, everything is a small part of a big whole. Your focus as a startup should be on driving as much value to your customers as possible. Sometimes that value comes from having a responsive service (cloud), other times it’s being accessible (SEO/Emails), and still others it’s customers being able to share what they’ve found (referral links). Part of the fun is figuring out the details of how your particular business can be successful! 🙂

If you felt this article brought value to you (or might when you finally take that first step!), I encourage you to bookmark it and applaud it. If you like content like this, be sure to follow me for more of it.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store