Clio’s Road to Android: The Beginning

Cliolab - Road to AndroidThere’s a saying at Clio: “draw the fucking owl.” Last year, for me, that owl was an iOS app. This year, it was the Android app. From absolutely no Android app development experience to leading a team of six amazing product members and building a full-spec practice management app, it’s been truly an amazing journey.

On September 22nd, when I witnessed the launch of the Android app at the Clio Cloud Conference in Chicago, I was absolutely amazed at how everything came together.

The Beginning

It’s hard to believe that it was only eleven months ago that we started the project. I was definitely nervous. It wasn’t really because of the new responsibilities that came with being a team lead; it was because I had no experience with Android, yet I had to lead a team of developers and make a million decisions. I powered through a handful of Android development books and met with a few key players in Android development communities in Vancouver. I want to thank Jerome from Amazon, Mike Worth, and Jeff Stautz from HootSuite for giving me advice and tons of tips. I also went to a local mobile app development shop, SteamClock Software, and arranged a workshop; in two days, we covered topics like multi-threading, UI implementation, animations, best practices, and some major differences between iOS and Android. These were just some of the steps I took to get into the Android game.

Our team started with one product manager who oversaw both Android and iOS as well as API, one UI designer/developer, and three developers including myself. We added another developer and a new mobile QA analyst. Hiring was/still is challenging because there’s a lot of pressure to make a decision with just a few hours of interviewing, but I had to make a call. Criteria for a talented software developer remain consistent regardless of the field, but I’m definitely a lot more comfortable interviewing now with the experience and knowledge I’ve gained.

These are some of the things I look for from candidates: a deep understanding of the Activity and Fragment lifecycles, various issues with a runtime configuration change, consequences in dealing with a runtime configuration change in a variety of situations, threading, and processes, UI view elements, database knowledge, Java skills, experience with major HTTP libraries, etc. For a QA analyst, I’d like to see experience in Continuous Integration systems and configuring with mobile environment, various integration testing tools for mobile app development, and some programming experience.

It comes down to: “if you have to plan for an Android app release and need to have support for thousands of devices, multi-OS versions, and a variety of screen resolution sizes, what is your plan to meet our quality standard with these conditions and being able to confidently ship an app at a release date?” We’ve been working on that since the beginning and are still trying to get it right. If you can give me a solid answer for this question, you’re all set. Come chat with me.

Clio Customer Notice: Shellshock

On Wednesday September 24th, a major computer security flaw officially known as CVE-2014-6271 was released.

Dubbed “Shellshock,” it’s a vulnerability that allows hackers to send commands to a computer’s operating system (which is what a “shell” does). What devices are affected? Potentially, Internet-powered devices that have the problematic software package installed—these could be like Wifi routers, remote webcams, and even appliances if they are hooked up to the Internet.

Removing String Literals in SQL with AREL

SQL Areal Banner Photo

With great power, comes great responsibility.” ~Voltaire, or Franklin D. Roosevelt, or maybe Spiderman’s uncle.

This line runs through my mind EVERY time I write raw SQL in my Rails code. ActiveRecord does some really nice stuff for us, and is really flexible, but some of us still can’t
get away from the SQL fragments in our queries. How many of you have done something like this?

Quality Control vs. Quality Assurance

Apples and Oranges

When I joined Clio in October 2013, I was excited for a few reasons (This isn’t even counting the free flow of beer in the lounge). I knew Clio had a solid track record of delivering an awesome product with frequent updates and new features. This alone was a good sign, but getting a chance with my fellow QA team to establish a QA guild was a great opportunity to make deploys more stable, reliable, and less stressful! It’s no mystery that QA does a lot of testing, but often we’d get questions about how we do it. To help explain, I like to say QA involves both Quality Control and Quality Assurance. Often these terms are used interchangeably, but they actually mean different things.

It All Starts With a Sketch

It all starts with a sketch banner

I’ve been sketching ever since I could remember. Whether it was on a napkin at a restaurant or a portrait-sized piece of paper, I would doodle whatever was on my mind. Sometimes it would be a cartoon dog, other times a graffiti tag, or even three-dimensional shapes. Most of the time it wasn’t anything in particular; I just wanted to put pen to paper and make something happen. For me, sketching was something that allowed me to get whatever was on my mind into a form that other people could visualize.