Connecting the Business and Pleasure of Flying

Recently on May 31st, I completed 5 years at Panasonic Avionics. This has been the longest I’ve worked for one company, so I decided to write something about it.

Before I joined Panasonic, I had worked for 2 startups. The first one was a networking solutions firm where I mainly wrote Eclipse RCP applications for 3 years and the second one was a file sharing and video broadcasting startup where I worked on Adobe Flex applications for about a year. I enjoy working on the user interface of different applications and I’m glad I was able to continue to do that at Panasonic.

Working for an aviation company has been a good learning experience, the business of providing in-flight entertainment comes with its own set of interesting challenges. I was hired to work on the Ground Based Systems team which is responsible for providing web based solutions such as analytics for various passenger’s flight data, shopping catalogs management, creating surveys and advertisements and many more. Its a small team comprising mainly of PHP developers and a few front-end engineers.


Cappuccino Machine

For the first 3 years, I worked on an application that was designed to be used by airlines for building their on-board websites. These are the default websites you see when you open a browser on the screen in front of your passenger seat or when you connect to wifi on your personal device and try to access any site. The airlines use these sites for marketing and to display information such as the time to destination, weather, news, advertisements or to sell internet access on the flight.

The front-end of the application was a WYSIWYG editor, something similar to Wix. It was built using the Cappuccino framework. The decision to go with Cappuccino was made before I joined the team. I’m told it was chosen initially to just make a prototype but soon the prototype evolved into an actual product and although not everyone on the team was happy with the choice, they had to continue with it due to time and resources constraints.

Cappuccino is implemented using a programming language called Objective-J, which is modeled after Objective-C and built entirely on top of JavaScript. So its the first choice for any Cocoa programmer coming to the web, as you can write the front-end of your web apps without learning any HTML, CSS or Javascript. There is also an Xcode extension for Cappuccino that allows you to build your user interfaces in Xcode and convert the output files to Cappuccino ready UI archives. It has a small but active community.

There is something to learn from every programming language and framework. Every community has a different set of tools, mental models and practices for solving similar problems. I for sure learned a lot from Cappuccino’s ecosystem and its unique approach of adopting and applying Cocoa’s established design patterns to the web.


Ember Tomster

The last 2 years I’ve been working mainly with the Ember JS framework.

Around the summer of 2014, we started work on the next major version of our application platform. There are around 25 different applications that run on top of this platform providing content, configuration and reporting solutions. To provide a better user experience and also to just get with the times, the team decided to move away from the traditional architecture of server rendered pages to a more responsive SPA solution. Everyone saw value in having the backend just provide APIs that different clients could make use of.

After about a month of evaluating various Javascript frameworks, we finally decided to go ahead with Ember JS. The primary reason for choosing Ember was its ‘convention over configuration’ philosophy. It’s nice to have similar structured code when you have developers juggling multiple apps. One thing I like and admire the most about Ember JS is its community. I’ve found it to be very welcoming and supportive. I’ve enjoyed attending and speaking at the local meetups and hopefully will also attend its annual conferences from next year onwards. It has also helped start my small open source contributions and in some ways my active engagement with the tech community through Twitter.

The initial learning experience was an uphill battle as I was not just learning Ember but also the basics of standard front-end web development. A lot of things I had learned from my experience with Java, ActionScript and Objective-J didn’t apply to the crazy world of Javascript. Plus the Javascript’s ES5 to ES6 transition and Ember’s 6 week release cycles made it more challenging to stay up to date. But it has been fun learning and building apps that require you to rewire your brain. The team now has around 5 different Ember apps on production and the plan is to transition the front- end of another 10 apps to Ember over the next one year.


Reading

With the ever changing nature of software development, most of the learning these days happens on the web through official guides, blog posts and videos. But I did manage to read a few books in the last 5 years and following are the ones that have had the most influence on my day to day work:


Podcasts

I started listening to tech podcasts while driving around 3 years back. They’ve definitely been a great source of learning. Following are the ones that I’ve enjoyed the most:


Future

Lets see what the next 5 years have in store for me. Its definitely an exciting time to be a web front-end engineer. The landscape has changed so much over the last few years and seems like the trend will continue over the next decade as the web continues to evolve to provide a more native-like user experience.

Thanks for reading!