At the end of the year, companies usually tend to go over the last twelve months and evaluate their decisions and performance. Naturally, as a young company, we have a lot to go over. Mistakes were made.
Lessons have been learned.
Milestones were reached.
We went through a lot, and there is a lot more to come.
Recently we had to migrate a whole platform to new hosting and with that - upgrade the Transport Layer Security protocols. After we did some testing, we found out something quite curious. Internally routed calls, or, simply put, internally called external APIs stopped working. We got a pretty meaningless exception, that after some reading lead us to the culprit.
When we first started working with Git (moved on from TFS), we tried numerous GUI clients in order to “simplify“ our transition. Well, numerous tries later, the CLI is our best friend.
During the transition process, we found out that there were some semantically different things we had to address in order to improve the semantics of our git history and branch management. Feel free to use them as a “cheatsheet“ of your own.
I recently read a blog post by a fellow software developer who captured the state of the modern day software development standards and inadequacies. He managed to describe the grotesque way that software products have become Frankenstein’s monsters of all the Frankensteins that have written them. It really stuck with me and I started thinking of the reasons why things are the way they are.
In everyday tasks, there are things that become and feel like second nature. You use them so frequently, that you stop noticing them, but they make you just that much more productive. Over the years I’ve gathered many tools and habits that help me in my day-to-day job, and that have propelled me through the ranks. While this list is far from exhaustive and some of the things in here might seem small or insignificant, they are some of the first steps I take when I set up my work environment.
Application-level error handling in a .Net MVC project without updating the Web.config or using HandleError attributes that will act as a last resort and will allow your application to gracefully recover from all unexpected errors, while returning the appropriate status code.
Token authentication has been adopted as the go-to API authentication method for some time now. I won’t go into the pros and cons of token-based authentication since those have been discussed at length. The point here is that ASP.NET Core makes this process incredibly simple and can be achieved in a few steps with the use of JSON Web Tokens (JWTs).