New Year, new job, new website!
The last year has been a rollercoaster for all of us thanks to a global pandemic, but to me, it was extra tumultuous! Now that the probation period is over I can break the self-imposed vow of silence.
If you found yourself on this page something obviously piqued your interest, if you don't care about personal updates and only care about tech stuff click here to jump to the tech section and find out what's powering my new website.
After three and a half beautiful years in JSGuru working on a mobile device management platform and a big data / IoT project in the energy sector for our respective clients Mobile Guardian and Synapsees, I have jumped ship and moved to a domain I have started my career in - finance, although in a different role this time as a Software Engineer.
Yep, circle of life, pretty ironic innit?
That beautiful unicorn I rode on into 2022, with my keyboard drawn out high, is Lendable! A jolly bunch of very smart and talented individuals! These past three months working with these amazing people have been a dream come true. I absolutely love the company culture, it perfectly aligns with my work philosophy, quality over speed of delivery, and in those instances where time to market is more important, you wouldn't believe it, but after it's shipped the MVP gets refactored. It's not an empty promise in the distant future dangled like a carrot in front of our donkey-developer faces! I know?! Shocking!
As part of the onboarding I've traveled to London and I'll be visiting fairly often from now on. That's a story in itself, I could write a novel as it did not go as smoothly me being from Bosnia and Herzegovina, but I did get to exchange tweets and slide into the UK ambassador's DMs so that's something.
When I built this website I was just dipping my toes in the waters of software development, I was yet an infant at the beginning of my career. Now 7 years later a lot of things have changed and there is a lot of room for improvement so what's a better use of my free time than to re-write my website, ahh re-write the "silver bullet" for all of our developer's problems, the nail you keep hammering just because you got the hammer.
The initial setup was a Laravel 5 rocking a custom CMS, a MySQL database, and a barebones CentOS running on a VPS. Ah, those were simpler times, a cloud was still just that, a cloud. Nowadays it's a bit different. That was the first time I used Laravel so as you can imagine there were a lot of things happening in the controllers which is a no-no. The even older version of my website was running on my own custom MVC framework, yuck, but we've all been there.
This time I'm...still rocking a custom CMS but it's powered by Symfony 5.4. I went with a Domain-Driven Design approach, Command Bus pattern, even CQRS to some extent. I wrote my own implementation of Command Bus Pattern inspired by another library. I don't know why I did that, I could have just used Symfony's Messenger component, but by the time I remembered that, I was already too invested so I stuck with it. I'm probably going to regret it in the future but at least I'll have material for another blog post.
Reading this you are probably thinking, wow what an overkill, all that for a blog... Well, wait till you hear about my infrastructure setup... All jokes aside this CMS evolved into a CRM of sorts as well, since I'm a sole-trader now and do my own invoicing and what not.
Also, I have my own rudimentary analytics system I'm not using Google Analytics, you see I care about your privacy as a reader. Not really, to be honest, it's an afterthought I just needed a problem to solve.
On to the infrastructure, so, I've dockerized my website, the host is a Hetzner Cloud instance, I've got a container for PHP, two database containers one for PostgreSQL and one for MySQL, a NodeJS container for building the frontend, and finally, an Nginx container hidden behind a Traefik proxy container to serve it all. You probably lost me now, I think we need a diagram. Yes, we need a diagram.
I've got a logo this time which is also the official name of my sole proprietorship - S_CO as in Saša Company - HOW IMAGINATIVE! WOW, WHAT?! MINDBLOWN...yeah, and the front-end is designed and done by me as well, I think you could've guessed that, I tried to keep it stupid simple, and retro. There is a dark and light theme that switches automatically depending on the time of the day or you can toggle it yourself by clicking on the sun icon in the top right corner.
That would be it. I pledge to write more this year, about Domain-Driven design, software patterns and architecture. I hope I will, at least I wish...