The world's best technology stack for startups


~ 4 minute read
Crafted : 5 months ago Updated : 5 months ago
Tags:
#techstack #startup #technology-stack #braindump

 

Hello luvs, this one is not about infosec but choosing a technology stack. Like many other posts, this is my braindump through participating in some failed and successful startups. This post aims to help those who want to implement a startup or project but struggle to choose the right technology stack. Believe me; I've been there; the struggle is real. 

 

Table of contents

 

 

So whats is the best tech stack?

Let's jump in. The magic tech stack is a deep stack that only super leet and wealthy can use, and it's not, and it will never be available for ordinary entrepreneurs and makers.

Sorry to disappoint, but that's not the case. The best stack, the best programming language, the best operation system, is what you love and know. Making your project success is mostly about timing and execution. I highly recommend watching Bill Gross talk on the single biggest reason why startups succeed.  Well, on timing case, we don't have full control, but on execution choosing the right stack does matter, and the right stack highly depends on its user. 

 

How much you enjoy and know technology 

 

Let's say you've been using Javascript or Python, C# for many years, you enjoy javascript more than others. So the best thing to do is use as much as javascript you can for implementing your idea. Let's imagine you want to create a web app, nowadays thanks to the modern technology stack, you can achieve your whole purpose with a single programming language. It's faster, more comfortable to scale, and fix. Now javascript is just an example; in fact, I'm not the biggest fan of javascript. The idea here is to ignore all the hypes on the internet. For creating your MVP, all you want is to get it done and working. 

As another example, PHP programming language, which always been bashed by both infosec professionals and developers equally, honestly I like PHP7, the frameworks like laravel are charming to use. This blog also created using PHP7, Laravel, Bulma, Javascript, Vue. If I wanted, I could probably write the whole blog in C, but does it make sense? I wanted to create a simple blog so that I can write on it. 

Another example is cloud providers, again at the beginning. You want to use providers you been using, I like digital ocean, AWS, and Haruko, but if you are using Google products, you should go with google cloud, if you are using C# you probably want to use Azure. I'm not trying to state the obvious but help you to look no further and get the thing done. Again I could buy a server install ubuntu (my fav Linux distro) on it and host it from home, but does it make sense for hosting a simple blog? 

How it fits your idea 

I just mentioned ignoring the hype, but it doesn't mean you can choose a technology to create everything. If you are trying to create a game, still the best choice is C++, if your app idea is processing a lot of information you need speed Golang can be an excellent pick. 

Another example is I want to implement a mobile app. The issue was I liked to have both Android and IOS version of the app in the first release. So I had to create an app in swift and objective-c and another one in Java or Kotlin. Then I found out about the Dart programming language and Flutter framework, which I found the perfect fit to implement my idea. 

 

DevOps

Well, What is DevOps? Mixing it and software dev to cut the production time. In the beginning, git and few bash and python scripts can automate your whole deployment and delivery. Still, you want to take a look at Docker, Jenkins, and virtualization; in general, it helps to deliver better products, CI is not about tools but how you use tools. 

 

Database

Well, even small projects may need a database, MySQL, PostgreSQL, SQLite, SQLSERVER can handle most projects, but you may like NoSQL approach if you believe your data needs it. It most cases, just any database does the job so relax. You may also want to take a look reddis and in memory data structures. 

 

Time management and communication 

Knowing software development fundamentals and methodologies can help you manage and design more robust software. Even at the beginning. SDLC, Agile, Waterfall, Scrum, TDD, etc. will indeed help don't ignore their concepts; what all these methodologies are trying to say is one thing. Use your time wisely and know where you are going. 

Communication is another very possible thing you are collaborating with someone else, make sure you are on the same page, and your goal is to get done and get it out. You are good friends and enjoy working with each other, and you are the reason the other partner stays motivated. I find Trello and slack very helpful here.

 

What about scale 

 

Aaah, this is where it creates a lof confusion I see people talk about choosing this tech and that tech to scale, Honestly, any modern technology stack is reasonably usable and scalable for your very first version. So in case of your startup growth so fast, and you see the current stack can't scale, at that point, you might want to hire better engineers than yourself and focus on scaling the business. 

 

Conclusion 

 

Cut down the noises and light of shiny technologies and embrace what you know in the best way, Recently we started HunterSuit, which is an advanced asset enumeration, monitoring and auditing suite. We choose Golang, PHP7, Javascript, CSS3, HTML5, Docker, Laravel, MySQL, Git, Slack, Trello, and a few other technologies because we find it fits our project.

There is no single best technology; there are best people who do their best to make the best out of any technology.

Do you know what's fun? Choosing a tech stack is just begging; we use different stacks to implement different ideas, and it most likely only to fail. But tell me, In the end, are we losers who tried and failed or someone who never accomplished even a failure? You be the judge. 

 

0xSha

 

 

 

Assist me:
Buy Me a Coffee at ko-fi.com