Sunday, July 10, 2016

Moderating my first panel - Ask an Android Developer



Every month at Android Alliance which I help organize, we have a monthly speaker and a few lightning talks. Someone in the Phillydev Slack group's android-philly channel 
suggested doing a panel for the June meetup.

I have been a panelist before but this time I wanted to try moderating. To prepare for that, I googled how to be a moderator and found Cate Huston's blog on moderating as well as this book - The Eloquent Woman's Guide to Moderating Panels recommended by Cate. The book is a quick read on moderating panels and has several pointers on how to moderate effectively.  

Of course, a panel is only as good as its panelists and moderator. For the panelists, I reached out to Corey, Travis, Nick & Arpit.  

Here are some things I set out to do as a moderator:

Set the tone

When we start an event at Android Alliance, we go around and ask everyone to say their name, what they do and a fun fact about themselves. This usually makes it an informal atmosphere and lbreaks the ice quickly. After we did the intros, it was the panel's turn. I introduced myself and then let the panelists introduce themselves but with an extra question added to it - How did they get started in Android? By asking this, every one on the panel was able to state their expertise and how long they had worked in the field.

Stick to a theme

Another suggestion from Denise's book was to use a theme on the panel. In  my early draft of possible questions to ask, I touched on comparisons between Android, iOS & Hybrid and several other cross platform topics. Ultimately, I had to pare it down to a simple theme - Android only since this was an Android meetup and most people attending were interested in knowing more about that field.


Listen to the audience

One of the first questions I asked at the panel were how many people were new to Android versus how many had been working on it for a while either professionally or on the side. Since the split was 50/50, I asked questions that made sense to beginners as well as experts.

As a moderator, I also tried to recap as much a possible after a question was asked and before we moved on to a new one. I also asked the panelists to explain acronyms and concepts(MVVM, RxJava, Retrofit) as quickly as possible.  By doing this, everyone in the audience had a basic understanding of what we were talking about.


Be prepared

I always like to be preparedAs Denise mentions in her book, a moderator controls the flow of the panel and has a tougher job than a keynote speaker.

Keeping time is very important for a moderator. Sometimes panelists or audience members would speak too long while answering a question. To make them move on, I used some suggestions from the book which were to interject politely by saying "Let's take this offline", "Let's move on" and by leading the applause to end the panel. By doing this, I was able to ask most of the questions in my list and keep it within an hour. (Shoutout to Corey for suggesting paring down questions to 10 so that we could get through them in an hour)

I also shared questions with the panelists before hand so that they knew what was coming and also added a few hot button topics like "Why fragments?" knowing very well that there were panelists with opposing views.

For those interested, the list of questions I asked are at the end of this post*

Have a Code of Conduct

As with any event I organize, I always announce our Code of Conduct and always ask permission before recording or photographing anyone.


Pics or it didn't happen!


Picture credit: Jibreel Powell
Picture credit: Jibreel Powell


---

Would I do this again?


Absolutely! Overall, the turnout was great (2x more than when we have regular speakers) so I hope to organize another one soon. Also shoutout to all the panelists who agreed to do this at such a short notice.

As with anything new I try, there's always something new to learn. 


Some things that could have been better:

  1. Microphones: I had thought of this earlier but did not have the time or resources to get together in a short period of time. Some people at the back had a hard time hearing the panel. 
  2. Higher chairs or a platform: So that people could see us from where they were sitting.
  3. Live tweeters: Both of us organizers were busy being part of the panel so we didn't have time to be more active on social media.
  4. Better lighting: As you can see from the second picture, it was hard for people to take clear pictures of the panel with the sun setting behind us.

Some things that went well:
  1. Q&A: The audience was very involved in the panel and asked some great questions. Many of them stuck around to ask questions after the panel.
  2. Opposing views: I'd asked panelists to hold on to their thoughts by sharing questions beforehand so that their true feelings about a polarizing topic would come forth at the panel.

* Questions

Biography

  1. Everyone has a “how I got started in Android” story. What is yours?
Tools
  1. What are your frequently used tools and how do you use them?
  2. A lot of us on this panel have dealt with architecting an app from scratch. Where do you start and what processes, frameworks and libraries do you use?
  3. What libraries do you use most often?
Beginner
  1. What should a beginner Android dev learn in your opinion?
Community
  1. In your opinion, is there a barrier to entry for Android especially for newcomers? How can we be more inclusive as a community?
  2. How do you as an Android developer contribute to the community?
What’s new
  1. How do you stay up-to-date with the latest in Android development?
