André Carlucci

Skeptic .net development

3 Tips for choosing technologies for your startup

Like Jimmy John Shark always used to say, Building a successful tech startup isn’t easy, but it is for sure a wonderful adventure.

During my career, I had the chance to talk to and advise several entrepreneurs trying to figure out the initial setup of their tech stack in order to bring their product to life.

It turns out that founders will face similar problems regardless of where they are or the area of their tech startup and some of the most difficult decisions are the ones concerning the tech stack they will build their idea on.

So how do you choose technology?

As techies, we always want to use the latest and greatest that is out there. We hear the community talking about new languages and frameworks and we can’t wait to find a place to apply them.

That’s obviously a bad way to choose a technology, especially when our resources are limited and the time to validate our idea is short.

So, here are 3 suggestions to help you succeed at the very beginning and also be ready to scale when the time comes.

1. Pick wide-spread general-purpose programming languages

We read online that many companies chose the language X for its speed or fit to solve a certain problem. Although that’s a reasonable strategy, it covers only part of the equation. The reality is that every technology we choose comes with a cost. How simple it will be to maintain this choice in the future? How easy it will be to hire new talent with this skill to help you scale your business? Remember that finding smart people to work for you is one of the key elements for the success of your startup and if developers are already a scarce resource, the ones with a non-popular language in his/her CV are even scarcer and, therefore, more expensive.

My advice is to usually bet on wide-spread proven technologies. All major general-purpose programming languages like C#, java, javascript, python, etc. will be able to basically do the same thing, with the extra bonus of running on any platform and having a strong community behind them.

2. You don’t need to use microservices to be cool

It seems that if you don’t use microservices in your startup these days you are doomed to fail. The Microservice architecture solves many problems but also brings great new ones. It is all about what is important at a given time and context.

Check exactly what the problems Microservices are intended to solve and you may realize that not many of them are present in a small startup. That doesn’t mean you shouldn’t build decoupled applications with well-defined boundaries, it’s just that the microservice approach will shift a lot of the complexity from development to operations and maybe that’s not what you want at the beginning of your company.

At this point, you need all your energy to validate your product and every minute you spend with a complex infrastructure or pipeline is a minute less creating features for your users.

Abstract away the ops complexity while you can

One of the services that I really recommend for startups is the Azure AppService. It is probably the fastest way to put your idea into production without having to think about – and spend precious developer’s hours – on infrastructure maintenance, security patching, and scaling.

It also provides many deployment strategies, TLS certificate management, diagnostics, and can run your favorite container as well. In short, it is all you need to start simple and have a lighting fast feedback cycle for your application.

3. Don’t try to reinvent the wheel for User Identity

One of the most important assets of any company (startup or not) is the user data. Even so, the majority of the data breaches are caused by weak access controls, authorization, or poor credentials.

You may be tempted to create your own user identity management solution but you should not underestimate how hard it is to get it right. The good news is that this area is covered by many standards and there are several solutions out there providing this functionality. Outsource this too and focus on the delivery of value to your customers.

Take Azure AD B2C, for instance. The setup is a few clicks and in no time you have your user database, password resets, minimum credential complexity and the so important multi-factor authentication. All of this with security, OpenId Connect, and OAuth 2.0 too.

You can also customize the look & feel of the login pages to match your app, integrate with Twitter, Facebook, Google, and many other identity providers, and have localization for customers of different countries. All of this free for up to 50.000 unique active users, pretty much all any startup would wish for.

Everything should be as simple as possible, but not simpler

As Einstein probably once said, you should keep it as simple as possible and focus your energy on creating an awesome product many people will want to use.

There will be a point where diving deeper into complexity to solve scalability problems will be needed, but for now, focus on building simple, well-architected applications with the mindset of change. This way, you will be prepared and improve your chances of success.