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 David Rodriguez, Lead Engineer on the Cloud Team at DNN.
Who are you?
I’m David Rodriguez, a happy Spanish guy living and working in Tenerife (Canary Islands, Spain) where I born. I am one of the lucky ones who has the opportunity to work with cutting edge technologies at DNN as the Lead Engineer on the Cloud Team.
My 15 years development background is mostly based on Microsoft technologies, designing and architecting high scalable systems like reservation systems for airlines companies.
I have been working with Windows Azure since it was on CTP – we had to modify the cloud service configuration files manually with Notepad! We were trying to migrate on-premise systems to the cloud, mostly to reduce costs and along the way I co-founded a small consulting firm to make this type of tasks easier.
Because of my love for web and cloud technologies I finally ended at DNN working on the most exciting projects that I have ever worked on.
What do you do?
Perhaps one of the most interesting ones I would like to highlight and that started my relationship with DotNetNuke is the DNN Azure Accelerator, an open source project available at CodePlex to deploy the famous CMS on Azure as a Cloud Service (PaaS). I will be continuously improving this project for community members because is the base of the new DNN Evoq suite of Business Solutions, which are now available in the cloud, running on Windows Azure.
After starting at DNN, the big projects that I have been working on are: the DNN Trials Environment, and the DNN Cloud Platform.
The DNN Trials environment allows us to deliver a fully-featured, cloud-delivered trial DNN Evoq website to customers within 30 seconds of signing up. I encourage everyone to sign up for a DNN Content or DNN Social trial, both because they are great products, but also to see how well the trial delivery works.
All these projects are deeply using Windows Azure parts, going from simple SQL Azure databases to the deployment of a customized version of the Windows Azure Websites (aka Antares) over Virtual Machines, something that can be imagined like a cloud inside the cloud.
Of course, this is not only a story about development, so the team works in DevOps mode to allow us to deliver frequent releases and continually improve the product and the environment.
What is your development environment?
I work using a good DELL Precision M4700 mobile workstation, equipped with i7 Quad Core, 16GB RAM (hey! I needed lot of this to run multiple VMs and multiple instances on the emulator) and a 256GB SSD disk with multiple monitors, and since this is the machine that I use for development, it is also the gateway to other cloud resources hosted on Azure. I still conserve my old Logitech G15 keyboard and the SteelSeries World of Warcraft mouse from when I used to play, something that is impossible for me today (I will admit only a quick Diablo III session from time to time).
My development daily tools are Visual Studio 2012 with steroids, let’s say some must-have addons and extensions: ReSharper, GhostDoc and Web Essentials 2012 to mention a few.
From the DB side, SQL Server Management Studio and the good RedGate SQL Compare and SQL Data Compare tools. Cerebrata’s Windows Azure tools are also opened most part of the day – another must-have for an Azure DevOps. And of course I get a lot of use out of Notepad++ and SnagIt as well.
Finally when things gets serious, Sysinternals Suite, Fiddler2 and WireShark come out to play.
I used to code on VB and later on VB.net, but since almost 3 years ago I haven’t written mostly C#. Of course JavaScript has been always there and KnockoutJS is one of my favourite JS frameworks. IE, Chrome (also Canary), Firefox and Safari have pinned shortcuts in my taskbar.
Humm… I almost forgot to mention something called “Outlook”….
WinRT and Windows Phone apps are on my wish list, and while I have hosted some hackathons on the subject, my contribution has been more from the Azure Mobile Services side than from how to completely build and publish an App.
What is your coding pet peeve?
Which is the ReSharper default one? That is what I use ;-) I feel like an obsessive compulsive trying to remove all the warnings.
How did you get started programming?
My first approach was when I was 12, using an MSX and BASIC. It was a program that stored a database of friends and their relationship (girlfriends and boyfriends) in a magnetic tape. If I would have called it Facebook, this would probably be a very different interview…
I’m very involved with the community, managing and presenting sessions in our local .NET UG TenerifeDev and blogging around the DNN and Azure marriage, something that brought me a nomination as Windows Azure Insider.
I can say that not only has the developer community influenced my coding, it also changed my lifestyle. Before starting to publish things at CodePlex or GitHub, before starting to blog and participate in the UG sessions, I usually worked on private systems where nobody knew what I was doing except my team colleagues. That of course affects how you code, how you document, etc. since the feedback you get is limited to your small environment.
Sharing things with the community makes you to pay attention to detail. It’s like sharing your personal diary and showing how you write, which verbs and adverbs you use and being exposed to criticism. The good thing is that the effort has its rewards when someone sees your work useful.
What advice would you offer to an up-and-coming programmer?
Spanish proverb: “El saber no ocupa lugar” (could be translated as “Knowledge does not take place”).
I remember the time when I was preparing some IT pro exams for MS certifications and asking myself if it would be better to spend my time preparing other dev exams instead. When working on the cloud you will find that having an IT pro and Dev knowledge mix will make the difference. You will find that in the cloud world there are a lot of pieces to plug into your code to build custom solutions, and at the end knowing how DNS works, how a Virtual Network can be configured or how an Active Directory can be programmatically synchronized will help when trying to debug things in this new era.
Editor’s note: We interviewed David on the eve of the launch of DNN Evoq suite of business applications, which are in Evoq Cloud Edition based on Windows Azure. Evoq Cloud Edition is a fully managed service from DNN.