Hot button topics
  1. Why fragments?
  2. Some of us on the panel are proponents of Test Driven Development. What is your favorite testing framework and why do you love it?
  3. Android as we all know is available on several screen sizes. What do you say to people who say Android is fragmented?
  4. What is your least favorite thing to do in Android?




Tuesday, May 31, 2016

AnDevCon Boston Ask Me Anything


Recently, I was interviewed in a Hangout on Air for promoting my upcoming talk on Material Design implementation at AnDevCon Boston. You can find the entire interview along with some of my answers on their site.





Prior to going live, I asked my friend @chiuki on tips for doing Hangouts on Air. You can read her suggestions on her blog. Some of the things I learned from my experience were:
  1. Make sure you have a non-distracting background.
  2. Post on social media about the hangout before you go live.
  3. Get on the hangout at least 15 minutes early to deal with technical difficulties if any. Our hangout on air was very smooth because I got on about 20 minutes early and we made sure the audio and video were fine.
  4. Get to know your interviewer: Mike from AnDevCon Boston and I talked to each other about our recent Google I/O experience before going live.
  5. Have some talking points written down ahead of your interview so you don't blank out when you are asked questions.
  6. Thank everyone for being there and listening to you.

Things I should have done:

  1. Positioned the camera at a better angle so that I would look at the laptop camera directly instead of looking down at my screen
  2. Used pauses instead of saying umms and you knows. That will hopefully come with more practice :)

Thursday, May 26, 2016

GDG Summit and Google I/O 2016 Recap

Last week I was in San Francisco and Mountain View for two conferences - Global Google Developer Groups(GDG) Summit & Google I/O 2016. 

Day 0: GDG Summit

The annual global GDG Summit is held every year before Google I/O. GDG is a community run group for Google technology enthusiasts. You can learn more about the Philly group here. The global summit  is where GDG organizers from all over the world who are attending Google I/O gather and catch up with other organizers. Some of the fun things we did were the sharing table before the summit and a Firebase, lego and Arduino workshop at the summit.



Night 0: Women Techmakers Dinner


The day before Google I/O, we had a dinner hosted by Women Techmakers which helps women in tech become more visible. 






Day 1 to 3: Google I/O

Google I/O is an annual developer conference that celebrates Google technologies. This year, it was held in Shoreline Amphitheater in Mountain View for 3 days.


This was the first time I tried sketch-noting at a conference which is a great way to retain information instead of writing notes.

A lot of the talks and content are already available online on YouTube so I'm going to focus on the things that stood out to me in the keynote and sessions:

Google


  • Assistant - a conversational assistant that is available across all Google products like Hangouts, Home etc
  • Home - a device that recognizes your voice and is powered by Google Assistant
  • Allo - a messaging app with smart replies
  • Duo - a video conferencing app with live video of the other caller before you pick up

Android


  • Instant Apps - lets a user open up a part of your app without installing it from the Play Store
  • ConstraintLayouts - a new Android layout still in preview
  • Improvements to Material Design
  • Improvements to Google Play Store Beta testing
  • Wear 2.0 which brings other app functions on your watch face
  • Tons of improvements in Android Studio Preview 2.2
  • More features in Android N including VR

Firebase

Mobile-backend expansion to support notifications, analytics, crash reporting etc all under one roof.

Virtual Reality 

Daydream - a mobile virtual reality platform with headsets and controllers coming to Android N.

Fun fact I learned in a VR controller session: Do you know why Google Cardboard has no head straps? Because your head moves faster on its own and holding Cardboard up with your hands makes sure you move your head slowly to experience VR better.


Nights 1 and 2

Google had some fun after hours concerts featuring Charlie XCX and Kygo on Night 1. They also had Arcades, Concerts and other fun stuff on Night 2.


And to end it all, here's something I always look forward to at I/O: Code Labs!





















Wednesday, April 6, 2016

RecyclerView on Android

Recently I gave a 10 minute lightning talk at the Android Alliance meetup about RecyclerViews on Android. The talk was aimed at Android developers at all levels. I decided to talk about this since the recent Android Study Jam for beginners that I helped run did not touch upon this topic and almost all Android developers have to make use of this ViewGroup sooner or later.

Since the Recycler View offers 3 built in-layout managers, I built a sample that showed how to lay out views either using a LinearLayoutManager, GridLayoutManager and a StaggeredGridLayoutManager.


I also talked about how it makes sense to only use a RecyclerView if you have a large dataset of items. If you just want to show a grid of say 5 items, maybe a GridLayout is a much better option.

Code sample is available at RecyclerViewExample.

