Blog Posts

Automate Your Initial OS Setup

Automate your OS Install Process

There was a time in my life when a huge part of my time was spent reinstalling my Linux OS. Wonder why?

Well, the first time you install Linux, they warn you to never run rm- rf / as this would delete your entire system. Fair enough, that's simple to follow.

What they don't tell you is that you have another million ways to effectively do the same thing with commands which seem harmless at first glance.

However, there were some benefit form my misfortunes.

What irritated me the most was installing all the software I use from scratch every single time. I often forgot to install one or two programs I use and had to do it on the fly once I actually needed them which was very disturbing.

Hence, I came up with the idea to create a script which would automate this process via a single command. Every time I reinstall my OS, I simply run the script, go get myself a coffee and once I'm back, I have my OS all setup with what I need.

If you're in a situation where you often have to do this yourself, read on.

Also, be aware that this guide is specific to installing Linux and Mac OS. You could probably apply the same concept in Windows, but I only speak bash, not bat.

Continue Reading

My Experience with Learning Golang

golang-experiment

So you want to learn Golang?

Great! Perhaps I could help you. When I learnt I'd be joining Uber, I had some time to prepare for the tech stack ahead. One of the key things I had to get onboarded to quickly was coding in Golang.

So I started searching for good courses around the web, which could help with getting me caught up with the language and its paradigms. Some were great, others were pretty bad. And the bad part is, it isn't obvious at first glance.

Actually, some of the most promoted courses on Golang are some of the most useless ones. So learning Go can be quite frustrating due to the lack of good courses out there.

In this article, I will share what good, bad and ugly courses I've encountered in the bumpy ride of learning Go.

Continue Reading

Incremental search in vim

incremental search in vim

There is a slight, but obnoxious difference in how the default search works in vim against the way it works in other IDEs.

In vim, whenever you click the / (forward slash) you start writing a word you want to find in the current file. The problem is that you have to write the whole word and click enter before you start seeing the results.

This can work fine and you can cope with it most of the times, but it can start getting in the way pretty quickly once you start searching for longer words or phrases, whose exact identifier you can get wrong pretty easily. At that point, you have to start all over again with the search and be very careful about writing the keywords precisely.

The way search works in IDEs is that it starts showing results while you're typing the keyword. This way, you can:

  • Get to the word you need before you even write the whole keyword
  • Detect a mistake in your term before you're finished

This feature is called incremental search and can be very handy.

Today, I want to show you how to get it in your vim editor.

This article is part of the sequence  Boost Your VIM where I share my favorite vim plugins and tools which can greatly optimize your productivity and make you a better keystroke ninja.

Continue Reading

Creating Your Programming Study Plan

study plan

If you've read my last article and taken action, you should now have plenty of time allocated for you to study throughout the week. Now it's time to create your study plan.

Simply having the study time, does not necessarily mean we can use it effectively. Often times, we meaninglessly drift through online courses, textbooks and side projects without really finishing anything.

Sooner or later, you will end up in a situation where you've bought numerous Udemy courses and you've merely completed 10% of each of them.

That, indeed, is one of the greatest challenges of self-study - organising your curriculum & study plan.

But fear not. In this article, I will show you how to bring order to your course catalog mess. One step at a time.

Continue Reading

How to study effectively as a full-time developer

So you've graduated from university/bootcamp and you've landed your first job as a professional programmer. Congratulations, this is a huge milestone as it cost you years of perseverance to thoroughly study the courses in your curriculum.

However, studying like this is easy to do when you can dedicate your entire day for it. Once you start your 40 hours/week job, suddenly, you are deprived from all the free time you had to spend studying.

You have to be much more mindful about how you spend your free time, as it is no longer unlimited.

So what options have you got?

Continue Reading

A catch up on the past year

catch up

Over the past year, this blog has been silent. I'm finally ready to start writing new blog posts again and I've decided to begin this new chapter with a summary of what was going on in the past year.

