Who Am I?

Hi there, thanks for visiting!  My name is Ruben Macias and I’m the founder of SharpMobileCode.com.  If you’re reading this page, then most likely you are interested in developing mobile applications, specifically using C# and Xamarin based technologies.  If you’re not familiar with Xamarin, they basically bring you the ability to create cross-platform applications on iOS, Android, Mac, and Windows Phone using C# and the .NET Base Class Library in the form of Mono.  Is it the silver bullet to cross platform mobile development?  Certainly not!  But if you’re serious about build mobile applications for multiple platforms, the Xamarin stack is definitely worth consideration.

I currently work as a software engineering consultant that specializes in the .NET Framework.  I’m fluent in C# and VB.Net and have written software applications for infrared sensor/camera testing, engineering test software, back end web services, and ASP.Net web sites.  Though I have worked on a variety of different types of applications, the last two years have been really special because I have found my new favorite type of development:  Mobile Development.  And being an experienced .NET developer, using Xamarin and C# seemed like a natural fit and the logical next step in enhancing my development skills and career.

The Tools

Though Xamarin is a relatively new company, their technology and tools are maturing at a rapid rate.  As of September 2014, I’ve been actively developing mobile apps using Xamarin for almost 2 years.  In that short time, I’ve seen the technology improve and feel that it deserves consideration for developing mobile apps.  Though Xamarin does provide some good documentation, and they have a thriving community with really talented developers, I hope to contribute back to the community with my experiences using their tools.  It is one thing to following along through tutorials and see example code.  However, I would like to expand on the current resources and add in my own experiences and feedback.  From one developer to another, I hope to explain now only the how, but the why.

The Who

So who is my target audience?  At first glance, it may seem like my target audience are those who are new to C#, mobile development, and/or programming in general.  Though my plans are to include content that may seem fundamental, my intended target audience are those who are not only new to C# and mobile development, but those who are also experienced .NET developers, are new to mobile development.  General .NET development, and mobile development are two completely different beasts.  When I first started mobile development using Xamarin, I was already an experience .NET developer.  But I soon realized when I was developing Android and iOS apps, I was certainly out of my comfort zone!  With the help of a couple of talented colleagues who already had Xamarin experience, I took a couple of steps back and remembered that in order to be a successful developer for a given platform, you must first learn the fundamentals.

So if you’re already an experience .NET developer, you may feel the temptation to skip over some content that may seem like “I already know this”.  I’m not debating the fact that you do, but I think it is also beneficial to brush up on the fundamentals.  It is beneficial to know how iOS, Android, and .NET differ in memory management.  It is also important to understand how the Xamarin plumbing works with the iOS and Android SDKs and how in certain cases, it could mean the difference between a beautiful, high performance app, to an app that does not even start!

The Why

To those who know and have worked with me, I place high importance on the fundamentals of the platform I’m developing on, and the language, tools I’m using.  As I said earlier, I used to write engineering test tools for infrared sensors and cameras for 7 years.  During those 7 years, I’ve encountered really good challenges involving performance, memory management, and algorithm design.  The hardest problems I’ve ever troubleshot during those years I was able to solve because the underlying problem/bug ALWAYS came back to the fundamentals of programming and/or how .NET worked.  Most of the time, the fix was only a few lines of code, but those few lines of code took days, sometimes weeks to track down.  Each time, it came down to understanding the fundamentals. Every. Single. Time.

So thank you for taking the time to read about me and the purpose of this site.  I’m not claiming to be a know it all expert, but I do love to share my experiences and to teach others the things I’ve learned.  That is the main reason I have created this site.  For us to learn about mobile development together.  Feel free to send me an e-mail and share your thoughts and experiences!  Now let’s write some code!