Taught Two Day Class on AWS, Databases and RESTful APIs

I just taught a two day in-person corporate training class that was a basic introduction to cloud development and databases for software developers. This class used Amazon Web Services (AWS), MySQL, MongoDB, and Java 8 for the core technologies. We built a microservice web application with the Spark microframework for Java that provided a RESTful HTTP API, and then deployed it to Elastic Beanstalk.

There was also a fair amount of Python, which is always a fun language if everyone knows it.

It’s also always fun to update courses and see what has changed over the course of a year. The biggest changes were to the S3 web interface (switch back to the old interface if you want to remember how it was), and to Elastic Beanstalk’s getting started landing page (which has about three or four different states). Other things barely changed, like MySQL Workbench and Spark Java. Of course, if everything stayed the same, teaching wouldn’t be nearly as much fun!

Hackathon iOS Development

ATX Hack for Change: Volunteer Recognition App for Austin Pets Alive!

Austin’s no-kill animal rescue organization, Austin Pets Alive! had the honor of being selected as one of the possible projects for the ATX Hack For Change at St. Edwards University on June 2-4, 2017. My wife Cheri and I ran into one of the organizers at OSCON in early May, and we were able to submit a volunteer recognition app project that APA! needed, but hadn’t developed yet.

Austin Pets Alive! brought a team of hackers (Cheri Linwood, Beth Qiang, Walter Moreira, and myself), along with two dogs (Nimbus and Shorty). Nimbus and Shorty didn’t contribute much in the way of code or ideas, but they did provide puppy power for the hackathon.

As for the technical details – the volunteer recognition app uses Swift for the native mobile app on iOS, and Firebase as the back-end server for everything (Firebase Auth, Storage, Database). Check out the MIT-licensed source code here on my GitHub at This was the result of about 12 hours of coding over the weekend. One of my big goals was to find a visual designer at the hackathon, but they were few and far between, so I did the visual design myself. Luckily, APA! has pretty strong colors, so that makes up for a lot.

UT Austin

Another Spring Semester UT Apps Class Done!

Every year, I get the privilege of teaching a class at the University of Texas at Austin (with Robert Quigley) where the students get to decide what mobile application project they are going to bring to life, and how they are going to design, test, build, and market it! This is a really creative class that is completely team-based around one project. We split the semester up into two to three week sprint cycles, where the students set their goals and give a short status update presentation. We also tell all the students that they have to submit their apps to the Apple App Store by April 1 – in time to get them approved for the big Demo Day at the end of April.

This class combines journalism and computer science majors into small teams. The computer science majors typically do the programming (in Swift), and the journalism majors film and edit videos, do graphical design, blog about their projects, and become active on social media.

I’ll let the students tell the story of what they did through the whole semester – they blog on UT Apps Class Blog

I always look forward to this class – I’m glad so many of our students get a chance to learn how to work on a team and ship a product. Here’s to next year!

Building Mobile Apps iOS Development iPhone Development Training

Write your first iPhone App using Swift 3 and XCode 8

I’m creating a tutorial series on creating iOS apps from the ground up. Take a look at the first video, it will get you started programming iPhone apps even with no experience. I’ll be exploring this more on, if you want to follow along there.


Led three week corporate training for new graduates

I’ve been doing more training, teaching, and documentation projects recently, and it’s been a lot of fun. In July, I led a three week on-site summer technical leadership program for new college hires. The training focused on Amazon Web Services, building APIs as microservices (and deploying them), relational and NoSQL databases, and test-driven development with Java.

I’ve given the AWS, building APIs, and databases training as a two-day class now to motivated students, and it’s been really fun – I’m constantly learning new things as I go when it comes to teaching the material. Not necessarily on the subject material, but on the questions the students ask, and more importantly, where they get stuck.

This wouldn’t be as effective if I wasn’t taking on these types of projects already, so I am continuing to do software development as well. Otherwise, I could easily end up with stagnated skills, teaching say, Objective-C, until the demand for that type of thing goes away. Instead, by taking on projects using Swift for iOS development, it backs up my ability to teach a class that uses Swift.

Phonegap Twilio

Twilio PhoneGap Plugin Updated to version 1.0.5

Recently, Cordova added the ability to require Android libraries as Gradle dependencies. This helps with projects that can share dependencies, as well as saving a manual installation step. Because of some user-reported conflicts with other Cordova plugins, I updated the Twilio PhoneGap plugin to support Gradle installation of the Android support v4 library.

Check out the latest here – I also need to do another compatibility round of testing with the latest Cordova and Twilio libraries.

Node.js Talks Uncategorized

Building an API with Visual Studio Code and Node.js

At the April Austin Microsoft Developer Meetup, I gave a talk about using Microsoft’s Visual Studio Code to build web applications and API’s with Node.js. I also showed everyone how to quickly and easily deploy those Node.js web applications to Microsoft Azure’s App Services.

We used both Express and Hapi to build web applications – one was a simple Hello World web application, and one was a simple API that returned meetups as JSON.

This was a fun presentation to give – there was a lot of discussion with the whole group, as we talked about some interesting areas of Node.js, Azure, and Visual Studio Code – for instance, we found out that VS Code has support for conditional breakpoints for Node.js (right click on the breakpoint, select edit, and then set your condition), and we spent some time digging through the Azure Portal for logging.

iOS Development MapRhino

MapRhino Updated to 1.0.3

My “Are We There Yet?” app for kids on road trips, MapRhino, was just updated to version 1.0.3.

This latest version provides a fully responsive user interface across all sizes of iPhone and iPad, so that you can see more on your screen on the iPhone 6 Plus than on the iPhone 4, 5 or SE. If you’ve bought your kids that 12.9″ iPad Pro they’ve been asking for, they’ll see a lot bigger map on that device as well! Ok, most people certainly won’t do that, but now it has nice support if they do.

In addition, the maps have been upgraded for better offline access, and the app now requires iOS 9 to support all of the latest features.

Try it out and let me know what you think!

Android iOS Development Phonegap Twilio

Twilio PhoneGap/Cordova Plugin Updated to 1.0.4 Support

For those of you using the Twilio PhoneGap/Cordova Plugin, I have just updated with Marco Padillo‘s pull request to fix a deprecated Cordova iOS method that was preventing compiling with the 4.1.0 version of the Cordova iOS plugin.

I’ve tested out the plugin with the latest Twilio Client libraries, and everything is great except on the Android side with Marshmallow – the latest Twilio Android Client SDK supports the new runtime permissions, so I’ll need to integrate that and test with my Nexus 7 for Marshmallow support. In the meantime, just target API 22 on the Android side.

Books iOS Development

New Book! Building Mapping Apps for iOS With Swift

I’m working on a new technical programming book – Building Mapping Apps for iOS With Swift. Many of my UT app teams are working on map and location based apps, and all of them are using Swift as the language for their iOS apps. The first chapter is written, which is always the hardest part of writing a book!

I’m publishing the book on Leanpub, so that you can get access to the book as it is written, and provide feedback as I go along. In the past, when I’d written technical books or articles, it’s a lot of work done behind the scenes, and then a 300 page book ends up on the shelves of the local Barnes and Noble. If we’re lucky, it will sell well enough that the publisher will invest into a second or third edition (like Beginning Hibernate/Pro Hibernate). With the Leanpub model, readers can get started immediately with the book.

Check out the preview book page here:

And sign up on the mailing list to get notified when the book is published. If you have any feedback on topics you would like to see covered, please contact me through this site, or at jlinwood at