Blog | jessechen.net

Protip: How to be a Good Boss

May 10, 2012 8:45 pm by

Today was my last day at ResComp after working 7 semesters there.  Rewind 3 years and 3 months back when I applied for the Lead position for the Network Engineering Assistant team.  I was applying for multiple positions within ResComp, and I figured, why not try to apply for a supervisor position?  While I was debating whether I should do it, I remembered the saying

I do not regret the things I’ve done, but those I did not do

And looking back today, I am so glad that I decided to apply for the hell of it.  The past 7 semesters working in that position has provided me with invaluable experience, friends, and memories.  Specifically, I want to emphasize how great it was to have a job while being in school.  It provided structure to my schedule, some extra money to splurge, and taught me many skills that I lacked.

Because the Lead position is a supervisory role, it required project management and management skills.  Coming in as a freshman, this job taught me how to lead and manage a team, and boosted my confidence and public speaking skills.  Anyone that knew me in high school knows that I used to be pretty shy and quiet.  Now I won’t shut up sometimes.  You can blame this job for it — because I had to be able to communicate internally within my team, as well as externally, providing workshops and presentations for other IT staff.

I wrote a protip article for the incoming Lead that will be replacing me, and I figured I would share it here as well.  Below are my thoughts on how to be a good manager and what my experiences were as the Lead for the Network Engineering Assistant team.  Enjoy.

Introduction

Hi, so I was the first Lead for this team when I came onboard in 2009 as a freshman. The position just opened up and the NEA team was looking for someone to lead the team for the first time. The current team at that time was all juniors or seniors. You can imagine that it must’ve been an interesting time when a freshman was responsible for supervising a team of 3rd and 4th year students. Since then, the team has gone through many changes and the Lead is primarily responsible for building the team that they want to have. As I am about to graduate and leave this position, I want to close with some of the insights I’ve learned over the years as well as some advice for you to consider.

Communication

It goes without saying that you need to have excellent communication skills to be successful. You are serving as the representative for the NEA team internally and externally. You need to be able to communicate with all your peers on the team, as well as get your point across with the career staff that we work closely with (Leslie, Greg, Mike). Externally, your role might not be as pronounced, but you will be responsible for attending SAIT-wide meetings, as well as attending parties and events that concerns the Leads. Something I didn’t do well was being the external representative for our team. Coming in as a freshman gave me a lot of time to try to get to know others, but everyone already knew each other and I was an outsider (being the first Lead for a team that didn’t have one means not having a mentor to help me introduce/network). Right now (2012) is a good time to be a new Lead because multiple Leads are graduating which means more new faces that are looking to make new friends. Learn to communicate successfully to other people internally and externally.

Our team is isolated from the rest of Rescomp. We don’t work with other teams (very rarely), and our work typically does not involve much interaction with other teams. For example, RCCs will typically initially diagnose an In-Room Connection (IRC) problem, and then create a ticket for us which we handle the rest. Same with Desktop but for career staff problems. Due to the nature of our work, it will be difficult to make connections with other teams in SAIT. However, you should because they can end up helping you one day with an issue related to them. I feel like I didn’t do a good job on this aspect, but you should. Get to know other Leads and people from other teams. Lastly, you will be leading workshops and presentations for other people in SAIT occasionally. Personally, I find those exciting because a) I like to speak in front of a crowd, and 2) I get to share with other people what my team does. Be confident in your public speaking abilities.

Lead/Senior Relationship

The Lead and the Senior position (edit: Senior position is the team lead for technical aspects) works closely together to ensure that the rest of the team knows what needs to be done when they come in to work. You guys must work together to provide documentation, assign tasks, and keep everyone updated on projects. One thing that I did not do during my time as the Lead is to establish a weekly or bi-weekly meeting with the Senior. I highly encourage meeting with your Senior(s) weekly to stay in sync. I noticed that because I did not do this, I would often times be out of the loop when it concerns projects. I was too focused on administrative tasks that I lost track of the current progress on our projects, and felt lost. It’s too late for me to fix that, but I hope that this doesn’t happen to you. Conduct weekly meetings with the senior(s).

Team Building/Dynamics

One of the most important things to understand as a Lead is that you aren’t there to micro-manage your team and make work a place that causes your team to hate coming in to work. As the Lead, you facilitate, which means letting your teammates make their own decisions and allow them to be responsible for their own actions. You are there to encourage them and prod them to the right direction. You work for them, not the other way around. Do not ever micro-manage.

