Thursday, April 12, 2012

WindyCityGo and Philly ETE

After my public speaking debut at Ignite Where 2012, I flew to Chicago to give my first public tech talk at WindyCityGo, with an onward ticket for Philadelphia to speak at Philly ETE.

WindyCityGo

The first day of WindyCityGo was quite heavy on iOS development. Some of the talks went right over my head, since they tried to alleviate the pain in certain tools for building iOS apps, and I was not similar with the tools themselves. I was worried that other people would feel the same way for my talk, if they did not have an Android background.

My talk was scheduled for 9:30am the next day. There was some technical problems with projecting from my computer. Fortunately my slides were online, so we just switched to the computer already attached to the screen.

Before jumping into the slides, I polled the audience. I wanted to know how many of them uses an Android phone, how many have written an Android app, and how many have written iOS apps. To my relief a third of them have already written Android apps, so I knew they would appreciate the technical details I already put in my slides. To make sure the other two thirds wouldn't get too lost, I spent a few extra minutes on the first few slides, explaining the basics.

WindyCityGo was single track, with 15 minutes between sessions for speakers to get ready. I really liked that format. Everyone was in the same room, so I went around and introduce myself to tons of people. The flip side was that I was so busy talking that I forgot to take photos of the conference. Oh well. I will just put a slide with a monkey here to break up the paragraphs.

I used a lot of screenshots in my talk, since it was about Android layouts and I needed to illustrate how I applied various design principles. When I practiced my talk, the screenshots did not project well. The contrast was too high to differentiate the details. I really dreaded adjusting the contrast of the images one by one, but then I realized that I had HTML5 slides, I could just adjust the opacity with a CSS class. That had the additional advantage that I could adjust it live for different screens. I ended up not adjusting anything because WindyCityGo used flat screen TVs instead of projectors, but I was glad that I was ready to deal with it.

Here are the slides for my talk: Fluid Android Layouts. If you are curious about the rest of the conference, here is an excellent summary.

Philly ETE

I hanged out with some friends in the Chicago suburbs for the weekend, and flew to Philadelphia on Monday for Philly ETE. The conference organizers gave me a room in the conference hotel, which was super convenient. On Tuesday I went down to the ballroom for the keynote, and was shocked to see the number of people. It was a huge conference!

To warm up the audience, I asked people to move to the front of the room. No one actually moved, so I joked that one of the slides had a really complicated flowchart, and they could not blame me of they could not see the details. I made fun of the back of the room a few more times during the talk, and people laughed, which was great! I love it when my audience react. A nod, a smile, anything to indicate that they were paying attention.

ETE stands for "emerging technologies for enterprise", so this is a much broader conference than WindyCityGo. As a result I tried to stay high level on my talk, aiming to provide a framework for thinking about mobile caching. This was all fine and good, except I could not talk high level principles for 45 minutes. To be frank I was panicking as the conference date drew close. I used Monkey Write as an example for applying to principles, so I thought, hey, I could just include more examples! It worked out really well, because the case studies demonstrated the nuisance in implementing the various caching tiers.

Conclusions

I had a great time giving these two talks! I always worried that people will be bored, but as long as a few people nod and smile, I know somebody is learning something, and that energizes me to no end.

Here is a summary of the things I learned while preparing and giving these talks:

  • Put your slides online.
  • Poll your audience to gauge background knowledge level. Adjust your introduction accordingly.
  • Provide concrete examples.
  • Be lighthearted. They won't laugh at all your jokes, but when they do, it's super rewarding.

I will be giving the mobile caching talk again at the Twitter Engineering Summit on April 17. Come and say hello if you are in the San Francisco Bay Area!

Wednesday, April 4, 2012

Book Review: Confessions of a Public Speaker

I got a postcard for a free O'Reilly ebook at some event, and it was sitting on my desk until I read the sample chapter for Confessions of a Public Speaker by Scott Berkun. A good speech is both informative and entertaining, and Scott seems to be able to do both, so I used the postcard to get the ebook.

I finished the book flying from San Francisco to Chicago, on my way to speak at WindyCityGo and Philly ETE. Some of the advice are quite general, like arrive early to get used to the set up, but I picked up quite a few new tricks:

  • The energy of the room, and hence your speech, depends on the density of the crowd, not the number. If there is not enough people to fill the room, gather them to the front and center to make a tight crowd.
  • Set the pace by telling people your outline in the beginning. I used to think this will make the talk boring by killing the surprise element, but then I realized that my surprises usually only span over 2 slides, so a high-level outline shouldn't do any harm. The outline helps people orient themselves, and knowing pace helps people stay focused.
  • Finish early. People who are interested to hear more from you will stay around, the bored ones will move on. Everybody is happy.

I was on chapter 9, and I could sense that the book was going to end soon. But according to my Kindle I was only at 55%. Turns out there was a rather long appendix to the book, with tons of practical tips and funny anecdotes. My favorite part is the diaster stories from various speakers. Someone realized last minute that he was expected to lecture in a language that he does not speak. Someone got a tiny audience because Linus Torvalds was speaking next door. Someone's tie caught on fire. The stories are so funny that I had to suppress my laugh so I won't disturb the guy sitting next to me on the plane.

