The Mysterious Job of a Kernel Developer: An Interview with a SiteGrounder

There’s a lot of work involved in crafting a great hosting product. Part of our efforts to guarantee that our clients’ websites perform better in all circumstances, is our unique hosting infrastructure built entirely on Linux containers. The specifics of this custom setup require a special kind of talent and skill set to maintain it – that of a Linux Kernel developer. Since there aren’t that many people programming on such level, their job description sounds almost mysterious. That’s why we’re very happy to have such rare talent on our team at SiteGround. We thought it would be interesting to tell you more about their work and how it helps your sites work better and safer- from our StartUp solutions to the Enterprise level. Meet Angel Shtilianov, our high-level specialist, responsible for Linux kernel development on our servers.

Angel, you occupy an interesting position here at SiteGround – a Linux Kernel Developer. Could you explain what is kernel programming, and how is it different than software development?

Angel: Generally, the kernel is the core of your operating system, whether it is Linux, Windows or another one. It handles various essential tasks like: managing your hardware, memory usage, pipelining your data to different storage devices and more. That’s where the mystery and importance of kernel development lies. It makes all these tasks work together and run simultaneously, with no complications.

Kernel developers live in a world that is difficult to be imagined by most people because it has no user interface to relate to. This is the world between all the apps we use daily, and the hardware (or as we call it – the bare metal). Everything there has its own purpose, ensuring a stable base for the smooth performance of all apps. On the other hand, there’s the user space software that implements all the apps, serving the specific needs of the end-users.

Why did you decide to pursue a career in kernel engineering?

Angel: I started working with computers a long time ago when they still had a few hundred KB memory and virtually no computing power (in today’s terms of computer performance). The hard disks were the size of a laundry machine and there was no graphic user interface. In these days, there was nothing much a normal person could do with a computer other than typing text. There were no games, no Internet and most of all – nothing to distract you. Back then, the best time investment was to invest in yourself by trying to make a computer program. I was eager to learn how to use the limited resources for something a computer can do faster and better than a human.

I started using Linux in the late 1990s because it was a completely open-source project. This meant that when you have a problem, you could scrub through all the code that your functionality depended on, trace the problem, and eventually optimize the code. You can learn a lot by just digging through the code. You can share, ask and improve your work and yourself in the moment, helping others as well. There are many people all around the world, using and writing open source technologies. Regardless of whether they are writing open-source code or using it – it all helps everything move forward.

What differentiates the kernel on SiteGround’s servers from a standard one?

Angel: Well, our kernel is not completely different as a code base. It is different in the way it evolves and the way it’s being maintained. It is not just customized for our customers’ use cases. It is optimized for the best performance on our infrastructure. For SiteGround’s customers, this means high-level security and better resource management for their websites. It is the magic that makes it possible to meet all clients’ requirements for server performance. Every single user unit encapsulates its resources within a “package” containing its memory, CPU, network, storage and other resources.

We also strive to identify possible security risks and we regularly improve safety features. In addition to providing the latest security patches on our servers, we also have a live patching system, which allows us to apply kernel security updates without even restarting the servers, maximizing the servers uptime and providing a highly-protected environment with no service interruption.  We often have discussions with the core Linux developers, we try to contribute whenever we can and so far our team has written more than 400 kernel patches, dozens of which are part of the mainline Linux kernel code.

At SiteGround, we use Linux containers as opposed to traditional virtualization. Could you explain what are the benefits of it?

Angel: Our Linux container technology is a complete ecosystem running on our servers. Its purpose is to guarantee clients’ data and resource privacy. Also, depending on the client’s requirements, we can extend their resources and provide reliable services without interruption. It makes it possible to scale and protect our clients’ business growth by allowing more flexibility. Traditional virtualization, on the other hand, causes huge resource overhead by emulating each resource inside a virtual machine. By avoiding that, our technology practically has no overhead, which means the customer uses the full capacity of the resources they are paying for, and you can really tell the difference in performance.

Why is the job of kernel developers in web hosting companies not that widespread?

Angel: Due to the specifics of the work, many companies don’t have the need to have their own kernel. When a company builds a custom product which requires additional setups, somebody has to take care of that specifically. At SiteGround we create our own services and optimize the software on our whole hosting platform, starting with the Linux kernel.

At any moment, our system handles thousands of requests coming from the user software on our servers. We don’t want our clients to wait for the server to ‘give them their attention’. That’s why we create our in-house technologies. They require many modifications, optimizations and the need for someone to dig deeper into the Linux kernel dev code. That someone is yours truly, the kernel developer.

