This article is part of the Dev Spotlight series in which we share the stories of devs whose posts and comments have been appreciated by the Hashnode community.
Kleo Petrov is a Senior JavaScript Developer at Endava and a helpful Hashnoder. In this interview, we talk about the technologies he uses, WASM, the advice he has for new developers, and why he enjoys helping other developers on Hashnode.
Q: Hi, Kleo, thanks for doing an interview with us! 🙌 Please tell us about yourself. When and how did you start coding? What are you working on right now?
Kleo: Hi everyone, I'm Kliment, but everybody knows me as Kleo. I was born in a small town in central Bulgaria called Sevlievo and I'm currently living and working in Sofia, the capital of Bulgaria. I'm writing JavaScript at Endava by day and fighting JS fatigue by night. :)
I find the story of how I started with programming pretty funny. In school, I wanted to become a doctor, I was even preparing for the biology and chemistry exams when my math teacher told my mother, indirectly, that I was below average as a student. I was so passionate to prove her wrong that I switched from biology to math, took the math exam, and was accepted into a Computer Science university program. This is where my love story with programming began.
Like every relationship, ours has also had its issues - I still wasn't sure I'd made the right choice. The material I was studying was dry and boring, with endless Powerpoint presentations and little to no practical exercises. Before allowing myself to fall into an endless pit of despair, I decided to take the matters into my own hands and to start learning on my own. This was a turning point for me - only then did I discover the true beauty of programming.
Q: Which technologies do you use and why did you pick them?
Kleo: I started with HTML and CSS; after that, I've moved to JavaScript. I was really fascinated by how easy it is to create something meaningful with only these three technologies. I tried a lot of different languages - Python, C++, C#, Ruby, but I always return to JavaScript in the end.
What I love about JavaScript is how steadily it's evolving. 15 years ago, it was a language for changing web page styles. Now, we are controlling robots with it.
Also, the Ecma TC39 committee and the whole community is moving the language in the right direction. JavaScript is recognized as a mature language and now that we are past the JS fatigue stage, things are looking bright.
Q: How do you stay up to speed with the latest trends in terms of learning/implementing new things?
Kleo: I do that mainly through reading newsletters and playing with new technologies. I'm subscribed to different daily and weekly newsletters, so every day I receive a decent number of articles in topics ranging from JavaScript to Cloud Services and Machine Learning. If something caches my eye, I add it to my dev-log. I also start playing with a technology/language/framework with a small toy project.
I found that programming is very similar to playing a musical instrument. You can memorize every song and read about every technique, but to actually learn how to play you need to practice. It's the same with programming.
Q: What are your thoughts on WASM? Do you think it will replace Javascript?
Kleo: I've been following the development of WebAssembly for a long time and I'm really excited about the idea behind it. WASM would be a game changer and would open so many possibilities for us. Being able to bring native code to the browser and write applications in different languages that would run in the browser is like a dream come true. People are already doing incredible things with WASM, so it's only a matter of time for WebAssembly to gain more traction.
That being said, I don't believe that WebAssembly will replace JavaScript. WebAssembly is designed to be complementary to JavaScript, it's not a replacement. JavaScript will remain the Web language for many years to come.
What I see happening is WebAssembly being used in places where performance is crucial - games, VR and augmented reality, image manipulation, application with heavy data manipulation, etc. We'll soon be witnesses to an era of language agnostic web and native application built with JavaScript, achieving native-like performance.
I strongly suggest to everyone who is interested in the topic to go and read the official documentation.
Q: What are your thoughts on TypeScript? What do you like and dislike about it?
Kleo: TypeScript came at a time when JavaScript was gaining traction. While it was not widely accepted in its first years, it slowly progressed into the ranking and is now one of the most exciting technologies the JavaScript ecosystem has seen.
The first time I read about it, I was skeptical about TypeScript. I thought of it as the next tool that contributes to the JS fatigue. Man, was I wrong!
Throughout the years, TypeScript evolved and became the defacto tool for writing JavaScript applications. TypeScript brings so much to the table - type system (something that JavaScript needed for a long time), future JavaScript features that would be compiled to code that works on every browser, down to IE7, tools for static analysis, and improved Developer Experience.
I discovered the true power of TypeScript only when I started using it in a large project with my old team. Finding errors at compile time instead of at runtime was a bliss, combined with the IDE and editor autocomplete and analysis features and the increased readability of the code - all felt like riding a unicorn on a rainbow while playing Queen - Don't Stop Me Now in the background.
Q: How did you find out about Hashnode? Why did you join Hashnode and what do you like about it?
Kleo: I was looking a solution to a problem that I had when I ended up at devmag.io (this was the name of the site before it became Hashnode). I liked the design (it was Material Design) and the topics that were discussed, so I bookmarked it. I was only reading the news and discussions at first, but then I started sharing different articles and guides. It continued for a few months, up until I decided to start answering questions. The rest is history. ;)
The community back then was small, while the active members were even fewer, yet I felt it like a really special place. Four years later, I know that this place is special.
Q: You’re one of the most helpful Hashnoders of all time. What motivates you to contribute to the community?
Kleo: The community itself! I've met too many wonderful people, learned so much, and I'm still learning a lot from everyone here. The only way to express my gratitude is to share and give back the knowledge I have. Also, helping others is so rewarding and empowering. It gives us a sense of purpose and brings out the best in us.
I've joked before that Hashnode is like a Stack Overflow and Quora's baby. Right now, I would only wish for Stack Overflow and Quora to be such welcoming and helpful places.
Q: What does your programming setup look like?
Kleo: Nothing fancy to be honest. Two 24 inch monitors, a mechanical keyboard, Logitech sound system with a Logitech headset, and a rubber ducky. Everything standing on an old IKEA desk with a lot of cables laying around. I had a LED strip around the desk, but it fell off when I was moving to my new apartment.
Probably the most interesting part is the two mice. I constantly switch between them, because I like to play games from time to time. While I like my Razer Naga Chroma and I have configured the 12 buttons to my own needs, I find the Razer Abyssus a lot more comfortable for certain games.
Q: Which developers do you admire and why?
Kleo: This is an interesting and hard question for me.
The first names that come to my mind are Tim Berners-Lee (creator of the World Wide Web), because without him, I wouldn't be here now, and Brendan Eich (creator of JavaScript), because without him I wouldn't be doing what I do and love now.
Some notable mentions are Bjarne Stroustrup (the founder of C++), Dennis Ritchie (created the C language), Anders Hejlsberg (lead architect of C# and TypeScript, and creator of Delphi and Turbo Pascal), Linus Torvalds (Linux), Donald Ervin Knuth (profound programmer and author of The Art of Computer Programming), Robert C. Martin (who doesn't know Uncle Bob), Martin Fowler (software engineer and author of books like Refactoring: Improving the Design of Existing Code and Patterns of Enterprise Application Architecture), and Kent Beck (software engineer, creator of extreme programming and author of many evergreen programming books).
Q: What advice would you give to someone that’s just starting out as a developer?
Kleo: Don't be afraid to fail, every failure is a valuable lesson.
Don't get discouraged because it seems too difficult. It's only temporary, it's a process that you will get over.
Start with the fundamentals. Don't be tempted by the new shiny frameworks and tools. Create a solid foundation first.
Expect the best, be ready for the worst.
Don't push to production to Friday evening!
Kleo, big thanks for taking the time to answer our questions and contributing to Hashnode!
We hope you enjoyed reading this interview. To keep up with future interviews, follow the Dev Spotlight series, and make sure to follow Kleo Petrov and other helpful Hashnoders. Please share any thoughts or questions you may have for Kleo in the comments below.