1) Who are you? Where are you located etc?
My Name is João Paulo Figueira, I am 42 years old, married and father of two girls. I live in the northern outskirts of Lisbon in a small town that marks the border between the city and the countryside. I work for my own company where I develop software for Windows mobile and embedded devices and the occasional desktop project.
2) On your blog you mention that you have been writing software for mobile devices since 2002, and have became “totally addicted”. How did this come about?
It’s not difficult to get addicted to writing code for these devices. Back in 2002 everything was still very new and most users would look at a Pocket PC device as an “agenda” or digital organizer. Almost nobody grasped the full potential of the devices, especially on the data storage and processing perspectives. When I started writing code back then, I spent most of my time writing proof-of-concepts and demos to prove to potential customers the power of such a small device. Interestingly I started working with Pocket PC devices when the Internet bubble bust hit the company where I was working and was forced to leave. After some years working in marketing and management positions, I had to resort to the first useful skill I had ever learned: developing in C++.
3) You run a company called PrimeWorks. On the company website there is the tag line “remote access to mobile databases”. What services/products do you provide?
Right now Primeworks has only one worker: me. I started the company to provide custom software solutions to the local market in partnership with the local heavyweights that had little to no competencies in the area. Database development was already a very hot topic and I started to approach it using the ADOCE objects. This approach proved to be short-lived because Microsoft discontinued the support for ADOCE with the Pocket PC 2003 platform. There was no other way to access the SQL CE databases other than by using OLE DB. This was when I started to work on adapting the ATL OLE DB Consumer Templates to work on the Pocket PC. In 2004 I got my first MVP award and went to my first MVP Summit where I realized that there was a shortage of tools for the SQL CE database, especially on the remote access and data import and export. Later that year I published the first version of Data Port Wizard, a tool to transfer data between desktop Access databases and SQL CE databases on a device connected via ActiveSync. Since then I have improved this code and spawned other products. Besides DPW, I am now selling two other major products: Data Port Console and DesktopSqlCe. The Console allows users to manage all versions of SQL Compact (2.0 through 3.5) databases from a single desktop application. DesktopSqlCe is a .NET 2.0 assembly that implements all the remote data access classes as an ADO .NET provider. With this library you can write desktop .NET applications that access all versions of SQL CE databases either on a remote device or on the local disk. Occasionally I also write high-speed data transfer tools for customers who want to develop their own corporate data synchronization scenarios. When I’m not doing all of this, you can find me providing consulting services for a GPS manufacturer.
4) Since starting your blog in April 2005 you have mainly covered native development topics. What leads you to focus on native development instead of the .NET Compact Framework?
First of all, native code is my passion. Second, I believe that native code is still the only solution for a large number of problems, especially when performance and resource usage are an issue. Finally, it’s downright fun and challenging. I believe that there is a lack of development resources for embedded and mobile native code developers and the demand for these skills has not diminished. Just look at the MSDN and PocketPCDN forums… There are lots of people still developing in C and C++ for devices and they need all the resources they can get. I just want to help them with my own experiences.
5) One of your goals for 2008 is to develop a replacement for the ATL OLE DB Consumer Templates. This was an easy way for native developers to access databases such as SQL Server Compact Edition but has progressively became unsupported by Microsoft. Do you find that as Microsoft’s focus shifts to the managed environment, that native development has began to suffer?
Microsoft seems to be shifting back a little bit to supporting native developers, at least on the desktop. If you look at the latest developments on the desktop MFC library, you can only infer that C++ is not being written off. I still have to understand what Microsoft plans to do with native code for devices, and I actually plan to ask them about this next April at the MVP Summit. Native code is needed for a number of solutions – take my own products. High data transfer speeds are achieved by using the low-level OLEDB interfaces and by mashalling the data between the desktop and the device in the native binary format. Does this mean that you must write your mobile sales application in C++? Surely not. How do you decide when to go managed or native? Just ask one question: where do I need the speed – development or execution? Not surprisingly you will find that the best approach is a mix of both, as most of my products illustrate.
6) Do you carry a Windows Mobile powered PDA or Smartphone with you?
Right now I’m carrying an HTC S620 Smartphone with Windows Mobile 6. It’s a very nice device with two very big problems: the battery cover tends to open and the device tends to fall to the ground very often (a design issue, maybe?).
7) Windows Mobile has came into some criticism lately with respect to the look and feel/usability of it’s UI when compared to devices such as Apple’s iPhone, with Microsoft promising significant improvements with Windows Mobile 7. Do you have any opinion on this debate? You have done some work in this department with respect to your list based form and carousel menu custom controls.
After using Nokia phones for several years, I can say that the Smartphone UI is still a bit crude although I did see some improvements when the S620 was upgraded to WM6… There are lots of rough edges on the UI design that have been dealt with very nicely by Nokia. I have never used an iPhone but did see some demos of it in action. It seems to be a very nice device for consumers, but I would like to see it prove itself running custom-made business applications. Microsoft surely did score here.
8) You are a Microsoft Most Valuable Professional (MVP). How did you become a MVP and what do you find the most rewarding aspect of being an MVP?
I became an MVP in 2004 mainly because of my articles on CodeProject and PocketPC Developer Network. This is still my major contribution to the community, although I also answer questions on community forums. Sometimes I get ideas from the forum’s questions to write my articles. Right now, I’m working on an implementation of a “collapsible toolbar” for the PocketPC, as requested by a PPCDN forum reader. There are a couple of things that make being an MVP very cool. On the top of the list is the recognition you get from Microsoft and the opportunities to network with the development teams and other MVPs. This gives you access to first-hand information about the new products, and probably the highest-skilled problem-solving network in the world. The complimentary MSDN subscription is also a very nice thing.