Take the effort to know each person on your team and be friendly to all. Do not show or encourage any favoritism, and try to show interest in their lives outside of work. When working together, ask about how school is going, or how their extracurricular activities are going, and get to know them better outside of a work relationship. I want you to feel comfortable enough with every single person on the team that you would be willing to eat lunch one-on-one with them. As students of the same university, there should be a lot in common to talk about. When I go out on duty, especially with a new hire, I try to be friendly to show them that even though we’re at work, we can still have fun and get to know each other. It makes them feel included in our team, and promotes the same kind of interaction among other teammates. I find that when I am friends with the people I work with and know that we have lots of interesting conversations when we’re together, it makes work that much more enjoyable. Get to know every single person on the team.

Gaining Respect From Your Team

Respect is hard to earn, and (should be) hard to give. In our team, you need to have the respect of your team in order to be successful as the Lead. If you are lazy and always in the office pretending to do ‘admin work’, they won’t respect you when you assign them tasks. If you lack the technical understanding of our job, then your team will think you are just a management figure that they can’t relate to, since you do not fully understand the type of work your own team does and you’re just talking out of your ass. Although you may have a lot of administrative or organization work, you should take the effort to go out in the field on occasion. Many times, our team will need someone to volunteer to cover a shift or to do a task that no one wants. You, as the Lead, need to hustle and selflessly volunteer for those times to demonstrate to the team the kind of expectations that you want to hold them accountable to. Lead by example, and not by say!

Hiring

As the Lead, you are responsible for leading the hiring process every year. You have to be really organized and on top of things during this time (usually around february/march). That includes blocking times off on a meeting room’s calagenda for interviews, coordinating with the Senior, your supervisor, and others to interview and make hiring decisions, and preparing hiring materials (resume, cover letter, interview packet) for everyone. As the Lead, you have the strongest influence on who gets hired to be on your team. I want you to think about “would this person get along with the rest of my team”, and how their personality fits within your team. Our position does not demand a high level of technical expertise prior to hiring since our job is mostly learn-as-you-go, so you should focus on thinking about team fit and the ability to learn quickly.

Over the course of 3 years, I have hand-picked my team from hundreds of candidates. I generally like to look for people who are eager to learn, have the time availability (not too overworked academia i.e. triple major with 5 extracurricular activities), and have a personality that gels with the rest of the team. The other people on your interview committee may want to focus on technical skills, or time availability, but for you, as the Lead, focus on the big picture and see if the candidate is a good match with the rest of the team.

Conclusion

The work that we do is tough. Not just physically, but also mentally. Our team does a lot of grunt work and cleaning that makes even the toughest of us want to quit. This job isn’t easy, and we had several people that left the team because they either couldn’t handle the type of work that we do or they mentally check out. As the Lead, you have to do your job of being cheerleader. Keep the morale of the team up, make it fun and exciting to come to work, and unite the team. You know you’re doing it right when you walk into the team meeting and see your whole team laughing and having a good time together.

Network Engineering Assistants, Spring 2012.

 

Filed under: How to — Tags: , , , , , , , — Jesse Chen @ 8:45 PM

About

Jesse is a software engineer at Facebook, who just graduated from UC Berkeley. Passionate about mobile technology and entrepreneurship, he started his own blog as a home for his tutorials, projects, and random thoughts. Follow him on Facebook to stay updated on his latest tutorials and projects.


Playing the Student Card

March 8, 2012 9:48 pm by

Introduction

One memorable quote I remember from being in Ken Singer’s Mobile Entrepreneurship class is him telling us to always “play the student card”. People enjoy helping students because of a combination of a) its less pressure for them since we don’t work yet (not trying to use them to get a job, or for any other obvious personal gains) and b) they want to help younger folks because they once were in the same situation before as a student. For companies, they want to help us because they want to invest in their brand loyalty toward younger audiences, so that once we have a job and money, we are aware of their company and will continue to use their products.

Turning in my student card

