Welcome to our continuing series of Code Project interviews in which we talk to developers about their backgrounds, projects, interests and pet peeves. In this installment we talk to Cary Bran, Senior Director of Advanced Software and Architecture at Plantronics.
Who are you?
My name is Cary Bran, I work for Plantronics out of my backyard shed located in Seattle, Washington. My job title is Senior Director, Advanced Software and Architecture. What that translates to is I lead the research and development of next generation software and device concepts.
I’ve been developing solutions in the unified communications and collaboration space since 1998. In recent history, I’ve served as a software architect, technical strategist and contributor to the IETF and W3C WebRTC standardization efforts. I have a BS in Computer Science and an MBA from the Foster School of Business at the University of Washington.
What do you do?
I lead the development of Plantronics advanced hardware and software prototypes and also am an advocate and evangelist for the Plantronics Developer Connection. I have worked on the emerging industry standards that are being developed for WebRTC.
Some of the projects I have worked on include the Voyager Pro and the Plantronics Spokes SDK, including the “TweetMe” app using the Spokes SDK. You can see the tutorial for the “TweetMe” app on the Plantronics Developer Connection site.
And, as mentioned earlier, I am actively involved in the IETF RTCWeb working group. Audio Codec Processing Requirements is one area where I have been contributing.
I also spend a lot of time talking to developers about building headset apps and the resources Plantronics makes available to help them be successful.
What is your development environment?
I develop on both Mac and PC.
On my PC you’ll find Visual Developer Studio and JEdit. I mostly work in C#, though sometimes C/C++.
On the Mac I use IntelliJ, Xcode, JEdit, OmniGraffle for diagrams and wireframes, OmniFocus for task lists.
I also keep the Android SDK around for mobile development.
On both platforms I use both Github and Perforce version management.
More recently I have become obsessed with the Maker culture and am teaching myself how to program microcontrollers.
Related to my WebRTC standards work, I’m actively following the development of WebRTC implementations in Firefox nightlies and Chrome.
I’m also actively experimenting with WebSockets, Node.js and the Arduino platform.
What is your coding pet peeve?
Developers who suffer bouts of Not Invented Here syndrome. That definitely is a pet peeve.
How did you get started programming?
My first program was written in Basic on a TRS–80.
My first professional gig was writing software in C and REXX for voicemail systems running under OS2.
I think I was fortunate to work with some very, very good developers over the years. Most of my coding style was influenced by the online examples and text books I read as part of researching a new language or toolkit, I have always tried to focus on creating code that was easy for the next person to pick up where I left off.
To collaborate with other developers I currently use Twitter, LinkedIn, Github, IM and the Plantronics Developer Connection… and soon I will use WebRTC!
What advice would you offer to an up-and-coming programmer?
A solid understanding of design patterns and data structures will serve you well for picking up new languages. Being open to sharing your work and accepting feedback from others will really help the quality of your work product. Work hard and, of course, play hard.
What is the best way for developers to get involved in the Plantronics developer program?
Visit the PDC, download the SDK and try to get the sample applications running. If you run into issues, the community forums are the best place to get your questions answered.
To build apps with the current version of the SDK you will need Microsoft Visual Studio.
What are some interesting projects created with the Plantronics SDK?
I have seen companies take the Plantronics SDK to build some pretty interesting sales efficiency applications as well as integrating the headset’s sensor data into VR collaboration applications.