Suggestions for Astrid Engineering Interns

Over the years I have heard many stories of interns writing code for companies for entire summers and at the end, the company erased it all.  In my opinion, this is a failure of management and mentoring. In contrast, the Astrid team has hosted 8 engineering interns in the past 12 months and all but one have written code that has been deployed on our Android, iPhone, and web projects.  One reason Astrid engineering interns have done so well is that we ask them for a high commitment which includes extensive pre-internship work.

Below is the pre-internship I provided for four engineering interns we recently hosted from UC Berkeley and Stanford. In just two weeks they did some phenomenal work with us. While we didn’t require anyone to work through the entire list, we did make it clear that doing so would make it easier for them to make an impact alongside the Astrid engineers.

Suggestions for Astrid Engineering Interns

  1. Get smart about Ruby/Rails The Astrid team uses Ruby and Rails on the server and it is our hope that all our engineers will come to know and love it. Below are a couple of suggestions to get smart about RoR.
    • Start with a Rails tutorial. I recommend ruby.railstutorial.org; it will teach you the basics as well as Git, and Heroku so that you can build your own site and deploy from scratch.
    • Reading the API document “cover to cover…” It will be painful and you will need to do it again, but it will be worth it. The full API can be found here
  2. Get smart about the Software Development process

    Learn about the art of programming – books that you probably weren’t exposed to in college. This video and book focus on best practices for effective software development.

  3. Get smart about Git/Version control and Git team workflows

    Astrid and many recent software companies use Git for version control. Becoming comfortable with Git and some common Git workflows will help you jump into a project quickly.  Because Astrid for Android is open-source, we love when prospective engineers take a look around read about our workflow here). To get started using Git, you might appreciate these Git command line tools found here. Before starting the internship you should be very comfortable creating local branches, checking out repositories, fetching remote repositories, switching branches, adding files, committing changes locally, pushing changes remotely, and rebasing off of remote repositories.

  4. Understand javascript

    Javascript is the world’s most popular programming language being supported by every web browser. Still, many recent grads are not familiar with it since they have focused on Java and C in their college courses and working in Objective C or Java (on Android) doing mobile development for their personal side projects. Taking time to get familiar with Javascript is essential for any front-end web developer and, with the growing popularity of node.js, it is becoming an important language for back-end development as well. There are many great resources for learning about Javascript but below are some I recommend.