I’ve studied Informatics and Software Technology in University, I’ve scratched software on the Back-End Side, on the Desktop, Mobile Devices – from the feature phones, to Android, iOS and the Browser. I have several personal projects in different directions and I have done several projects for clients. In year 2018 I’ve participated in three projects for client and I’ve learned fast the new stuff at that moment. I had experience with optimizing search, structure, algorithm and the layer of storing of data. I could say that I’m Software Developer, but after scratching several different topics outside of programming, I am not sure anymore.
I haven’t never considered myself a technology evangelist. I am able to understand, learn and code with any new or old technology I’ve needed to, but I don’t see it like fetish (at least not anymore) to see something cool working. I’ve scratched Angular, PhoneGap, React Native, PHP libraries, Several Java Frameworks – EJB, Java Server Faces (Prime Faces), Google Web Toolkit, Vaadin, the different modules of Spring Framework, Flutter, and many more. I have published several products with several of these technologies and with some of them – only in-house prototypes. And, you know, in the end – it does not matter the tech stack.
I learned a little bit of marketing, besides logic and engineering, went through the self-development stairway – psychology, philosophy, finances. Right now I try to see technology as a tool – without attaching too much myself to the features it gives. The technology libraries don’t matter if nobody uses the software and the hardware. If there are enough people that start using a product so it starts to get sufficient revenue, the tech stack can be figured out at runtime or later – the software and the hardware optimizations – with A/B testing, with tech talents that choose the appropriate libraries that fits in the scale of the applications.
The problem is – many of the advanced optimizations make sense after getting at the big scale. They need testing – if they are truly optimizations. And if you are at the beginning – with small scale – you cannot test with confidence any high profile code, library or framework. Every non totally shitty code will perform relatively OK at the beginning. And if you over-engineer the logic, you’ll waste a lot of time – for code will not reach people, because of empty, ignorant, selfish believe, because of investor funding or economics or something else.
To become big – you need all the stuff – integrated into a product or a service – that has nothing to do with the software (or the hardware) itself. Even if the client is again – software developers or companies, even if the software is about code, engineering or something else that is considered nerdy. It is marketing, advertising, branding, psychology, public speaking – picking the right words and voice intonation, the right platform where to promote, knowing your numbers correctly – accounting, how much clients/users you need for be net positive, picking the right timing for the product or the service, having the correct business partners that talk, promote, have the gaps fulfilling skills or have connections with the correct “other” people, etc.
All these are factors that should and must be taken into account when and if you into business. It will help a lot to have the full picture. At the same time, if you don’t know the answers of all the above, you should not be discouraged and not try at all. Like in the software development – everything – even beyond the source code is do the work – run – see the results, modify – rerun – see the results.