There is a reason why there were no new blog posts for a while and I've decided to share with you why's that, some major events in my career over this period and what's ahead for the blog.

There will be no technical content or knowledge sharing in the upcoming lines, but a walkthrough of some events & lessons learned from them. However, although you won't be learning anything new about how the processor or your programming language works, there is some interesting food for thought which could benefit you or at least spark an interesting discussion in the comments later.

Continue Reading

Blockchain – The Game Changer @PlovDev 2018

I had the opportunity to visit the city of Plovdiv last year for my talk at TEDxPlovdiv, and I have to say, I loved it. If you ever get a chance to visit it, I would suggest you go to their big statue atop a hill overlooking the whole city.

And I am very excited that this year, I will be visiting the city again. But this time, it would be for my talk at PlovDev - the biggest annual developer conference in Plovdiv.

This year, the event will be hosted on 24 November at Eccoplexx Cinema. There will be more than 200 attendees, many of which are students from local universities.

The talks we see in the agenda this year mainly touch the web development space - REST APIs, Microservices, SignalR. But there will be some diversity as well, as my topic is called Blockchain - The Game Changer.

In it, we will touch some of the most basic and common use cases of Blockchain, and we will go through a technical introduction to the technology by a developer for developers.

I am very excited about this event and can't wait for it to come. If you feel the same way, want to meet some awesome people from Plovdiv, want to hear some pretty cool talks, then I will see you at Eccoplexx Cinema, 24 November.

Introduction to Solidity Assembly @ Blockchain Developers Meetup

This week, I was invited to lead the Fourth Blockchain Developers Meetup in Sofia, Bulgaria.

The Blockchain Developers Meetup is a series of events organized by some awesome crypto enthusiasts at Hack.bg. So far, I've watched their other meetups about zero-knowledge proofs, dark DAOs, building AI-run economies and there are many more exciting events to come.

The topic I chose for my part was something you can hardly find in any book, tutorial or documentation - how to write solidity assembly in order to achieve high-performance smart contracts.

It was surprising to see over 20 people interested in such a deep technical topic, who even endured through the end.

Perhaps I could write an article, where I extract the content of that seminar due to the scarcity of such content around the internet.

Until then, though, you can check out my slide deck and you can also explore the code snippets I demoed during the meetup, which are included in the slide deck description.

Learn Blockchain By Building it @ Java2Days, 2018

Java2Days is the biggest annual Java conference in Bulgaria. There, you can meet some of the greatest professionals from the Java world in Bulgaria and not only. Apart from that, you will be able to hear some of the hottest topics from the Java world nowadays - Java Architecture, Backend, Android, JVM languages and much much more. But the greatest surprise is that for the first time ever this year, you will be able to hear a Blockchain topic as well. And I'm very happy to tell you that I will be leading it. For the second time, I am honored to be among the Java2Days speakers line-up. On Java2Days, this year, we will be learning Blockchain. This new technology with the potential to revolutionize the way we interact and live. But you will not merely listen to some dry theories about it. We will be learning it, by building it from scratch. We will address concepts like nodes, mining, synchronization, proof of work, addresses and much much more. So if you don't want to fall behind and learn about the potential Blockchain can bring to your business and industry, come to Java2Days on 27-29 November. I will be waiting for you there!

Leading the Blockchain Dev Camp at Iloilo, Philippines

Today, I am writing this article from my desk at Sofia, Bulgaria. But several days ago, I was saying goodbye to my new Filipino friends at Iloilo, Philippines. I, along with my team at Kingsland University and Software University, just finished leading a one month immersive Blockchain Development camp there. [caption id="attachment_787" align="alignnone" width="676"] The Blockchain Dev Camp, Iloilo, Philippines[/caption] The experience was great. For both trainers and students. Want to learn more? Read on.
Continue Reading

Site Footer

BulgariaEnglish