any type as output of JS module. When I have more time, I could just submit PR to DefinitelyTyped and it would be quickly accepted. Overall it gives less ambiguity for my code.
I use Webpack because there no better tools on the market to pack all web application assets in the single bundle. Even it is not very novice-friendly, right now it is relatively easy to start with, and relatively good documentation available on the internet, to self-help. Other tools require me to combine them as I like, which require me and my team to learn many of them which is counter productive, since we have different projects working simulateneously
I use Azure DevOps because for me it gradually walk me from private Git repositories to simplest free option for CI/CD pipelines at the time. I spend 0$ initially to manager CI/CD for my small private projects. No need to go into two different places to setup integration, once I have git repository, I could deploy projects. Right now this is not the case since CI/CD is default for me, so I use it now from memories of old good days. I'm not yet need complexity on the projects, so I don't even consider other options with "more choices". I carefully limit my set of options during development, that's why Azure DevOps (VSTS)
I use Visual Studio because it provides me best default configuration for development. Less choice helps me concentrate on the product. In a sense it is iPhone of software development for me. When my laptop broke, I just download latest version of VS and start coding without any configuration. For sure it has best editor in terms of perceived responsiveness. Could not say the same for IntelliJ IDEA unfortunately.
I use Swagger UI because it integrated nicely with my .NET Core MVC APIs. I just add Swashbuckle and I have documented my API. Since I usually comment all public methods, that almost instantly give me ability to generate clients for my APIs, which lead to API-frist design without any additional effort from my side. Same pleasure to work as WCF, eariler.
I use .NET Core because it provides more easy to use/test/deploy model then tradition framework. Mostly this is coming from improved build tooling. Also, run-time improvements made by .NET team mostly in .NET Core, and for fresh projects there no point to use full .NET, given that almost any code written for .NET Core would run anywhere in Windows/Linux/Mac
I use Microsoft IIS because it is shipped by default with Windows Servers for which of them I usually develop applications. IIS perfectly managed from PowerShell which I use as well, thus it is very easy choice for me. I could have clean Windows instance and bring it to desired state using PowerShell capabilities. Also this is default configuration for debugging in Visual Studio which means that I develop in the environment which is closer to production.
I use C# because it has enterprise loving ecosystem, which allows write code and not think too much about updating it. As language itself, I start using it when it comes out, and it was easier for me to use as beginner, instead of C++. After that it slowly moving to the C++ direction, but I already know it, and it has Visual Studio which significantly favor in C# selection. I'm big fan of IDE-supported refactoring across whole software systems, and only VS and Idea gives me that tooling.
I use Visual Studio Code because it is hold middle ground between full blown VS and Notepad++. It allow me evaluate open source projects without worrying about its' language. Since I big fan of VS, I do not consider that tool as an requirement for me, just nice supplementary to real development.
I use Git because it is most popular version control system. Before that I using SVN (Subversion) with great success. Offline working in Git is man reason while I start switching from Subversion. Since more and more project start using Git at the time, I start migrate to it as well.