Hey folks, I'm Nikolay. I am a Principal Software Engineer with over 20 years of experience in software development and am currently Head of Development in a German company in the energy industry. I currently support about 50 developers and also lead all internal app development in the company.
I love writing documents and articles to further expand the knowledge of our developers and that's why I decided to start my blog and write in my free time for topics covering my daily work and everything I found in books or articles interesting. I ran an IT tutorial website when I was young and even then I wrote thousands of articles that were very helpful to various visitors.
My daily tasks now include development, elaboration and adaptation of the development environment, CI/CD with the DevOps team, determination of cross-company code styles, static analysis tools, documentation, developer training and their further education. In addition, I plan the technology stacks together with our architects and support the further development of the software.
I'm constantly trying to find time for software development and helping out in the different teams because it's the only way I can know the developers' challenges and act accordingly and also be closer to the development of the software so as not to be overwhelmed by the lack of training.
I mainly program in PHP. Starting with PHP 3, I have accompanied this programming language in all my projects up to version 8 and I am enthusiastic about the development. Even if this programming language is losing importance compared to other modern programming languages, you can build very clean, stable and fast projects with it. The language still has a very large and loyal community and some very famous frameworks like Symfony and Laravel are based on it. My personal opinion is that this programming language is underappreciated and badmouthed in their articles by people who have never really worked with it.
I also have some knowledge of Java and also build machine learning models in Python to predict student enrollments based on users' website behaviour.
In my career, I have many projects built from scratch without frameworks and also projects built with frameworks. In the past, I thought it was cool to build something from scratch, but over time I realized that the opposite was true. Working with frameworks is better because you can find almost more developers and they don't need a long onboarding process to start the first task. Also, you don't have to worry about many things once created by thousands of people around the world and you can directly reuse their code.
To anyone reading my blog and not knowing what career to start in software development, I would suggest choosing Java. The learnings in my career are that Java is a very popular programming language and is mainly used in very large companies. These companies have the resources to run large and highly scalable software on Java and also pay better than small startups over the long term. In addition, you will enjoy complex software and will quickly bring your skills to a very high level. Some of the best-known open-source software from the Apache Software Foundation is based on Java, not forgetting the world of Android. Your options are endless. If you take your career seriously and study hard, you won't go a day when you don't have a well-paying job. This also applies to other programming languages, not just Java.
I hope you enjoy my posts and of course, don't take anything personally. I write about my view on the topics and my personal experiences as a software developer and development manager.
Thanks for reading and good luck!