Our last Developer Spotlight with Roman Birg. This time around we are moving the spotlight over to Christopher N. Hesse. He is responsible for several devices including the controversial Exynos devices like the Galaxy Note 4 and the Galaxy Tab S2. Developer Spotlights are a public nudge of appreciation to the developers that tirelessly work and contribute to a greater cause for a better OS.
Hi Chris, how is your day today? Welcome to your first Developer Spotlight! Can you give us an introduction to yourself?
CNH: Hi Steve, my day has been great so far, thanks! My name is Christopher Noel Hesse, I’m 20 years old and live in Germany, where I’m studying at University at the moment.
I’m working in the automotive industry on my non-University days and enjoy working on the Android platform there as well.
It does not surprise me one bit that you tinker with cars as well as smartphones. What are you currently studying in college?
CNH: I have been studying business informatics for two years now and hope to acquire my first degree by 2017.
By the time you graduate you will have quite a bit of experience under your belt. What got you into tinkering with Android and open source?
CNH: I think it was the desire to actually be able to do what I want with a device I paid for.
The bad situation with (major) Android version updates was another factor. I consider it quite funny seeing how the situation is still about as bad today, whereas Apple is supporting their devices at least twice as long and well on average.
This is why I am an avid advocate of open source software. We need to be able to keep their devices alive when the OEM decides to drop it or our planet will drown in garbage soon.
Well, for the same price you get similar ‘premium hardware’. Apple has tried to set a precedent of expectation for software updates and support. It’s an awesome and sad thing at the same time. We have the community to continue support while the company getting paid for the hardware sets a short update path.
What was your first device and how long was it supported by the manufacturer?
CNH: My first (Android) device was the Samsung Galaxy 3 (GT-I5800, not the S3), which came with Android Eclair (2.1) and was supported for about a year if I remember correctly – at least it got the update to Froyo (2.2) which was a big deal at that time because it brought important improvements such as the Dalvik Just In Time (JIT) compiler.
The community achieved an almost usable Gingerbread AOSP build and someone even continued to work on Ice Cream Sandwich (by the time I had moved on to a Sony Xperia S).
So you received an additional (nearly) two years of support for this device from the community? That is awesome. I started with the Motorola Droid on Verizon, which developers supported up to Ice Cream Sandwich. What devices are you currently maintaining and do you think current hardware limitations will allow for longer community support?
CNH: It really is.
I sadly never owned a Motorola device and apparently I’m late to the party, with Lenovo now owning their mobile division. I am currently responsible for the Exynos5 and Exynos7 platforms and I maintain the Samsung Galaxy Note 4 Exynos family, the Galaxy Note 5 family as well as the Galaxy Tab S2 family.
Now, the funny thing is that all our current Exynos5/7 board support code is based off an Android Kitkat BSP release from the hardkernel guys, with tons of our own fixes and updates to it. This means I am right now supporting devices running the latest Android Marshmallow (cm-13) using drivers that were designed for an iteration that was released several years ago.
I’m quite confident I can support the Exynos 5430 and upwards for quite a while still.
You are a bigger key figure in the upbringing of a difficult platform than most people understand. Thanks for the hard work and dedication.
How is it working with the other components like camera and touchscreen on the Samsung devices? Is it just as difficult as the board?
CNH: The difference in working with the two subsystems you pointed out is actually night and day on the devices I worked on so far. As for touchscreen, the kernel driver (which they are obliged to release as part of the GPL) is usually all you need and in most cases, it is just a simple Inter-Integrated-Circuit (i2c) bus that needs to be looked at for bug fixing and improvements.
The camera however, is a different cup of tea. We are still struggling with the Exynos7 camera hardware to this day, because the user space drivers play a big role here as well. Samsung’s kernel space components, namely the Multi Format Codec (MFC) and others, provide well documented interfaces we can work with.
The Android platform drivers build on top of the Video4Linux (V4L2) architecture and are utterly complex with specific Exynos graphics format mappings and whatnot. All in all, working with Exynos specific subsystems can be a pain – but an unparalleled learning experience at the same time.
I figured as much when it comes to the intricacies of Samsung’s policies and hardware. Enough of the technicalities though. What do you find yourself doing on the other side of the phones? You said you work in the automotive realm, any hobbies of choice?
CNH: My hobbies these days basically denote to spending as much time with my friends as I can, including going to the local beach, playing paintball or just roaming the German cities at night.
I played football for about eight years, but never really got into it again after that. I do enjoy watching the European Championship and other sport events though. Apart from that, I also grew to like skiing and I definitely wish I could do it more often.
I have never had the opportunity to ski. It looks painful to wipe out with a bit less control than on a skateboard.
I find it amazing that you find time to also spend countless hours contributing to CM. Where did you pick this skill up and when did you start?
CNH: I can only recommend trying it out, it’s awesome!
That’s a good question and a hard one to answer actually. I guess it was by the time I went to school for the last two years when I got bored more and more each day, so I started hacking on the Lego Mindstorms NXT set I got a while back (not using the click-to-code interface) and soon after that wanting to modify my Android smartphone to run the latest and greatest iteration everyone was talking about.
I started by learning Java but soon came to the conclusion I’d need to dive into C and C++ as well to be able to be successful with Android development. In the last two years, I started picking up extended Java and C++ courses at the University but at the very beginning, my programming knowledge was self taught I guess.
I went as far as to learn some Java and Python, I ended up focusing on design and web work. Do you have anybody you looked up to in the Android community?
CNH: I envy you web designers for I still think designing HTML pages using CSS is a mess.
Sometimes I wish I could get into that topic as much as low level platform development.
I think I looked up to Ethan Chen (Intervigil) for the most time, not necessarily because of the things he did for the community, but also the way how he did it. You can see him constantly pushing new patches to CyanogenMod (and Inc. probably), yet he still finds time to check in on the IRC channels and he’s always up for discussing all things Android and CM.
In a nutshell, I always perceived him as an accessible, helpful and friendly source of knowledge, something that isn’t exactly prevalent in the Android open source community to this grade.
Ha, I wasn’t much of a designer, more of an organizer and apprentice, I always ask for input or another perspective.
Anything you want to say before we end this chat?
CNH: I’d like to take the opportunity to encourage more developers and enthusiasts to contribute to a large project like CyanogenMod to provide aftermarket support for awesome hardware, often left to be forgotten because of sub-par software. I know at least two really talented developers, working full time jobs at industry leaders such as Red Hat, who were trying to get more into Android development but were discouraged by the attitude of the community towards them.
Words such as ‘kanging’ or others aren’t used nearly as often in other Linux communities as they are used in the Android one for example. In my opinion, fragmentation is a problem for Linux distributions as well, the more eyes you can get to look on a patchset, the better your code and overall software quality will be.
I feel happy knowing the CyanogenMod community is steadily growing and new talents are joining constantly. It’s a great thing seeing all these people push code to the project daily and CM providing the infrastructure for a flawless experience (build servers, download servers, gerrit nodes, etc.).
It’s been a great experience for me so far and a steep learning curve, I can only hope to continue this awesome hobby for as long as possible. Cheers, and see you on the forum, or in the IRC chan!