I’ve Trained Myself Before Attempting a Startup In the Future. Here Is What I Did
The only way to succeed in a current world of infinite possibilities, yet impossible competition
The Dawn of Possibilities
The Internet from its very beginning has always been a gold mine for people, who desire to succeed. Having been originally created to connect scientists around the globe, it has soon proven to be capable of offering endless possibilities for everyone. At its dawn, the Internet has settled on a path towards prosperity for hundreds, even thousands of newborn startups.
At some point, there were so many of them, that the stock market failed to keep up with such a technological rush, to the point when the dot-com bubble burst and the market was filtered to keep only those who either have enough money, endurance, or pure luck. Those who managed to survive are now ruling the Internet, that once gave them life…
Since then almost 20 years have passed and the Internet has been growing rapidly while constantly changing far beyond any expectations.
The same applies to its pioneers, the companies who have grown massively into mastodon-sized corporations and conglomerates, each making its way into almost every possible field of modern industry. However, with the expansion of the Internet and the rise of technological progress even more possibilities are starting to appear. Therefore, there will always be some space for new creators to take.
However, despite the existence of a continuous flow of demand and possibilities, the competition has never actually stopped rising, and the stakes, in fact, have never been higher than today.
If the statistics are correct, a devastating 90% of new startups fail every year and then only 40% of the surviving ones actually manage to turn a profit. Furthermore, only 33% of startups make it to the 10-year mark.
And though these are actually pretty terrifying numbers, this article is not meant to bring despair and discourage young enthusiasts from ever trying to succeed. No way! In fact, I even have some hope that the story I’m going to tell, might inspire someone to take a leap and launch on a tough path to future startup success! So let the story begin.
I’ve recently quit my first job where I ended up being a middle software engineer, a team lead, and a technical project manager. It may sound like a lot for the first time job, but it has actually been a great set of opportunities to try myself in all sorts of diverse workflows, learn a bunch of cool technologies, practice in cooperation with enterprise clients, and a ton of stuff in between.
It was awesome! But, in the end, I found myself no longer interested in the technical part of the job, and although I kept growing in other areas as a developer, my work in progress had stopped.
There was an idea, one of those paranoid ones, that spawned in my mind right after I quit:
What if in every following hired job there will be a point for me when I am no longer interested in the technical vector that the company is heading.
I know, that might sound nitpicking. Like, this is a job, it doesn’t have to be interesting all the time, just deal with it! Sure, all these arguments are totally reasonable, but let me explain to you one thing about developers. There’re two types of them:
- The first one is those who see their everyday job as … well, as an actual job
- The second one is those who pursue their software engineer work as an actual hobby
At this point, you might have already guessed that I’m the second type. Though if you’re the opposite or somewhat in between, this is also perfectly fine. Since we live in a society where knowledge of programming will soon become as essential as knowledge of English, it’s reasonable to work in this area even if you are not a computer geek.
But for me, personally, the process of learning and working with new technologies always comes with great enjoyment, regardless of what it is, a new programming language, a web-framework, a modern database, a useful design pattern, or a high order software architecture.
Over time, I found myself to be good at understanding and predicting which particular technologies are suited for a particular problem, furthermore, what other technologies can be combined with to achieve the ultimate result. I then slowly started to make my way into System Architecture since that is the perfect niche for that kind of skill.
Just up to recently, when I start thinking about the possibility of using my vision to create something completely new. The only problem is that I still don’t feel ready enough to take a leap and what’s more important, I haven’t come up with an ultimate idea yet.
“Eye of the Tiger”
What do you do if you have a distinct vision of how to combine a set of distinct, up-and-coming, pushing edge technologies into an enthusiastic ambitious thing? That’s right, you should start a startup!
The real challenge here is that today’s market waters are very aggressive and competitive, so those, who are considering diving in, should really be certain in themselves and their idea.
Therefore, it’s rational to prepare yourself for problems you may face both while developing and after the launch of your next big thing. And that is exactly what I was doing for the past few months and I’m excited to tell you what I’ve learned!
The idea was to design, build, deploy, and advertise a project from the scratch, but with one constraint — it must be based on the microservice architecture.
“Why so?”, you might ask, and honestly, there is no particular reason for doing it this way, besides just me being curious about the subject and challenging myself even more. Because if you know something about microservices, then you’re aware that they are generally harder to implement, test, and deploy.
In addition, in real-world scenarios, more staff, money, and resources are also usually required. But as a trade-off, microservices provide one the most effective method of Horizontal scaling, thereafter they are so commonly used in today’s cloud industry.
And by all means, this isn’t the right way of choosing an architectural design for the upcoming system.
Product purpose, budget, team size, need for scalability, market condition, and more factors should be considered while choosing a software architecture pattern. But for this particular project, the main goal was to reverse engineer this process and build the system that would be the best possible fit for the approach of microservices.
I also wanted to specifically use Go as the main backend programming language, because I’ve recently decided to switch to it after 5 years of .NET development experience. I still recognize that C# is one of the most comforting languages to use, especially for enterprise development.
This is mainly because of its precise balance between functionality and syntactic sugar, both of which are constantly improving and extending via yearly updates. Nevertheless, currently Go is my primary language of choice.
The most striking thing about Go is its deliberate simplicity that is actually achieved by cleverly hiding a great deal of complexity. While other languages are evolving by adding features, thereafter growing their complexity and becoming more similar to each other, Go is notably different, being nearly unaltered from its very beginning.
In fact, Go is so deliberately featureless that at first, it was almost frustrating for someone like me, being used to all sorts of features and syntax sugar. But after a while, you start noticing that your overall code reliability and consistency becomes higher. Even the lack of features soon becomes appreciated, when after hours of continuous coding, all works perfectly as intended starting from the very first build. Yep, that is indeed pretty amazing!
So with all this in mind, I’ve created a GitHub repository, and five months later and after something like 950 commits, finally, I’m excited to introduce to you Kicksware!
It ends up being a non-commercial, open-source sneakers-oriented platform where you can browse through thousands of the newest and archived sneaker models to be further redirected to a place where you can actually buy them (mostly Stadium Goods and GOAT).
In addition, you can place your own sneakers as a product and view others’ commitments. However, you can’t actually sell them, because Kicksware serves only research, training, and showcasing purposes. But if you really want to, I recommend going to Grailed or StockX which are especially great for that.
And of course, it would be silly not to link my website as well, so consider visiting kicksware.com by clicking or manually typing the URL, or just google it, thus my recent discoveries in SEO will actually be worth it.
Overall, this project has been a great source of new knowledge, skills, ideas, and discoveries. I believe that all of that will become a great foundation for my next projects and hopefully, even for the startup one day. As for now, I plan to continue working by joining a great tech company in order to even more enhance the skills and knowledge I have already acquired.
In this article, I’ve just scratched the surface and there still is a lot for me to tell. For instance, about pitfalls I’ve fallen into while deploying on Kubernetes, or why I actually quit using C#, even a story of how I’ve been taught about security concerns in no other than the hard way.
However, this article is already long enough not to be considered a medium anymore. But hey, if you have managed to read down to this point, then it seems worthy to me and I’m actually very thankful.
Anyway, I will be posting more articles about the Kicksware development process, some of which may already be in my profile. Since this is my first article here I plan on continuing post new ones directly while discovering new technologies and other stuff I am passionate about…
At the end of the day, just dare to try!
Dare to create!
Technology Enthusiast | Software Developer | Distributed Systems Engineer | Prince of the Dark Theme | Sneakerhead | github.com/timoth-y