Monday, November 21, 2016

#NewToMe Series


Lately, I've been tinkering around with some new and old concepts in Android. Which got me thinking about creating a "#NewToMe" Series where I write about things I've learned while working on something new to me. 

Some of the lessons learned are probably not new to someone who's already worked on it before but it's definitely new to someone who's just getting started in Android or to someone whose focus was on other concepts in Android. Remember this XKCD comic?



"Saying 'what kind of an idiot doesn't know about the Yellowstone supervolcano' is so much more boring than telling someone about the Yellowstone supervolcano for the first time" - Randall Munroe, XKCD

More to come in the #NewToMe series. Keep an eye out for it!



Saturday, November 19, 2016

Leadership and Management Panel - ElaConf 2016


Recently I was a panelist on ElaConf's Leadership and Management Panel along with awesome tech bosses Alison Rowland, Caro Griffin and Alisha Miranda. The panel was moderated by Alisha who had crowd-sourced a great list of questions.


The panel was for women interested in pursuing a management career path. Alisha started off the panel with a round of introductions from each of us on our manager-origin story. I moved into the tech team lead role after being an individual contributor (IC) for 3 years. Since two years, I've been leading a team of 4 Android developers.





Below are my (paraphrased) answers on some of the panel questions.

What does success look like as a manager? How do you as a manager showcase the intangible impact you’re contributing?


As a team lead, you need to make sure your team is happy, that everyone communicates with each other and ships products on time. A lot of times what a manager does is not visible because a manager is responsible for all the things that make a team work together. If you catch up every morning for team check-ins or stand-ups, spend some time on what you did as a manager to help make your team mates' lives better. If you had a tough discussion with someone on another team, if you resolved some issues that makes it faster for the team to get its work done, mention this to your team. As a working manager (one who codes and manages people), it is important to show the impact you have because it gets the noise out of the way and your team can focus on their work. As a manager, a lot of context switching is involved so keeping a running list/journal of what you do everyday is helpful in understanding where your efforts are going.



As a manager, feedback is an important part of the job. Any core values you strive to emulate as a leader? Can you talk a little about how you communicate to junior team members or colleagues?


Give feedback fast and often even if it's criticism. Junior team members need more face time and check-ins because they need to be molded into effective communicators and contributors. The first 30 days are crucial for check-ins so you can help your team member grow. Have public channels in slack and create a safe space for your team to ask questions. Listen to your team and channel their thoughts and needs up the management chain. Have regular 1:1s with each of your team members frequently. Always keep the channel of communication open between you and your team.




How do you engage in healthy conflict resolution and build bridges?


Conflicts cannot be avoided. Write down your thoughts to process them before talking to someone you have a conflict with. Find a common ground and figure out a solution that works for both sides. Ultimately, you have a goal, for example: ship a product on time. So make sure you work towards that goal.

Who taught you to be a manager? How do you recommend finding a mentor to help you take that leap?


I learned from the people around me - my peers as well as my bosses. I had a really awesome project manager who listened to my pain points and helped me figure out what worked best for me and my team. Asking for a mentor helps. If you feel the need to grow, ask for it directly. 

I also follow Lara Hogan's and Cate Huston's blogs on being a manager, learning to be a better manager and doing effective 1:1s. I read a lot of books on behavioral psychology and professional development.


Self-care is something we talk about frequently at my job. Any tips on being emotionally resilient?

Turn off work notifications before 9 and after 5 if you have a 9-to-5 job. Lead by example. Tell your team not to work after hours. Plan ahead so your team doesn't end up working over the weekend. Keep a journal to write down thoughts or blog about things you have learned while leading a team.  



Thanks @elaconf for putting this panel together. I have a new squad now! 



Here's Alison's take on her panel experience and below are some wonderful sketch-notes of the panel by Alex and Eileen.







Thursday, November 17, 2016

Technical Blogging session at ElaConf 2016

This is probably going to be one of several blog posts related to ElaConf. It's a wonderful conference for empowering women in tech that took place in Philly for the second time recently. One of the breakout sessions at ElaConf was on Technical Blogging which was run by Vaidehi Joshi (@vaidehijoshi). Here are my takeaways from that session.


We started off by reading Julia Evans' blog post on processes. Vaidehi asked us to take a few minutes to read it and discuss with a partner. Here are some things that stood out to us in the blog post:

  • Conversational
  • Matter of fact
  • Formatted Code snippets
  • Author's personality shows in the code comments
  • Condensed scope, author links to external content for more research
  • Good introduction to the topic even for a newbie

We also took some time doing a fun exercise, with one of us pretending to be a student and the other a teacher. The teacher had to describe "opening a Facebook account to someone who has not used a computer before". This was fun. As a student, I pretended to not know what a computer or Facebook was which made it harder for my partner to describe the solution.

The point of both the exercises was to figure out how to teach others a new technical concept effectively. This is where storytelling comes in. An effective technical blog post hooks the reader by getting them invested in the problem and then interested in how a solution was figured out.




So where do you get started with technical blogging?

  • Start with things you want to learn
  • Things that you've already learned
  • Side Projects
  • Features you built or designed
  • What's new in technology
  • Weird bugs and how you solved them



How do you make it a habit?


Vaidehi suggests coming up with a goal. Her goal was to blog once a week every year. She picked Tuesday as her day to blog and called it Technical Tuesdays so that she produced a blog post every week on that day.



Wait, why should you blog?


For various reasons. A lot of times, documentation is lacking in tech. Blogging helps you communicate your ideas, helps you grow as programmer and makes you a better teacher. It is also an awesome resume and has a great impact on your career. It does not matter who is reading as long as you write for yourself. People will stumble upon it when searching for something and might find the solution they are looking for, and could end up reaching out to you with questions.

Looking forward to writing more technical posts!

Slides from Vaidehi's breakout session are available here.