From student to specialist

Zero to Student

I always liked and had an intuition in programming. My first exposure to programming was in school. We worked on paper (fun fact, there is actually an interpreter for the language). After that I came across programming again in the university. My first and failed attempt to study was actually in automation engineering, so programming was not the main focus of the program. There were classes on C++ but they only touched the very basics. Again I felt this was a subject that came very naturally to me. At some point I dropped off and started over by joining a Computer Science & Telecommunications program in another university.

Student to Professional

Although I am not a fun of traditional learning, university changed everything for me, because it unravelled a whole new world over my eyes. Other than some basic concepts in programming, basically I knew nothing about Computer Science! Actually before I start the program, I was more excited about the math classes. Very quickly I fell in love with every aspect of the science behind computers! After that, university was too little for me. I was way too thirsty for learning, and the amount of information online was immense. So for the next few years I googled everything, and because particularly curious about programming language design and cybersecurity. These two translated into becoming an active member in the Nim community, and participating in CTF challenges respectively. However, time passes, graduation came, and now I had to find a job as soon as possible to have an income and do stuff with my life. So after applying to a few companies, I got my first job as a software developer!

First Job

This section is a bit painful for me to write, because I feel that the path I have taken so far does not reflect my ambition. I attribute that mainly to the urgency of finding a job immediately after finishing university and the lack of networking. The title of the job posting of my first job was “Junior Data Engineer”, and the employment title “Cloud DevOps Engineer”, but in really I was a weird mixture of a Java developer and Linux SysAdmin. I worked with enterprise and less modern technologies like Apache Camel, Redhat Fuse Fabric, Puppet and Jenkins. That was in 2021-2022 so the whole stack was at least a decade behind.

Second and Current Job

Equipped with exposure to enterprise application development, deployment and maintainance, but dissatisfied with the lack of innovation, I decided to switch jobs, and entered a startup company, which is the one I currently work for. I am way more satisfied with my second job. The stack is way more modern, I work on a product –a low-code platform for building data/ML pipelines– and there are greenfields areas were we have to write custom libraries. Also I have had surprising opportunities to work in niche stuff. For example once I had to build a service that intercepts a data pipeline with data from the whole network of the biggest telecom provider in Greece. The task was to anonymize the data so that they are GDPR compliant. The intercepted data were in proprietary formats, one of which we didn’t have the decoder for, so I had to reverse engineer it! I even got to use my thesis project in the process, BinaryLang, which I never thought I would ever get to use professionally.

Future Direction and Motivation for a Change

Even though I am fairly satisfied with my current job, I realized it’s difficult to market myself due to the lack of specialization. My knowledge is diverse and I have been exposed to many technologies, but at the end, professionally I am essentially a “Java developer”. The market is different now, and I have moved to a small city in Spain where my only option is remote work, which basically means that I have to compete at best with the whole country, if not Europe or the whole world. With this in mind, I decided it’s finally time to specilize in something that I love, and which will set me apart in the now very competitive job market.

Choosing a Specialization

The following are fields I considered focusing on:

  • Data engineering would be the most natural choice since my whole career has been with data intensive application and I have done actual work on it, and accumulated skills. However, it’s not something I am super passionate about, and since I am making a transition to another field, I figured I should choose something that drives me more.
  • IoT has some really cool applications, but is not the most compatible field with remote work, and the reality is I lack knowledge in hardware, which doesn’t scare me because the point of specializing in something is learning new things anyway, but it does place me further behind compared to other options.
  • CyberSec was the elephant in the room, since it has been my passion for at least 5 years. I actually tried to find a job in it back when I was finishing university, but the market in Greece was too small and I didn’t have what it takes after graduating. This is the valid choice for me, but I had to look further for the break I needed. I mean, cybersecurity is too broad to be called a specialization.

I started looking into the actual jobs related to CyberSec, and at some point came across with “Blockchain Developer” and “Smart Contract Developer”. Obviously I have been aware of such position, especially back in 2017, when the hype about blockchain went through the roof. As every other fan of the tech world, I was thrilled in the idea of a decentralized web where you can raise the middle finger to banks. The idea and the technology is groundbreaking, I never doubted that. However, I was always skeptical about the ways it can be applied in the society currently and for the next decades, and although I did make a couple of wallets and used them a few times, I never invested in crypto. For sure, it never dawned on me as a job opportunity. That is… until now, when I realized that the job market in Web3 is very real, booming, and lucrative.