I love that part because it lets me know that even if my speech goes wrong, worse things can happen. More importantly, the anecdotes reinforce my belief that storytelling is the core of all communications, writing and speaking alike. It's a bit hard to tell stories in a technical talk, so I find myself showing lots of real-life examples to illustrate high-level principles.

I give this book 5 stars out of 5. It's funny and informative, and as an aspiring speaker I am both inspired and educated. Recommended.

Going on the speaking circuit

Did you know that the term "speaking circuit" originated in 1800s, when it was literally a single circuit around the country and speakers like Mark Twain travelled along it on horses? Today the speaker circuit is a figure of speech (pun intended) as there are so many different way to spread information, and it would be silly to put all the speakers on the same route.

My personal speaking circuit started at San Francisco last night, when I spoke at Ignite Where. I was invited last Wednesday, and needed to come up with a topic quickly, so I went meta and talked about talking!

Ignite has a very rigid format: 5 minutes with 20 auto-advancing slides, 15 seconds each. To prepare for the talk, I made slides out of little pieces of paper and timed myself with a wrist watch.

It was hard to get the timing right. Sometimes I would go under, sometimes I would go over. The worst was when I went under and marched ahead into the next slide, and misremembered the sequence. I practiced maybe 6 or 7 times, and concluded that I would not transition to the next slide until the auto advancing happened. That way I know for sure what is on the next slide!

Ignite was at 7pm last night. There were 12 speakers, and we talked back to back. I was really, really nervous. Normally I am fine rambling on for 20 or more minutes, but the auto-advancing slides made me feel out of control.

I was second to go on stage, and the talk actually went pretty well!

A few people approached me today, telling me that they loved my talk. Not bad for my public speaking debut! Tomorrow I'm flying to Chicago to speak at WindyCityGo, and next week I will be in Philadelphia for Philly ETE. Both of them are tech talks, so they won't be as entertaining. But I hope people will love them just the same!

Friday, March 16, 2012

Monkey Write: From Hackathon to Market

AT&T recently interviewed me on how I built Monkey Write from a hackathon prototype to a full business, which got me thinking about the wonderful adventure I've been having in the past few months.

Going solo

When I left Google to go to startups, I did so because I wanted to grow beyond coding, to get a holistic understanding of how products are built. Great products need more than just technology. What is the secret sauce? It took me a year and a half as a startup employee to realize the truth: there is no secret sauce. There are theories and conjectures, but the only way to build a great product is to experiment. With your own hands.

Even in a very small startup, I was only marginally involved in product development, since my primary role was programming. After a lot of thinking, I decided I wasn't getting what I wanted out of my startup job, so last September I did the crazy thing: quit my job. Without the next one lined up. Or an idea what I was going to do next.

The idea

After I left my job, I attended many tech events. The theory was that if I feed enough data into my brain, the subconscious part would eventually figure out something. I was rather surprised that my business idea came out of something relatively straightforward: a hackathon.

In late October I went to the AT&T mobile hackathon in San Francisco. There were many sponsored APIs, and I chose to write something for the HTC Pen because I wanted the prize: a JetStream tablet. The funny thing is that the constraint actually sparked my creativity. Instead of everything under the sun, I focused on making a compelling app that uses the pen stylus, and readily came up with the idea of Chinese writing. I hacked a prototype in 6 hours, presented, and people loved it.

Building the product

The positive feedback at the hackathon encouraged me to explore this as a viable business idea. It took a bit of time to convince myself. The tipping point was the moment I came up with the freemium business model: have a free base app with a limited number of characters, and generate revenue with module downloads. This is in line with my initial goal of growing beyond coding. Now that I have a reasonable business model, I feel much more comfortable writing the code.

The major technical hurdle was gathering the character data and devising a grading algorithm. It took me a month to figure that out. Once that was in place, I knew I had the technology to power the app. I built out the rest of the app, and started user testing. It was super helpful to put the app in front of fresh eyes, because the initial UI was not obvious at all. It took me another month to refine it.

At this point the app was functional, but ugly. I told everyone that crossed my path that I needed a graphic designer, and ended up hiring a friend of a friend. I have never worked with freelancers, so it took a while to spell out my requirements and expectations. The graphic design took another month, but it was totally worth it. The beautiful artwork made the app much more engaging.

Launch!

I gave myself an arbitrary deadline to launch in January, but it did not become real until AT&T approached me with a marketing opportunity. They invited me to demo my app at their Chinese New Year celebrations in SF Chinatown on Feb 11. I wanted my app to be available on Android Market by then, which meant I had a week to finish up the app. The tight deadline really helped me prioritize and implement only what I needed for launch.

Next steps

The launch was just the beginning. I am implementing lots of improvements to the app while doing business development at the same time. I am reaching out to local Chinese schools to see if they would be interested in custom workbooks that aligned with their course materials. I have never done business development before, so this is a bit daunting, but also very exciting.

