Internship, Resume

Advice for Getting a Programming/Development Internship

More of my friends at Rochester Institute of Technology (RIT) have been asking me for advice on how to make a resume geared towards getting a development internship.  I haven’t seen any good resume advice for college students for landing an internship, so I decided to write one.  These are tips I have taught myself on how to get an internship at a software development company and advice I have received from fellow students and speakers at conferences such as Game Development Conference and Grace Hopper Conference.  Some of this advice can be generalized for getting internships.

1.  Resume – Your resume should sell yourself and not anyone else.  It can be creative or standard resume format.  Personally, I prefer a creative one as it represents more of who you are and greatly stands out from the rest of the resumes with standard format.  For an example of creative resumes, visit this page: http://www.hongkiat.com/blog/creative-designer-resume-curriculum-vitae/ and also my resume page: http://rebeccavessal.com/resume/.  My creative resume has more of a newspaper format and a legible digital font.  I’m not saying you have to go super crazy about the design of your resume, but it can definitely help.  Feel free to borrow my format for resume if you like it.

Here is a breakdown of resume content that I have adhered to which has helped me get interviews at both small and big software development companies including Uncorked Studios, ThoughtWorks, Zynga, Microsoft, and Apple.  Your content should be organized in the order of significance.  If you have internship experience, place that before education.  If you don’t, then place education before experience.

  • Content:
    • Introduction
      • Name – Your name should have a bigger font size than any other heading in your resume and be in bold.
      • Contact Info
        • Email Address – Be sure to include your school email address if you are still in college and your personal one that is appropriate.  Your school email address indicates to the recruiter that you are currently enrolled in colleges and can immensely help you in your internship search as some internships only take in currently enrolled college students.  If you aren’t enrolled in school, then your personal email address should ideally include your full name.
        • Phone Number – Include a phone number that you can easily be contacted at during anytime during the day.  I have my cell phone number in my resume, because I always carry my cell phone around wherever I go.  You never know when recruiters may contact you to schedule the first interview, so it’s really important to have this phone number.
        • Address – This is debatable one.  I don’t have an address in my resume, because it takes up space in my resume and it’s not prevalent to most of the companies I apply to for internships.  The only reason I see putting your address on your resume to be important is if you know the company only hires interns locally or wants international students.  If this is your case, then you can put your permanent address and your local address on your resume as this will help you be prioritized in getting an interview over those who are not local or not international.
    • Education
      • School – State your school name, your major, and where your school is located.
      • GPA – State both your cumulative and cumulative core classes GPA.
      • Graduation Date – Your graduation date can serve as an advantage to other candidates if you are senior and thus graduating soon.  At a company standpoint, if you are graduating soon, then they can hire you on later for full-time and not have to spend more money and time to find more candidates for the job.  Most companies will hire you on as an intern if you are a 2nd to 4th year, but some companies prefer to take on only juniors and seniors.  Recruiters tend to not hire college freshmen for an internship, so you could state you are a 2nd year or 3rd year if you are a freshman and have such a status instead of a graduation date.  This can help you go beyond the boundaries that most college freshmen have to deal with in getting an internship.
    • Skills
      • Programming Languages – You should list your proficient programming languages in level of proficiency from highest to lowest.  Also be sure to list any programming languages you are familiar with, which means you are somewhat comfortable programming in the language but don’t feel very comfortable with that particular programming language syntax.  Even familiarity with a programming language could help you land an internship.
      • Integrated Development Environments (IDEs) – Your experience with an IDE a company lists on their internship posting conveys to the recruiter that you could hit the ground running without them having to train you in using their IDE.
      • Operating Systems (optional) – You don’t have to include this, but it may help in some internships where they state in the internship opening where they use a particular operating system such as Linux.
      • Graphics Programs (optional) – This is something you don’t necessarily need as a programmer, but it can show that you know the workflow of artists and can build programs that incorporate that and speak to artists in their own language too.
    • Projects
      • Now this is the most important piece of your resume along with your experience at other internships if you have any.  This should be your OMG this person has done some wicked projects in which they used skills crucial to the internship.  In other words, this is the delicious cake you are offering to recruiters.
      • Any projects you include in your resume should showcase your skills and include achievements that may or may not include numeric results.  By quantifying your achievement results, you give the recruiter a sense of how great  your achievements are.  You can tailor your resume by including projects that appeal to general software development companies or to specific ones.
      • Be sure to include personal projects under a separate heading if you have any.  This shows that you are truly passionate about what you are currently majoring in.  You can even list projects that you are currently working on and not completely finished.  Not a lot of people take on personal projects, so this alone may get you your ideal internship.
    • Experience
      • List your work and internship experience in order of importance to the internship and recency.  Listing any internship experience definitely gives you an advantage to those who don’t have any and should be listed first.  If you don’t have any internship experience, don’t worry about it.  Ideally, you should include work experience close to what the recruiters are looking for in their ideal intern, but any work experience should be fine.
      • Follow the same rules for projects.  For your jobs, list your achievements and numeric results.
    • Outside Interests
      • Include any clubs that are relevant to the internship and display your achievements and leadership roles.
    • Awards
      • Include any school awards, awards in general, and conferences you have gone to.   Not sure if this helped me get internships, but it does impress people in general.