Slides are available at RecyclerViewSlides.

More information about RecyclerViews is available in the Android documentation.

Sunday, March 20, 2016

Running our first GDG Philly Android Study Jam

Recently I joined the fantastic team of developers who run Google Developers Group Philly (GDG Philly), an umbrella organization that includes Android Alliance Philly and GoLang Philly meetup groups. Google Developer Groups or GDGs are community-run groups that are for developers who are interested in learning Google technologies.  



The first thing we organized in 2016 was Google Developers Groups Study Jams, a free series of global, community-run, in-person study groups. We ran an Android Study Jam for 5 weeks which used Udacity's Android Beginners curriculum for newbies as well as experienced developers.


Image Credit: http://developerstudyjams.com/

Since GDG Philly focuses mostly on Android & GoLang topics, we didn't have to go too far to find facilitators. Three of us organizers - Arpit, Corey & I are Android developers so we split the teaching part into 3 sessions that each of us would lead. The Study Jam ran for 5 weeks with a two week break between Session 4 and Session 5 so that attendees could focus on working on their final project which they would present on Demo Day.


Game plan


Sessions 1, 2 and 3 on Feb 8th, 15th and 22nd

Our plan was to have facilitators be one lesson ahead of attendees. Attendees were expected to go through lessons and practice sets before attending each session but only about 30% of the attendees would do so. We encouraged attendees to bring their headsets along so that they could use the time to quietly study and catch up with the rest of the class.

Session 4 on Feb 29th : Final project discussion

Attendees were expected to be up to speed with all 3 lessons and practice sets before class. The facilitator walked through the final project in class. The final project was an educational app that teaches users 5 new things about a topic.


Session 5 on March 14th: Demo Day!

Attendees were expected to have a working final project with deliverables. We asked attendees to sign up to demo their projects even if they weren't ready for it.

Slides from sessions are available here.

Takeaways

This was my first time running an event for GDG so here are my biggest takeaways.


Teamwork 

We had a strong core team. Arpit, Corey, Sam & I were present for most of the sessions so that attendees always had familiar faces that they could talk to. For Session 2, two of us facilitators were out of town so Corey & Sam stepped up to run it.

Involve the Community

We could only get the study jam up and running so quickly because we already had a lot of infrastructure in place. Most of us organizers work for or with companies that readily provide space and food on a short notice. Shout out to all the amazing companies for space and pizza.
Shoutout to Arpit, Corey and Sam for organizing, teaching and helping out.

Spread the word

The Android Alliance meetup group has 1000+ members. We tried to gauge interest in study jams by talking about it in the #android-philly channel in PhillyDev slack. We set up the event a week before it was to start. We didn't do too much outreach and spread the word by posting on Twitter and Google+. Going forward, we plan to set up events a few weeks in advance to give people enough time to RSVP. We also plan on working with other meetup groups in the area to involve more people from under-represented communities.

Have a Code of Conduct

We had a Code of Conduct from Day 1 which was adapted from Geek Feminism wiki. We mentioned it at the start of the event and in the meetup event page. We made it explicitly clear that harassment on any kind would not be tolerated and attendees had to treat each other with respect.

Give people time to mingle

We had planned to run the event from 6 to 8 pm and intended to start at 6 sharp. A lot of people were coming over right after work so we had to start around 6.30 pm. That way, attendees could grab food and get to know others who were all working towards the same goal - building their first Android app. It also gave the organizers a chance to get to know the attendees and their programming experience.

Have a game plan for facilitators

All of us facilitators reviewed the material before hand. The first three sessions were run by me, Corey and Arpit respectively and we all approached it in our own way. We used a mix of lectures, demos and workshops.

Prep work for facilitators and teaching assistants

There are a lot of things to do when you run a Study Jam. Catching up on hangouts to come up with a game plan, figuring out space and food, setting up events on meetup and Google developer events, sending sponsorship and swag requests to Google are a few of them. Our Study Jam plan was to have facilitators be one lesson ahead of attendees. Even though all our facilitators - Arpit, Corey & I had years of Android experience and Sam had gone through the Udacity Android Nanodegree in 3 months, we realized that teaching the basics of mobile development to attendees with some to no programming experience was not as easy as it seems especially since setup takes a lot of time and effort.

Prep work for attendees

We let people know that a laptop is a must for development. Many attendees were new to programming and didn't know that we would be diving into code right away. We did not mention that a laptop was a must for Session 1 but started mentioning it in the meetup event page after that. We also let them know that homework was a part of this study jam and that it was up to them to go through the practice sets. We also did a review of the previous session before moving forward at every session.



