In this interview, Section Engineer Pavel Nikolov chats about trying to keep up with the rapid pace of change in technology, his favorite part of the day, and why everyone should treat themselves as a stock option.
Pavel Nikolov, Software Engineer
Why did you decide to become a software engineer?
Well, initially I believe the decision was influenced by my mother who is a math teacher. When I was in fourth grade, she sent me to take some math courses. In my country [Bulgaria], children go to school until seventh or eighth grade and it is the same kind of school everywhere (unless it is private with a special kind of program). Instead, my mother sent me to an experimental program where you start learning something specialized after fifth grade. In my case, it was math and programming. By the time I was at the right age to go to high school, it was too low level. We were studying math at the university level at my school; the same with programming. By the time I went to university, I had some work experience as I had already started work as a freelancer building web pages. In addition, I was playing computer games. Those things combined got me into software development. At that age, however, I had no idea what software development meant. I guess I got onto that path all because my mother sent me to that school.
What keeps you motivated?
What keeps me motivated is usually solving challenging programs, especially at scale, and especially in production – live systems. Something that involves very hard problems, where you think about them even when you’re not working and keeps your brain busy. And after that, if you manage to solve one of these problems, it makes you feel satisfied.
What is your proudest accomplishment?
In terms of work, one of the projects I’m most proud of is one I just completed. Before I started at Section, I worked on a very large, innovative project in a media publishing company. I’m proud of this project as it turned out to be a huge success and I was there from the beginning, so my presence had a significant impact on the project. I can’t take full credit as I was just a small part of a large team, but I had the opportunity to make some technical decisions there, which turned out to be a success, so I’m proud of that.
Do you typically like to take ideas and create an execution plan, or do you like to be part of the ideation process?
It depends. I like to be part of the thinking process and developing an architecture, as well as implementation. Ideally, I like both to be part of the team that comes up with the ideas and then building the implementation, not just handing off ideas. Ideas without implementation mean nothing. So, I like to be on both sides or somewhere in the middle.
What personality trait do you attribute most to your success?
That’s a tricky question to answer, but I’m eager to learn new things all the time. So with every person I communicate with, I try to find the opportunity to learn something from them. I think we can learn from everyone around us in one way or another. Same goes with software development and work, I try to surround myself with people who can teach me, and people from whom I can learn a lot of things. Success is not defined by whether I can do this one thing or not; it’s more like a never-ending journey. In my opinion, it’s a never-ending learning experience and then applying what you’ve learned to your next project, then the next, and so on.
What’s the most challenging aspect of your job?
Definitely the fact that technology is moving so fast that it is impossible to read all the information that gets published on a daily basis. Every hour, people publish information about technology on the Internet; you couldn’t read it all in a lifetime. So, keeping up with the technology and finding some way to stay in front and up to date, but also filtering out noise, that’s getting more and more difficult. Then, even if you learn something, a few moments later, it’s obsolete.
Every day, we have to work on problems that didn’t exist yesterday. Software development is a job that requires constant learning. Basically, the moment you stop learning, your skills become obsolete. Of course, some things like fundamental programming will always be relevant, but you won’t be able to apply this into new software systems and stay on the cutting-edge if you don’t keep learning. That’s the challenge. Every project, every task is different. It’s a never-ending learning process.
How do you keep up to date? Do the projects you’re working on lead you to discover new resources, or do you have regular resources that you check in with?
Well, I do have regular resources that I check in with. I think it’s the opposite actually. I skip through a lot of the things that get published, and then try to find jobs that allow me to work with the resources I’m interested in. I don’t first find the job. I first learn something that’s interesting to me, and then find a project where I can apply it.
What do you like most about working at Section?
I like being able to work with technologies that I like. I also like that we are a small, distributed team. What I like the most probably is that I have the opportunity to learn new things. I like that it lets me work with edge computing and develop my skills in an area that is interesting to me.
So you developed an interest around edge computing, or specific challenges within our ecosystem, then you found Section?
I developed an interest around working with CNCF projects and solving problems at scale. Initially, I started as a web developer and I was between the front-end and back-end, then I moved a little more to the back-end, then to scalability, then to some automation, Kubernetes and microservices. Now at Section, I can apply many of the things that I already know, but I also have the opportunity to learn new things that are super interesting to me. I got excited during my interview with Dan [Section Co-Founder & CTO] when he said he wanted to change the way the Internet works; that seemed super interesting to me.
What’s the worst technology you’ve ever worked with?
To be honest, I have not worked with technology that’s bad. There is no bad technology. There are bad developers; people who have no idea what they’re doing and are writing code, but I’ve never seen bad technology. Some programs, systems or even programming languages have flaws, but if it’s not the best tool for your job, you just don’t use it. I’ve seen people who have no idea what they’re doing and are just copy and pasting something without understanding it. That’s not bad technology; it’s poor implementation of someone else’s idea.
Would you consider yourself Dev or Ops?
What’s the difference? There is no difference. Anyone who thinks that there is a difference, I think is wrong. You can’t do ops nowadays without being a developer, writing code and doing some kind of automation. Maybe twenty years ago, people who used to be in ops would unpack the boxes with new servers, put them in racks, install software on them and request more RAM and CPU when things broke down. Today, everything happens in the cloud. Everything is an API code. You can’t possibly do effective ops in any team size. It doesn’t matter if it’s a team size of two or 20,000, you always need to automate things as much as possible. This is where the dev came into ops.
I believe that some people, especially the new generation of developers, will not get familiar with owning their own servers, ensuring there is enough ventilation and air conditioning and so on, to ensure your servers don’t melt. This whole thing doesn’t exist anymore. Obviously, it exists in the cloud, but we borrow them from cloud providers or hosting providers, which means it is now impossible to do operations without being a developer. So when you ask me if I am one or another, I don’t think there is a difference. Any developer can do both as long as they are familiar with the API of a given cloud provider.
What’s your favorite part of your day?
When I pick up my son from school, then we cook dinner together; that’s my favorite part of the day. He’s 5 years old. We cook all kinds of things. One of my hobbies is cooking. We cook every single evening. No exception.
What single piece of advice would you give fellow engineers?
My advice to everyone… every single person (they don’t need to be an engineer) is to treat themselves as a stock option. What I mean by this is invest in yourself. That mostly includes knowledge, but it also includes practice and testing things. Try to learn new things, things that are going to be used.
First, obviously learn the basics. Things you’ll learn at university. Be able to write a program and write it well. After that, focus on your CV. Obviously, we only have limited time and we can’t learn every single thing. There are different paths that an engineer can choose to focus on. Maybe one engineer is interested in building APIs, another in game development. Once you have an area to focus on, then find the technologies for that path and keep investing your time in acquiring knowledge and skills that are beneficial to you and which increase your value over time. These skills are first useful for the companies where you work, but also if something happens with that company or with your current position, your skills will still be in demand in the future.
My advice to everyone is to keep learning. Never think you know everything, that’s impossible. Just keep learning.
What are you reading currently?
m3db code, lots of that! Otherwise, the last thing I read was some Spanish grammar, which I was using to understand something.
What are you listening to right now? What’s on your playlist?
I’m listening to random music on Spotify, as well as Spanish and French music, as I’m trying to improve these two languages.
What are you tinkering with on the side, if anything?
I try to distract myself from thinking about work. When I’m deep in a challenge at work, my work doesn’t end when I’m away from the keyboard. I keep thinking about it. I need to distract myself. In order to do that, I try to learn languages. I was focused for some time on Spanish, and now my focus is on French.
What’s something that most people don’t know about you?
I prefer to go camping instead of staying in a hotel. I prefer to be closer to nature instead of being surrounded by buildings.
Standing or sitting desk?
I don’t like standing desks.
Early bird or night owl?
I’m most productive during the night. I usually wake up early to prepare my son for school, and I also stay up late. Recently, I’m trying to sleep more, but I’m more productive at night. I don’t know why. I’ve always been like this.
What do you do for fun, aside from coding?
I train in Brazilian jiu-jitsu. That’s probably one of my favorite things.
If you were to apply a theme song to your life, what would it be?
Three Little Birds by Bob Marley.
Favorite morning beverage?
Maybe coffee. Or water. I don’t know. Coffee.
Lock Stock and Two Smoking Barrels by Guy Ritchie.
If you could have any superpower, what would it be?
Be able to stop time. More time. So I could enjoy more. That’s the one thing I want. Time.
Favorite vacation spot?
I have a lot. All of them are camping spots. Some of them I don’t know how to describe and they don’t have names. I have favorite places in the mountains and on the beach. Ideally close to natural reserves, lakes, rivers. There is one lake in my country [Bulgaria] that I really like called Beglika. Here in Australia, one of the places I really like is called Greenpatch. It’s really nice camping with a secluded beach where I’ve been several times. Definitely one of my favorite spots.
I don’t do snacks. No snacks. Maybe eggs. That’s my favorite food. Any type of eggs. Mostly, I eat them raw.
Who was your childhood hero?
Favorite happy hour beverage?
Maybe wine. Red or white, depending on what food I’m combining it with.