As my years of being a student comes to an end, its time to take a look back and acknowledge the different people and companies that helped me get to where I am now.

  • GitHub
    • As a student studying CS, having a Micros plan on GitHub is invaluable.  A free Micros plan allows you to have up to 5 private repositories with unlimited collaborators.  A must-have for your CS projects and hackathons.
  • Adobe Creative Suite 5
    • Starting in August 2011, all UC Berkeley students gets a free copy of Adobe Creative Suite 5.  Normal price is 379$ for a license (which is out of reach for the 99% of students), so this is a great opportunity for people to learn how to use Photoshop, Fireworks, Illustrator and etc. for their class and personal work.
  • Microsoft Software
    • UC Berkeley students get MS Office and MS operating systems like Windows 7 and XP for free.  Students can barely afford food to eat, who in their right mind would cough up 100$ for a Windows 7 license?  This is a strategic move by Microsoft to ensure that we continue to use their products rather than their competitors.
  • Amazon Prime
    • Back in my day (~2010), Amazon had a promotion for students to have 1-year of Amazon Prime for free (free two-day shipping on all eligible products).  Now, it’s only 6 months but it’s still great.  When my trial expired, I was so spoiled by Amazon Prime service that I renewed my service for 40$/year.
  • Google I/O
    • Every year, Google holds a developer conference to bring thousands of developers for a two (this year, three) day event to network, attend talks, and listen in on the newest products coming from Google. This is a great opportunity for students to get a taste of the real world.  When I first attended Google I/O in 2010, it showed me what computer science is outside of academia, and made me so excited to pursue programming.  That led to me going again in 2011 by the skin of my teeth.  They gave me my first smartphone (my current phone at that time was a Motorola Razr, remember those things?), and since then, I have wrote Android apps, tutorials of many sorts, and have brought me into my passion for mobile.

Now these are services or events that are discounted for students.  The next list is a list of competitions I attended where I played the student card to my advantage.  Younger students take note 🙂

  • Facebook Mobile Hack
    • Facebook’s Mobile Hack is where you learn how to integrate Facebook services into your mobile app.  At the end, there is a hackathon where you compete for prizes.  I find that when introducing ourselves as “students at UC Berkeley studying CS”, we tend to get more attention that way (since everybody else were working adults).  Take it for what it’s worth, but playing the student card when you are the minority seems to give you an edge.  Not to mention, winning this hackathon got me a job offer.
  • AnDevCon III
    • Playing the student card once again, to try to appeal to the contest organizers.  However, notice there are also several other students playing the student card.  I think perhaps why mine stood out some more was the fact that I was more clear on why I feel like I should go.  Winning a 1,245$ ticket for writing a comment?  Not bad!

Conclusion

Take advantage of the fact that you are a student.  You only have this liberty for 4 years in college before you become a working adult.  The companies, people, and events that you meet and go to love the fact that you are an ambitious student and often times are willing to help one way or another!  For me, I will always be grateful for my student card because it

  • got me my job
  • got me into my career/interest, mobile
  • got me into building apps and competing in more hackathons
  • got me into conferences that I would never be able to afford

The student card is only valid for 4 years.  Use it before it expires.

 

Filed under: General — Tags: , , , , , , , , , , , — Jesse Chen @ 9:48 PM

About

Jesse is a software engineer at Facebook, who just graduated from UC Berkeley. Passionate about mobile technology and entrepreneurship, he started his own blog as a home for his tutorials, projects, and random thoughts. Follow him on Facebook to stay updated on his latest tutorials and projects.


Protip: Bash Autocomplete for Android ADB

February 17, 2012 3:00 pm by

Introduction

This is a super quick tip that will only take 1 minute to make your android development so much easier.  Android Debug Bridge (adb) is a command-line tool that lets you interface with an emulator or an android device.  Its great and previously I wrote about how you can debug your Android app wirelessly on your device.  What sucks though is that you can’t tab autocomplete commands (e.g. type ‘adb d’ then tab and bash will autocomplete and fill out ‘adb devices’), which means having to look up adb commands to figure out what you want and/or wasting time by typing the whole command (every ms counts!).

This protip will get you setup with bash autocomplete for ADB in less than 1 minute.  Ready?  Here we go.

Instructions

  • Download the adb bash completion file here from Roman’s repo.  Another good one is here on github by mbrubeck.
  • Store the file somewhere safe.  Anywhere you want. I chose /bin.
  • Use your favorite editor of choice (which should be vim) to edit your ~/.bashrc file.
  • Add the following lines (substitute your own path to the adb bash completion file) to the end of your ~/.bashrc file:
if [ -e /bin/adb.txt ] ; then
     source /bin/adb.txt
fi
  • Save and quit.  In your terminal, type source ~/.bashrc to reload your bash.
  • Check if it works.  Type ‘adb d’ and press tab to see if it autocompletes to ‘adb devices’.

And that’s it!  I’ve been looking for something like this for a long time.  Hope it helps you as much as it did for me. 🙂

Filed under: Android — Tags: , , , , — Jesse Chen @ 3:00 PM

About

Jesse is a software engineer at Facebook, who just graduated from UC Berkeley. Passionate about mobile technology and entrepreneurship, he started his own blog as a home for his tutorials, projects, and random thoughts. Follow him on Facebook to stay updated on his latest tutorials and projects.