About This New Site

After long last the new site is up and running! Welcome dear visitor and I hope you enjoy your experience here.

I thought it a prudent measure after a successful publish to do a little reflection and open up my reasons and process for this site.

What Came Before

Tomkarho.com as a domain and a website has existed for several years already. In fact you can probably find archived versions of several of my old blog posts. At the time I was a brand new entrant into the world of software developer, barely out of school and a huge fish out of water. At the time as a developer my experience culminated in knowledge about html/css/js and some php.

The very first iteration of my site was an AngularJs application that displayed very little and served more as a proof of concept. Later on as my interest in the framework waned and my requirements for something a little more robust increased, it was time for a change. This was the first overhaul.

Work was busy, time was of the essence and the site felt more like an afterthought. It was during this time I started slowly documenting what I've learned and any gotchas I might have to pass on. So I needed a blog. Wordpress being the most popular choise at the time was a no-brainer since I felt creating such robust solution myself would be time consuming and not worth the effort. Hence the second iteration of my site was born. Any maintenance I spent on the site culminated to me pressing the update button and writing my blog. I spent some time attempting to work out caching solutions and optimize but all in all I let the solution do it's thing on it's own.

And that irked me.

Several years down the road my focus had shifted to .net environment and I got excited about .net core. Being a Linux enthusiast, the ability to run .net core in Linux natively without solutions like Mono felt interesting. Thus begun the planning phase of my third iteration of this site. Now I had several excuses ready for scrapping the old site and writing it anew. Reasons I will go to very soon.

Why change anything

We software developers are notorious for reinwenting wheels and rewriting software from scratch. What most people fail to grasp is why we do it (a topic for another time). Suffice it to say I am no stranger to such desires and this new tech from Microsoft gave me the opportunity to adhere to those desires. Here are some of the reasons I wanted to redo my site.


While exceptional piece of software engineering, Wordpress as a CMS left me wanting. Being #1 made it also target #1 and while I can't boast having the security experience of the entire WP community and claim my site is any more secure than Wordpress, by going my own way I have reduced the attack surface and interest for hackers to come and deface me Yes, it is security through obscurity. Apart from simple bullying, activism or political statements, I reckong money is the first motivator (and creds) which makes CMS solutions like Wordpress much more desirable target of attention rather than a little site of a little developer in a little country far in the north.

Another pet peeve of mine with WP was the bloat. The CMS by it's very nature, provides a ready made solution with a lot of bells and whistles. Bells and whistles I did not need and felt I would never need. Couldn't rip those core feature off WP so I opted to move my own way.

The third hink I had with WP was how it stored my blog posts. Raw html in a database. Makes archiving problematic. Granted, this could have been solved with a plugin or some automated shenanigans and the idea had already formed in my mind but then WP introduced the fourth reason.

Recent WP versions introduced a whole new interface for editing documents. It felt ugly, it felt unintuitive and difficult to use. While the old WYSIWYG style html editor provided a nice balance between what looked good and what functioned, this new change tipped the balance for me. I wanted something simple. Back to basics, as it were.

Responsive design

When the wordpress site came to be, mobile was still at a very early stages and while the trend was clear, I felt it was unnecessary to cater to phone users overtly. The site functioned relatively acceptably on mobile browsers but it was not really mobile first. This hopefully changed with the new redesign where small screens are treated as first class citizens. So the new site was designed with mobile in mind and testing with a phone became part of the development process. Can I quarantee it will work 100%? Hell no. But it should provide a much more pleasurable reading experience than it used to.

The Opportunity To Learn

Redesign of the site provided me with an opportunity to learn much more than I actually initially thought. Here's just a few.

I refreshed my knowledge of CSS and SCSS via responsive design. Had some fun with the transition feature.

Obviously I learned .net core.

I learned some aspects of project management since I needed to manage my features and bugs.

Time management became something I had to pay attention to if only slightly.

I needed a CI/CD pipeline. Jenkins serves in that capacity. Since I am a great proponent of self-hosting, I naturally have a machine lying around whose purpose is to be the butler for my code.

Since I hosted my site myself, some sysadmin know-how had to be found for a Linux server.

While minimalistic design was a goal, implementing it purposefully was a new idea.

While certainly not fully proficient in the art, some small SEO knowledge came handy. Couple of meta tags were refreshing to remember. Only time will tell how THAT works out.

I had to design my path to production as it were. Versioning, how to mark something for release, setting up deployment process and automate almost all that. While during my dayjob I have certainly implemented some parts of these, this was the first time I did it from scratch and solo.

While I don't use containers in production at this time, I learned how to use Docker as a build environment so my Jenkins machine itself doesn't have to keep track of different versions of .net core and other required materials. Having those two work together was sometimes very challenging and my time with Linux gave me luckily the tools and knowledge to fix most of such problems with shell scripts and feel comfortable doing so.

Phew that's a looot of things to learn just to publish a iddy biddy website.

Here We Are

And so, here we are. The new site is up and running and soon also my first blog post will be published on it. Now we are in maintenance mode. Going back to dev mode after having a breather.

Funny orc meme from Two Towers