Django (part 1)

     

Recently a startup that I work part-time for asked that I transition to back end development. They were happy to have me help, even after hearing my disclaimer that I had little experience with the framework that they were currently using, Django. Eager to learn, I accepted the offer and spent the past month learning the ropes; implementing features here, bug fixes there. This is the first post in a two-part series.


Modern Android Development

     

Over the last month I’ve had the opportunity to work on an open source Android project. Working with other Android developers from across the world has been eye-opening with regards to the current state of Android development. Android Jetpack has really hit its stride, with the adoption of Jetpack ViewModels, LiveData, View Binding, Coroutines and Navigation Flows becoming standard practice. ViewModels in particular are practically indispensable for android development. As a lifecycleObserver, a VM can actually implement lifecycle callback methods, avoiding fragment transaction errors.


ADB and other Miscellanea

     

At Nautilus I’ve been hard at work on a new line of Google-Certified OEM (Original Equipment Manufacturer) touchscreens for our fitness equipment. This work has meant that I’ve had to become much more familiar with ADB (Android Debug Bridge) and the Android Operating System. The first step when developing using ADB is to establish a connection. This is done either over USB or a wireless network. Once that is done, you can confirm the connection by executing adb devices in the terminal and confirming the presence of the device name.


FiTness Machine Service (FTMS)

     

I recently created an Android app for debugging exercise equipment that advertise under the FiTness Machine Service (FTMS). The Nautilus Quality Assurance team now uses the app extensively for claims testing of third-party open-standard equipment. As an added benefit I learned a great deal about BLE, Android, and byte decoding while creating the app. Under BLE (Bluetooth Low-Energy) GATT (General ATTributes Profile) there are “services” which act in the same way as protocols function under normal Bluetooth.


Interviews

     

As a software developer, looking for a job is one of the most stressful things you will ever do. This is particularly true for your first job. In the months leading up to my departure from the Army I applied for 117 different jobs. From those 117 applications I received 35 responses. From those 35 responses I was able to secure interviews with 18 different companies. Of those 18 different companies I was eventually extended offers to work at 6.