I am very happy with my decision to go solo. I enjoy the creative freedom immensely, and I am learning so much. There are times when I got overwhelmed with all the different hats I'm wearing, but it brings me so much joy to see people play with Monkey Write and simply cannot put it down. It is a lot of hard work, but also very gratifying.

Sunday, March 11, 2012

Android Class in June

Update: The class has been moved from April to June.

I'm teaching an Android class at Blazing Cloud in San Francisco starting June 19.

Title: Android for Programmers

6 sessions, Tuesdays 7pm to 9pm
June 19, 26, July 3, 10, 17, 24, 2012

Learn the ins and outs of Android development with hands-on examples! Working knowledge of Java is required to take this class.

Session 1
Lesson: Android basics: Activity life cycle, layout by xml, etc.
Lab: Modify Hello World to understand how it works.

Session 2
Lesson: How to add UI elements and attach app logic. How to store data.
Lab: Write down the location of your car. You type "Level 2, Area C" in a text box, and click the save button. You'll learn how to get the text out of the text box, save it, and retrieve it when you open the app again.

Session 3
Lesson: How to use Intents to communicate with other Android components.
Lab: Add a picture. Use the camera to take a photo of your car, and store it alongside the note.

Session 4
Lesson: How to access system services.
Lab: Add GPS location. Get the latitude and longitude to link it to Google Maps.

Session 5
Lesson: How to integrate with external libraries.
Lab: Add Map View. Embed a map in your app to show the location of your car.

Session 6
Wrap up. Summary of what we did, how everything relates to each other, notes on testing, pointers for further studies.

The class is called "Android for Programmers" because we are going to dive right into Android, and you should be comfortable with Java.

Sign up on the eventbrite page if you'd like to attend!

Friday, March 9, 2012

LAUNCH Festival

I attended LAUNCH Festival, an event for companies to debut their product and seek angel investment. Since I was not looking for funding, I did not have any specific goals for the conference. All I wanted was to meet some cool people and have a good time. I am happy to say I had an awesome time!

LAUNCH made great use of the conference center space. It was divided into 4 areas: main stage, office hours, demo tables, lunch area.

Main stage is where the pitching happens. Startups come on stage to wow us with their presentation, judge give feedback, and award seed funding at the end of the festival. It's a great place to hear how entrepreneurs turn ideas into products.

If you want more interaction, head to office hours. There was a great lineup of entrepreneurs and VCs hosting 45 minute fireside chats, handing out advice and answering questions. I really like the intimate setting.

Besides main stage and office hours, you can also get on your feet and wander around in the demo table area. There were startups from all over the world showcasing their products. I had a great time chatting with the founders.

Last but not least, the lunch area. People sit down to catch up with email, take a quick bite to re-energize, and chat with whoever happen to be at the same table. This is where serendipity works its magic. Many times I came just to take a break, and ended up having a wonderful conversation.

One thing that strike me was the geographic diversity of the startups. There were founders from Canada, France, Germany, Netherlands, Croatia, Hong Kong, Kenya etc, all flocking to Silicon Valley to jumpstart their companies. I feel really privileged to live in the mecca of high-tech entrepreneurship.

Thursday, March 8, 2012

Sketchnotes class

I always admire people who can draw. When I met Alexis Finch at Women 2.0 PITCH conference, I told her that I adore her sketchnotes, and wished I could draw too. She said, "come to my sketchnotes class!" That's what I did tonight.

Our first exercise was to think back to our elementary school days, and re-created the doodles we drew on our notebooks. That was easy - I loved twisting ribbons around a pole. And block letters.

That was a great warmup because it reminded me that, hey, I doodle too!

Next Alexis shared some tips and trick to draw fast. She asked us to practice faces.

And then we tried adding bodies and limbs to draw people, picked our special animal, and tried various shapes and objects.

We had a quick lecture on the different styles on sketchnoting, and what it is good for. Then it's time to put everything to use. Alexis played us some podcasts and asked us to take notes. We did two. The first one I was so overwhelmed that I did not really have any bandwidth to understand the speakers until half way into the podcast, which meant my pictures did not really carry any meaning. The second one I made sure I jot down words that made sense, and only fill in the graphics when I felt comfortable with the pace.

The podcast was about the periodic table. It was actually pretty cool.

I was especially excited when I heard that Dmitri Mendeleev left some gaps in the periodic table because he knew some elements were missing. I knew how to draw tables, and I knew how to represent gaps!

That was when I had my epiphany. My repertoire of shapes and objects is quite small right now, but when I know how to represent something as a picture, I can actually draw it fairly quickly. I decided that I will continue to take notes by writing, but look for opportunities to illustrate. I may start with 90% words 10% pictures, and pick up more ways to depict ideas and expressions as I practice more.

I'm very happy that I came out of the class with a game plan to get more comfortable with drawing and doodling. Thank you so much, Alexis!