So, this is part one of my advice for getting a development internship.  I need to go to my C++ class.  Subscribe to my website and like this post and comment on it, if you liked this advice.

Internship

Advice for Interns on Their First Development Internship

Some of the many concerns interns have before starting their internship are I’m not sure if I’m qualified for this internship and what if the work I produce is not good enough.  Some interns have this fear that they are inadequate for the job.  First of all, companies don’t make mistakes in hiring people.  They hire the right person for the job, so don’t worry.  You have the qualifications for the job.  For example, the qualifications for my internship where the basic standards of most development internships not necessarily if I knew iOS and Ruby on Rails off the bat.  You will learn what the company expects from you within weeks of your internship and produce that kind of work.  So take a breather and relax.  Nothing to really worry about.

One of the greatest advice I can give to interns is it’s ok to make mistakes.  No really, seriously, it’s ok to make mistakes.  No one expects you to be a genius on the first day you arrive on the internship.  There is always going to be a ramp up period whenever starting on a new internship.  You can crash programs all day long and not be able to code as well as if you knew the syntax of a certain programming language fluently.  As long as you are learning while crashing programs, it’s all good.  Honestly, sometimes, you need to break the program in order to figure out the system you are working with.  Some of the best programmers are those who take risks and make a lot of mistakes.  Like I said it’s all good.

When you need help, ask for help.  That is what mentors are for.  Even if you don’t have a mentor or your mentor isn’t there, there will always be someone at the office that can help you out with your problem.  If you are taking one to two hours when you think the problem should only take thirty minutes to solve, then ask for help.  When you are ramping up, solving problems takes longer, because you are unfamiliar with the technology and the language.  Always try to teach yourself first by attempting to Google some code snippets to help solve your problem before asking for help.  This is an invaluable skill to learn.

Growing up in an Asian academic culture and being Asian, I felt ashamed to make mistakes and didn’t ask for help back in high school.  I would stay up all night teaching myself and occasionally didn’t understand a concept for two.  I wasn’t stupid.   No.  I was part of a small group of students taking all of the honors and AP classes I could while juggling sports and other extracurricular activities.  However, because I didn’t ask for help from my teachers, I didn’t learn as much as I should have back in high school.  This is something I regret to this day.

Trust me, you don’t want to have those regrets.  Make as many mistakes you can and learn from them.  Ask for help if you don’t understand something, need clarification, or simply need help in solving a certain problem.  We all start out as newbies especially on a first development internship.  To tell you the truth, I didn’t know Objective-C and Ruby before the internship.  I learned both on the job and little bit off the job by reading an iOS programming book written by Nerd Ranch in just three weeks.  Yes, I was afraid that I was going to be fired on the very first week I started my internship, because I didn’t know Ruby that well.  Hahaha.  One of my bosses, John, laughed at me for telling him the story of how I thought I was going to be fired on the first week of my internship here at Uncorked Studios.  You might feel the same way, but trust me.  No one will fire you.  Everyone understands you are just learning a new language, and it takes time to learn a new language.

If your boss hands you a piece of the project on the very first day, take it and run with it!  This is your chance to learn on the job, which is must faster than just trying to learn from reading a programming book.  Psychology has proven that we, human beings, learn best by doing not by watching or reading.

My coworkers told me I would comfortable with the languages within a month.  I accomplished it in three weeks and so can you.

We learn and grow both professionally and socially on these internships to become the best developer the world has ever seen.  Internships give people a chance not only to learn new software engineering skills, but also how to live life successfully and choose which career path you want to take.

Internship