Is there something new and exciting that our customers can soon expect from our kernel team?

Angel: Well, that’s quite a difficult question because of the nature of the kernel software. I can reveal that we’re currently testing Linux kernel 4.14 version. We also plan to deploy the latest security mechanisms which we discussed with the community during the Open Source Summit NA 2017. Meanwhile, we take care of our servers’ security, reliability, and performance. We are also improving our backend infrastructure to be ready to meet every single challenge. It’s an out-of-the-box service our clients get all the time, it’s just part of our philosophy as craftsmen.

Access email sent!

Sign Up For
More Awesome Content!

Subscribe to receive our monthly newsletters with the latest helpful content and offers from SiteGround.

Thanks!

Please check your email to confirm your subscription.

Hristo Pandjarov

Product Innovation Director

Enthusiastic about all Open Source applications you can think of, but mostly about WordPress. Add a pinch of love for web design, new technologies, search engine optimisation and you are pretty much there!

Comments ( 14 )

author avatar

Marlon

Nov 08, 2017

Great interview!

Reply
author avatar

Margaret

Nov 08, 2017

Wow! While I don't understand all of this I really do appreciate that you do. Thanks

Reply
author avatar

Mark

Nov 08, 2017

Thank you Hristo and Angel for this peek "inside the machine"! I'm no programmer but that doesn't mean I can't appreciate the kind of work you do. Knowing that SiteGround has a unique approach to web hosting is part of the reason I became a customer. I can now see that it's because of the dedication and expertise of some very talented people!

Reply
author avatar

Jason

Nov 08, 2017

Great post, really informative & inspiring.

Reply
author avatar

DT

Nov 12, 2017

Hristo & Angel -- Thanks for the post, it helps me understand what you offer and what choices you've made to make your hosting work. It leads me to think about other cloud hosting infrastructures like AWS and want to know more about the differences between what you do and what they do. I'm working on another project which uses AWS and continuous integration tools (Travis-CI) with build and deploy cycles and numerous monitoring systems to make sure everything is working in the environment as expected. But, I don't think these tools allow you to change the kernel itself and are basically some version of virtualization (and if they do, I don't think we touch the kernel anyway). Can you comment on the differences between what SiteGround is and what AWS is? The above discussion makes it clear why you don't use virtualization, I'm curious about whether AWS is what I think it is. Thanks!

Reply
author avatar

Hristo Pandjarov Siteground Team

Nov 16, 2017

There’s a difference between containers and virtual machines. We focus on containers which means sandboxed resources without virtualized CPU. For full virtualisation, with access to every aspect of the machine with let’s say custom built Kernel, AWS is the way to go :)

Reply
author avatar

albert

Nov 17, 2017

love it. have enjoyed siteground hosting for more than 10 years with multiple domains.. thumbs up for superb customer support.. and of course now the LINUX kernel development portion you just written..something i believe that differentiates siteground from others..

Reply
author avatar

Steve Kobb

Nov 17, 2017

Fascinating. Thank you both for shedding light on this topic.

Reply
author avatar

Faisal Zamir

Nov 20, 2017

WOW, Thanks you shear great experience

Reply
author avatar

Morad Hamdy

Nov 22, 2017

It seems that there are huge efforts behind the user interface, and what you talked about is the most important part. Well done, and you are providing great service that makes users trust. Thanks a lot.

Reply
author avatar

Joann Loos

Jan 27, 2018

Hi Angel! It seems we are peers, starting on computers at the same time. I remember CPM operating system (pre DOS) and acoustic coupled modems. I programmed on PDP 11/70's. I remember the first version of C language which didn't include pointers. I took a class on writing drivers in assembly language. The current CS programs don't teach any real optimization now that object-oriented programming language and garbage collection are so prevalent. It's wonderful to know that someone with the same background is working on the SiteGround kernel.

Reply
author avatar

Angel Shtilianov

Jan 29, 2018

Hi Joann! It is always pleasure to find you are not alone (against the white blinking cursor ;-) ). You are completely right about the OOP with all of its charm and penalty. And that's the reason why there is a huge difference in the userspace and kernel code. This penalty is too expensive to be paid thousands of times each second. That's why folks like us are still needed (I hope) ;-)

Reply
author avatar

vidhi

Sep 17, 2019

Thank you so much for giving us an insight into your work in the kernel. I have recently joined the Board Support Package (BSP) team in my office and i came across this article while looking for kernel level jobs.

Reply
author avatar

Angelina Micheva

Sep 17, 2019

Hi Vidhi, Great to hear you found the post useful. Good luck with your new job.

Reply

Start discussion