It’s been a couple weeks since our last Developer Spotlight with Mike Bestas two weeks ago. This time around we are moving the spotlight over to Roman Birg. He is responsible for several repositories today at Cyanogen Inc., but is ultimately known for his work on AOKP (Android Open Kang Project). Developer Spotlights are a public nudge of appreciation to the developers that tirelessly work and contribute to a greater cause for a better OS.
Roman, nice to have you on here. How is life and the dream?
R. Birg: Life is great! I’ve been living in Seattle with my girlfriend Dani for over two years now, and it has been amazing. We even got a chocolate lab who’s growing into a quite a fine doge (he had a lot of teenager energy). I can’t see myself leaving the PNW (Pacific North West), I love this place.
Tell us a bit about yourself, where do you come from and how did you start tinkering with code?
R. Birg: Born in Russia – moved to Memphis, Tennessee when I was 7, where I stayed until I graduated college. Although I didn’t start programming until high school, I kind of always knew that’s what I wanted to do… there was just no easy way to get into it when I was younger (and on dial up at the time).
I guess I started with some small time website hacking. I remember in 6th grade, I downloaded the phpBB forum zip, and opening the zip and trying to make sense of the PHP files on the school Windows 2000 PC’s. I also had no idea how to “run” them, I definitely tried though. I stuck with it for a while and eventually I was at the point where I had to learn Flash to continue down the web development path. I did not continue down that path.
What was the first language you started with? And what was the first project you completed?
R. Birg: My high school programming class started us out with Java, so I ran with that. Turned out it was the right call more or less – most of college courses stuck with Java as well. And then came Android (well, bytecode[smali] first for me). Since then I’ve been exploring other languages as many chances as I get, Java just doesn’t cut it alone anymore.
What have you incorporated from working on AOKP while working at Cyanogen Inc.?
R. Birg: A few features here and there (nav bar arrow keys I still use daily), and maybe my experience messing with quick settings? Mostly unicorn jokes though.
Not surprising, I am sure you rode in on one today.
What are you currently working on today?
R. Birg: I’m working on a nasty NFC + Bluetooth beaming bug where an unsuccessful transfer could put the other device in a bad state and not able to receive future file/photo beams until a reboot… so much stuff going on the device at that time too, it’s pretty gnarly.
Bug hunts can lead to or help create other bugs. Also, messing with Bluetooth can be a nightmare.
R. Birg: Are you suggesting I’ve introduced bugs before? Never!
You have been around for a while in the Android scene, what do you think big manufacturers need to improve or focus on to be a better device manufacturer?
R. Birg: Everyone is so focused on making the next huge product that will sell millions of phones. But no one is putting in the time or love to make a device that doesn’t feel rushed. Everyone always has to have the newest hottest hardware (I do too sometimes). It’s really hard to find a balance.
I feel like if there was a _stellar_ phone out right now, that released with an MSM8974 (like the original OnePlus device), but it had the best camera on market, a fingerprint sensor, useful UI enhancement (CM anyone?), and proper LTE band support, I’d be all over it. You usually get two, maybe three out of four of those things, but never all.
The Nexus devices are the closest thing to this for me, but as always, those are severely lacking in the camera department.
So do you think that is why everything feels ‘outsourced’ and ‘stamped/rehashed’?
R. Birg: I think that’s a byproduct of OEMs iterating on designs they already have (or have seen working elsewhere). It’s expensive to make these things, and even more expensive to make them right!
I would like to see manufacturers not release a new flagship _every_ year. I’ll pick on Samsung here since they’re the easiest target. I think this is what makes them feel not brand-spankin’ new anymore. They’ll change out a tiny feature here and there every year, so it’s never a HUGE surprise what they announce next.
If I didn’t see Samsung for a year with a new flagship, and they came back the next year with a quality product, I would definitely think twice. I haven’t thought about buying a Samsung since the S3, which was just a stellar device.
On the other hand there the business side of things to think of. If I was in Samsung’s position, I’d probably be doing something very similar. It’s generating them users and profit. The question is always about sustainability.
What device are you currently using as your daily driver?
R. Birg: I’ve been using the Nexus 6P as my daily since it was released. It’s camera is decent for a Nexus device, but I’ve found that it really sucks at close up shots. I realize it’s a phone, but I’ve seen better.
I think that the camera is basically the most popular deciding factor for buyers today.
R. Birg: It wasn’t for me. Definitely a big part though. I knew this thing wasn’t going to have the best camera (although it was advertised to have a better one, and that did factor into my decision).
I think the fingerprint unlock did it for me. It was between a 6P and a new Moto X. The fingerprint sensor was the biggest difference between the two (that I cared about) and I don’t regret the decision. I use it heavily throughout the day – when I know I need to use my phone, it’s ready to go by the time I’m looking at it.
I would have to concur. Security is at an all time paramount these days.
You have a ton of experience with the amount of devices you have been able to test. With the Android platform being pretty dominant in today’s industry, what advice would you give to upcoming developers?
R. Birg: Write code. Don’t be scared of breaking stuff and dig in. I feel like that’s pretty standard advice, but if works.
Also it’s not always about *just* writing code – make sure your that code is actually solving a problem. It might be as small as a bug. The problem could even be learning to program! But it’s never about just sitting down at a computer for the sake of writing code.
Breaking starts way before fixing! I love that line!
Is there any developers you looked up to or reached out to while learning Android?
R. Birg: I want to give a huge shout out to Faux123. It was the time of the LG G2, and he was doing his own kernels and AOSP builds, I took a stab and reached out to him for help because I was stuck… and to my surprise he replied back! He was very patient with me and I tried to extract as much knowledge from him as possible without being annoying. I don’t think I could have started AOKP without his prior help.
The coolest part was I got to meet him a few years later at the BBQ (and then again at the CM Dev summit last year). Cheers Paul!
Paul is a very skilled developer, I am pretty sure everyone who has flashed a Kernel has heard of him.
Anything else before we part ways and get back to work?
R. Birg: I just want to say thanks to all the other developers contributing to CM (and other ROMs!), you all have shown me the power of the open source community. It’s all about having fun and learning new things, and this is a great place to do both.
Thanks for having me on here Steve!