I try to use different technologies to solve different problems when developing software. Here is a list of notable technologies with which I’ve worked and how, when, and if I prefer to use them. I’ve divided the technologies into categories.
Unity: For games and 3D interactive software Unity is the tool I’m most familiar with. Its wide feature set, library support, and debugging and profiling tools make it a safe choice. I’ve worked with both the 2D and 3D asset pipelines, built UIs, and prototyped levels with ProBuilder. I find that libraries like Zenject and UniRX make managing complex projects manageable. I’ve experienced deployment on PC, Android, and iOS platforms.
Godot: Because I prefer free and open source software, I naturally learned and used Godot. Currently I am more experienced with Unity but have used Godot for 2D game development. Look at my projects page for an example.
ASP.NET / Microsoft MVC: I’ve use Microsoft MVC in traditional web applications and in single page applications. Extensions like SignalR make single page application development comfortable when two-way communication occurs regularly. Entity Framework is also one of my favourite object-relational mapping libraries becasue it leads to readable and maintainable type safe code. Due to cross-platform support and simplifications made by Microsoft, I prefer working with .NET Core over .NET Framework.
Ruby on Rails: Ruby on Rails has helped me in both commercial and private projects, which I previously used extensively. The extensive amount of libraries available to extend it and its ORM ActiveRecord make it easy to write very readable code. Despite Ruby’s lack of a type system, I’ve had positive experiences with the Rails framework. Unfortunately I have not had any use cases for it since Rails 4.
Django / Python: The Django web framework, along with South for migrations, were used in private projects I worked on previously. I have not worked on any Django projects for some time though. Microsoft MVC and Ruby on Rails have gotten the job done just as well.
PHP: Most experience I have with PHP is commercial and I tend not to use it privately. I’ve worked on projects using the Yii Framework, Zend Framework 2, and smaller projects not using any framework.
React: React is my choice technology for developing single page applications for the web. Its efficiency and focus strictly on UI makes it an attractive tool. Paired with the flux pattern, I’ve found it easy to implement clean solutions that run stably.
Angular: While working with Angular commercially I’ve found it most suitable for large single page applications. Its large feature set and the vast amount of supporting libraries help get consistency right across an application. I have experienced that Angular can add a lot of development overhead, so if I use it, I must be convinced that the project can benefit from it. Otherwise React gets the job done.
jQuery: In web sites that have some advanced client-side functionality, but not single page applications, I sometimes use jQuery to express verbose JavaScript operations with less code. Due to developments in browser technology and the shift toward single page applications though, I now tend to use jQuery less frequency.