Setup is not always easy 

Running an Android app for the first time is easier on a device rather than an emulator and that's what Udacity suggests starting off with. Since many attendees did not have Android devices, we thought we would set up an emulator instead. However, we didn’t realize that setting up Android Studio and an emulator (Android Virtual Device) would take up so much time. The blank Activity generated by Android Studio when you first create a project has a lot of unnecessary default layouts like the CoordinatorLayout so we asked attendees to remove everything that they don’t need so as to get a simple Hello World application running.
We also assured people that the setup is the worst part (and it was) but it got us wondering about the barriers of entering mobile development. 


Encourage attendees to seek help from all sources

We asked attendees to create an account and track progress on the Udacity Android course for beginners. We encouraged them to post on StackOverflow, Udacity course discussion forums and the Google+ community for Android Study Jam students so that they could learn along with the thousands of students online.


Be available

We asked our attendees to reach out to us either through the Philly Dev slack, email or meetup comments. We had an impromptu Q&A session at the end of Demo Day where we talked about what attendees liked and did not like about learning mobile development and MOOCs in general.


Ask for feedback

We gave everyone 5 minutes to fill up a feedback form that could be viewed by Google as well as the organizers so that we could improve the Study Jam sessions for next time.


Have a Demo Day

About 25% of our attendees had final projects to show. We allotted about 5 minutes to each presenter so that they could talk about their app's inspiration and answer questions from the group. We also used this time to give out the swag that Google had sent us. Some of the app ideas in our group where an app that lets you make a decision in 5 different ways, an app that teaches music theory, an app that shows info about 5 famous K-Pop stars and an app that teaches Java 101 with code samples.

Take lots of pictures!

Ask if people are fine being photographed. If not, make them the photographers :)


Collage from Demo day


Wednesday, December 30, 2015

Taking stock of 2015



I was inspired by this post by femgineer to write my own post about acknowledging my accomplishments of the past year.

One of my 2015 resolutions was a continuation of the previous years' - Be more active in the tech community. This goal was big enough to try out different things so I pretty much said YES to any opportunity that came along.

2015 was my year of firsts. Here's my list of tech accomplishments in chronological order:
  1. First-time team lead at work
  2. Submitted my first abstract to a conference (and many more after that!)
  3. Wrote my first blog post
  4. Gave my first technical talk at the Android Alliance meetup
  5. Gave my first technical conference talk at AnDevCon Boston (and DroidCon NYC after that!)
  6. Hosted my first luncheon at AnDevCon Boston
  7. Was a first time panelist on Girl Develop It's A Day in the life of a Developer series
  8. Was interviewed for the first time on Youtube for Android Dialogs
  9. Gave my first non-technical conference talk at ElaConf
Writing this down inspires me to continue doing a lot more in 2016!

Image Credit


Sunday, November 29, 2015

My first non-tech talk at ElaConf


I gave my first non-tech talk at ElaConf Nov 2015 last weekend. ElaConf is a conference that empowers women in tech and its proceeds all go to Girl Develop It. Learn more about it at elaconf.com. Why do I call my talk non-tech? Because the talk does not feature any code and it does not feature any technical problem that I solved.

My talk was titled "Preparing for your first talk" but it's applicable to anyone who is preparing for any kind of talk - technical or otherwise. I was inspired to give this talk after writing this detailed blog post on how I prepared for my first big conference.

Some of my tips and tricks were very well captured by the wonderful artist who was sketch-noting at the conference as well as one of the attendees.





One of my suggestions was to wear a blazer to cover food spills. (True story: This happened to me at AnDevCon moments before I went on. My blazer saved the day!) A lot of attendees loved this and tweeted it out!







I wouldn't have been able to give this talk without the wisdom of the people who have done this before me so I'm listing all of the resources I have used over the past year:

Technically Speaking
Technically Speaking is a newsletter with information on call for proposals and public speaking, with a focus on technical topics by @chiuki and @catehstn.

Write/Speak/Code
Write/Speak/Code empowers women software developers to become thought leaders, conference speakers, and open source contributors.

Femgineer
Blog: Femgineer
Book: Present Book: A Techie's Guide to Public Speaking

Garr Reynolds' Prezentation Zen
Blog: http://www.presentationzen.com
Books:
Presentation Zen: Simple Ideas on Presentation Design and Delivery
The Naked Presenter: Delivering Powerful Presentations With or Without Slides (Voices That Matter)

Scott Berkun
Blog: http://scottberkun.com/
Book: Confessions of a Public Speaker

TED Talks
https://www.ted.com/talks