Steampunk Machine

Another cool project I have worked on was a steampunk map overlays machine, which we made in three weeks for the Produce Row event.  What is interesting about this project was that I was a project manager for this particular project instead of a developer and this was my first time being a project manager outside of school.  I have risen as a project manager in group projects back at school naturally to organize meetings, split up work, and ensure that our team is on schedule.  However, this project was more chaotic than any school project especially since it had a physical and digital component.  I had to organize meetings at least couple of times per week, check up on multiple components of the projects daily to ensure we were on schedule, hone in on the datasets and interactive physical components correspond with each of these datasets, keep the communication line open with the PDC committee and the PDC Refuge owner in order to have all of the necessary information for including in the steampunk machine and setting up for this event, and purchase resources to make sure that our developer and constructors for the steampunk machine were not blocked in any way.  I did some things that are out of traditional project manager role such as helping out the developer with how to collect data related information from websites, wiring up the steampunk machine, and sauntering all of the wires to help out during crunch time.  It was all worth it!  We were a hit at the Produce Row event!  Sam Adams, the mayor of Portland, was astonished of our steampunk machine and showed Sam Royston, the developer on this project, where his house was on the map.  A lot of Produce Row members were so delighted and amazed by our machine.  Their faces brighten up as soon as they started interacting with it.

Which datasets did we use you ask?  We used five property related datasets collected from Sam’s python webcrawler.

  • Property tax
  • Property market value by square footage
  • Property market value
  • Building type
  • Building age

We also used zoning shapefiles from the Portland civics website as the sixth property related dataset.  All of these datasets each corresponded to a button on one of the small boxes of the steampunk machine.  We were also going to include transportation, but those shapefiles were corrupted preprocessing files that had lines disappearing the more the user zoomed into the map.

The other datasets we used were business type categories that were found in the Produce Row district.  These included:

  • Creative
  • Digital
  • Industry
  • Food & Drink
  • Retail
  • Services

All of these were represented as markers on the map and a switch corresponded to each of these categories acting as toggling them on and off on the large box of the steampunk machine.  Since they were makers, they stayed persistant throughout all of the other map overlays.

The final dataset we used was aerial photos of Produce Row district from 2000 to 2011.  We used one dial to transition through these photos and another dial to change the opacity of these photos so the user could see all of the street and building names on the map.  There was also a joystick and a dial close to it to pan and zoom respectively.  All of these components were on the other small box of the steampunk machine.

I will not forget the hard work of Shawn Bernard and Abby, one of our producers, who stepped up to the plate out of their own free time and built the steampunk machine and gathered some resources for it.  Shawn also made the iPad app for collecting data from incoming Produce Row members that the PDC committee needed.

Without this great team, this steampunk machine would not have been brought to life and be the hit of the event.  Thank you guys for everything you do!  You guys rock!

Internship

My Internship Experience at Uncorked Studios

When I got an offer from Uncorked Studios to join on as a development intern, I was the happiest person in the world!  I still feel this way.  Why you may ask?  I get to work on some of the most epic projects and learn new things everyday on the job.  I have contributed to LEGO Superhero Movie Maker iOS app by making a delete movie from movie gallery feature, creating xibs for the YouTube feature, and made the progress bar animation for uploading video to YouTube.  The LEGO Movie Maker app was one of the first iOS apps I have worked on when I first started learning Objective-C.  In addition, I have learned a lot of iOS libraries especially libraries within the AVFoundation framework and some Ruby syntax for adding and removing columns and making API calls by working on one of Uncorked iOS projects in its early stages with my mentor, Shawn Bernard, one of the lead software engineers at my workplace.  It’s still under NDA, but I can’t wait for it to come out on the app store, as it was one of my main projects I worked on during my internship.

Everyone here at Uncorked Studios is like a family to me.  They truly support me in my career choices and help me out when I need help on the projects I have been working on.

We even have small parties for people joining onto the team, for people joining full-time on the team, for people leaving, and for successful launch of apps.  So much delicious food and drinks have been consumed at those parties.  Oh and I have discovered yellow pickled cauliflower at one of the parties, which I have never seen before in my life.  I have been to at least four parties since I have started my internship back in early June.  Even though we party for a lot of reasons, we also work our butts off for all of the products we produce.

I couldn’t ask for a more awesome internship experience.  I am lucky to be here at Uncorked Studios.  I will definitely miss everyone here when I go back to school.