Studying for Google Cloud Architect while using it to deliver prototypes of new product initiatives has been great fun! Google Cloud is a highly integrated platform that delivers access to the majority of Google’s infrastructure across the globe. Architecting on this platform is all about balancing cost, high availability, and responsiveness. I’m currently in love with AppEngine for Onyx’s apps because of the ease of scaling and quick deployment with nothing more than an app.yaml file! Good stuff!
Buildroot has become my default for embedded Linux projects. Well documented, easily augmented with a large developer base it makes bootstrapping an embedded project a whole lot easier. In addition, it’s build framework supports a massive number of languages for your target! I’m currently leveraging Node.js, C, Python, and OpenCV. You can configure the platform in such a way as to support cross-compiled or target hosted systems. Nice!
Up until 2019, my daily driver was my Mac Book Pro (Late 2011) i7. Flying international made my favorite portable a frustrating experience. So I migrated to a surface pro and now I’m down to my Mac Mini, which I’ve converted to my CI/CD build engine and an iPhone 7 for dev and testing. It builds my react native, Unity3D, and now my flutter apps and drops the resultant build back into a build repository. I do miss Mac’s unified and consistent UI and hardware. The surface, it’s a good Windows device, but obvious gestures and focus are just imperfect. My Pro never missed on these points… Still, for a general development environment, Mac is hard to beat, but Xcode will never be my favorite!
I’ve been using Windows since 3.0 (Yes, I know I’m old… LOL). As a developer Windows really hit it’s stride with Window 2000, I was hopeful that Windows 10 would let go of the kitchen sink of APIs and get to being lean and mean. Not exactly what has come about, ah well. In my opinion Microsoft has consistently offered the best development and business environments running. That being said, it always came at a corporate pricing, these days with Visual Studio and Microsoft’s embrace of open source it’s a great time! I’ve created games, simulations, drivers and business apps of all kinds on Windows and with various Microsoft offerings including: VB, C#, C and C++. My favorite desktop environment by far has been C# / .NET / WPF / XAML.
Linux is just a work horse. My first experiences were with re-purposing old hardware to extend their useful lives. I remember my first cross-compile for a cold fire processor around 1995 (GCC 2.4.2). I’ve used Debian, Red Hat, CentOS, SuSE and Ubuntu. I’m partial to Ubuntu these days for both servers and clients. I’ve created block drivers for custom boards on PC104 platforms and built servers and services using various languages. These days, Linux is extremely relevant for both Google Cloud and AWS. Inevitably you’re going to leverage it with Docker, Kubernetes or a custom VM. It just works.
I’ve been leveraging Google’s Android since Donut (1.6) early on the development environment was, shall we say rustic? Android Studio is quite nice, but honestly these days you can get 99% of what you need to have done with React Native or Flutter. If you’re doing gaming or AR/VR I’m going Unity3D. Short of some specialized NDK work I’m not planning on looking back!
For completeness I’m mentioning iPhone. These are awesome platforms, inevitably if you’re supporting this platform you are most likely going to be supporting the only real competitor (Android). That being said, I’ve had very few issues with Unity3D or React Native, which gets me a two for one on my development! I’ll get back to you on Flutter (I’m pretty sure it just works too!)