Don't take your highest-paying internship offer

"Well, I wasn't really going to intern at X (say, Zynga, or Morgan Stanley) but they offered more than anybody else."

Don't do that.

It's easy to focus on the financial aspect of an offer, especially if it's the first time you've had a chance to make anywhere near this much. It feels kind of surreal.

It's not that money isn't a valuable proxy for how valuable the company perceives you to be. If you get an offer of "housing + we give you options in the company," that's a good sign that you are talking to Whartonite Seeks Code Monkey-esque enterpreneurs and if you have anything remotely more interesting available you should go do that instead.

But the point of an internship is not to maximize your profits - it's to learn what kind of work or industry you want to be in once you graduate, to try things out and live in cool places, and (more immediately) learn about how real-world software engineering works.

When you go out into the real world with six figures of college loans, sure: try to negotiate up your offers, consider the difference between $80k and $100k a year.  This will make a substantial difference in how soon you will be free from debt.  But when you are deciding where to spend your summer, the difference of a few $k is a small price to pay for learning about a potential industry or position or company that you are interested in as a career.

PS.  In case you're wondering, here's an approximate price that companies are paying these days for technical interns. I imagine this'll be out of date reasonably soon, but here it goes*:

  • ~$10k/month - crazy financial hedge-funds where they have you do algorithms trading or something along those lines. Expect +$2k/month for every greek letter in their name.
  • ~$7.5k/month - Google. I think Google still makes a point of paying 10-20% more than anybody else, but I haven't checked recently. Edit: Palantir appears to be in this bracket as well.
  • ~$6-7k/month - Facebook, Dropbox, Twitter, Microsoft, Apple, etc - top-tier tech companies.  
  • ~$4-6k/month - Various smaller companies and legit startups.  I think normal finance-tech jobs are in this range as well.
  • ~$2-4k/month - Less prestigious (or non Bay-Area) start-ups or small tech firms.
  • ~$0-2k/month - Summer of Code, non-profit work, non-funded or silly start-ups.

* Note: I'm including housing in all of these. 

Keep in mind that a number of these companies also adjust by year, more willing to pay a rising senior than a rising freshman.  I've seen this be a factor of up to 50%.

[edited with suggestions from Hacker News comments]

Filed under  //  advice   internships  
Posted

A brief guide to tech internships

Planning to be an Intern in the Bay Area during Summer 2012? Make sure to read an Intern's Guide to the Bay Area, and join the 2012 Facebook group.

 (via this guy, via this guy)

Joel Spolsky, from the Joel On Software blog and StackOverflow, wrote an article with Advice for Computer Science College Students back in '05. According to Joel, 

No matter what you do, get a good summer internship.

As such: here’s everything you ever wanted to know about tech internships, plus some bloviating about my experience. The TL;DR is, try to have at least two internships: one at a small start-up and one at a tech company.

Wait, who are you?

I'm a CS senior at the University of Pennsylvania. I have interned at Facebook (Summer 2010), where I worked on application privacy, and as a generalist at 2bkco (Summer 2011), a new startup from serial enterpreneur Caterina Fake (Flickr, Hunch).  Both internships were great and invaluable. They were also very, very different, in terms of both the type of work I had to do and what I gained from the experience.

1) How do I get a good internship?

Luckily, a number of great posts have been written about this subject already.

To which I add my two cents:

  • Start thinking about summer internships around Winter Break. Make a list of potential companies and start applying.  Don't be worried if the entire process takes until April or so, though.
  • Get a referral rather than applying directly whenever possible.   Ask upperclassmen you know (think: TAs that like you) who could make a referral.  For earlier-stage companies, if they don't have an explicitly-listed referral program, don't worry about it: email the CEO. Hint: they are probably at firstname@startup.com.
    (via Hugh MacLeod) 
  • Practice technical interviews. If you're nervous about writing code on the whiteboard, try some combination of being drilled by upperclassmen, buying (and practicing going through) Gayle's Cracking the Coding Interview. Others also recommend interviewing with the companies you aren't as interested in first, using them to train.
  • Optimize for what you can get. Bigger companies are going to (generally) look for a high GPA and good performance on brain teasers.  Smaller companies are going to prioritize a history of initiative and automony, as shown by cool projects on your resume.  If you've got a high GPA (at least 3.7 at Penn, say) and are good at brain teasers, you should be OK with larger companies; if not, start with a start-up.
  • Your timing is great! Literally everybody is looking for software engineers right now, and internships are one of the key ways to recruit for companies. The market could not be any better for us. If you feel like you're not getting anywhere, make sure to apply beyond whatever is immediately available on campus. Competing with the general populace may be easier than competing with others at your university.
  • Consider a mass-application or 'summer program', which are often offered by venture capital firms and have gained popularity in recent years.  Make sure to check out (and potentially apply via): hackNY fellows, Andreesen HorowitzFirst Round Capital, True VenturesKleiner Perkins Fellows, Bane's StartUp Academy, NYC Turing FellowsInterviewStreet and InternMatch. None of these are a substitute for applying to companies individually (and I haven't tried them myself) but given the reasonably short time required to apply, they are probably worth doing.
  • Location is a pretty big deal. Try to be in the Bay Area (Silicon Valley, San Francisco, Mountain View, Palo Alto, etc) if you can - it's awesome. and there are a ton of other interns around.  I hear New York is getting pretty fun as well, but don't have any personal experience. Other tech regions like Boston or Austin (and maybe LA and Philly) aren't bad, but make sure not to get stuck in the middle of nowhere, living in the suburbs as the only tech intern at a huge company.  That does not a fun summer make.

2) How do I pick where to apply/work?

Before applying, consider: "Am I excited about the products this company makes? Would I be excited to know that I work there?" It's much easier to get motivated (and show excitement) for a company you are excited about. I was Dropbox user #2001, which I did not neglect to mention when I applied. It helped. I think.

I strongly advice looking for internships with a big tech company or a startup, rather than a non-tech company (esp. financial) company that happens to have engineers. The explanation is a little long, so I'll just assume you nod along hummingly here. For the inquisitive: here's a longer argument.

Picking a startup
You want to work for (and learn from) the start-ups that are going to be successful, but as the Venture Capital industry knows full well, it's not always easy to pick winners.

There are, however, a few hints that you can pick up on and prioritize for when thinking about where to work:

  • Has the founder had a successful start-up venture in the past? They must have done something right; past performance appears to be the best guarantor of success for tech enterpreneurs.
  • Is the founder (or a large portion of the founding team) technical? Are they writing code? Do they come from a strong technical background, whether at a startup or from a top tech company?
  • Does the company or its employees have a track record of being good mentors?  I wrote a Mentorship Checklist: questions worth asking to find out.
  • Is the company pre or post "product-market fit?"  That is, are they figuring out what the heck it is that they are going to do that makes money, or have they figured it out and are trying to scale and make sure the servers don't melt with all the new traffic?  Both are exciting times in the life of a start-up; consider a pre-product market fit company if you're looking to get a big opportunity to contribute creatively and try new things, and a product-market fit company if you are interested in the technical challenge of quickly scaling a codebase.
  • Is this a 'well known' startup? One of the downsides about working at a startup is that it doesn't usually yield the brand recognition of a 'Facebook' or a 'Google' on your resume. Working at a small company people have heard of (TechCrunch coverage/Twitter buzz being a reasonable proxy for 'heard of') helps negate that. Think (again) Quora, Path, Uber, Square, etc - small teams but well-known products.

Picking between larger companies

  • The easiest way to figure out if a larger company is worth working for is by their reputation: ask upperclassmen, friends and professors.  
  • Does the company have an official internship program? Does it sound awesome? Can you speak to somebody (ideally from your school, but from the company if not) who has been through the program as an intern? Talk about both intern housing and make sure to run through the Mentorship Checklist.
  • Sites like glassdoor.com, which offer anonymous feedback from employees, a tremendously useful service as you try to figure out if this is one of those 'magical companies'. The sample size is not large enough to use for companies smaller than a few hundred employees, unfortunately.
  • It's not always immediately clear whether a company is or is not a 'tech company' - Amazon and Barnes and Noble both sell books online and have e-readers available, but (from my intuition) Amazon is a tech company that happens to sell books on-line, whereas B&N is a book retailer that has been forced online and into e-readers by the prevailing winds of change. Which one sounds more fun to work at?
  • One sign of an innovative company is a technical or product person in the CEO role - think of Larry Page's involvement with Google products compared to somebody like Lowell McAdam (who?) at Verizon.  It's more fun to work for a culture trying to build the future than one trying to maximize this quarter's revenues and 'maximize shareholder value.'
  • In general, newer companies will have less middle-management cruft and set-in-their-wayedness than older ones.  There are some older companies with solid programs, like IBM's Extreme Blue, and some newer companies with terrible reputations I would advise against.

3) What you learn
(or at least what I learned)

In short, working with top technical people will teach you software engineering 'done right' (IE, no more turning in ugly code for your homework assignment that is going to be auto-graded once and then filed away forever). That means different things at earlier and later stage companies, though, and I can only relate my experience.

What I learned at Facebook
First and foremost, I learned to write 'good code'. My first non-trivial commit (15 lines or so) was rejected 6 or 7 times until I finally put the right amount of spacing in an "if (" and fixed my trailing whitespace. These were important, brilliant engineers politely telling an intern, time and time again, something that he should have found in the coding guidelines doc. I've been a little bit embarrased to show a lot of my pre-Facebook code, as a result - the improvement, at least for me, was significant. 

In general, the experience taught me that Code is Culture. The fact that top FB engineers were willing to spend so much of their time on code reviews was a fantastic way to show-not-tell Facebook's commitment to good code. I can't say that I've been able to pay the overhead of 100% code reviews on every project or team I've worked on since, but having the background of working in a 'code quality matters' team has infused the way I think about programming today.

I also learned that engineers are not immune to politics, even at great companies. I was playing around with a hackathon improvement to one of the sharing features, but the engineer who understood most of the code would not reply to my emails for weeks and claimed he was busy (which he was) when I walked over to his desk. My original pitch for the feature I wanted to work on was "You know what sucks about Facebook? X.  We should fix it." In retrospect, I did not do nearly a good enough job of trying to get the person on board or show respect for the work that had already been done.

What I learned at 2bkco
I joined the team several weeks after the engineering work had begun. It was very humbling to see the ease with which Eric would put together a component and then decide, several days later, that there was a better way to do something and throw it all away. When you know your code has a good chance of being thrown away, the priority becomes writing quickly in a way that can be cleaned up later (which is different than writing sloppily or writing 'homework' code).

I also got a lot of training in breadth: 2bkco required me to be close-enough to fluent in Javascript (Coffeescript), Ruby on Rails and HTML/CSS. It was too early in the life of the company for me to specialize, which meant a lot of time on Google and StackOverflow, learning how to do a ton of things as I went. I became much more comfortable forking Github projects of things that did sort of what I wanted.

Fin.

That's it. That's all I've got. Mostly. Comment with questions, or just tweet me, yo.

Some valid points brought up via this post's discussion on Hacker News.

Planning to be in the Bay Area during Summer 2012? Make sure to read an Intern's Guide to the Bay Area, and join the 2012 Facebook group.

 

 

 

...I see you're still here. Alright.

PS. What about other types of internships/summer activities?

I spent the summer after my freshmen year doing all sorts of odd things, from playing a lot of Settler of Catan online to working in recruiting for my father, to travelling around in France. It was a mixed bag, unstructured in a way that (in retrospect) I found less than ideal.

There's nothing to say that working all three summers is strictly necessary, or that the two internship types I recommend are your best options (though I happen to think so).  Here are some other options for either a third internship or an alternative to the first two, in something resembling-but-not-quite a ranked order.

  • Intern as a Product/Project Manager - A lot of larger companies offer these; though they require a technical background, day-to-day involves more management and product work than coding itself.  Harder to get (as far as I know) than a software position, but worth trying if you are interested in that sort of thing. Google has a particularly prestigious APM position that appears to be a blast from what I've heard.
  • Research - find a professor you like that is working on something cool and spend a summer in their lab. This doesn't pay quite as well as an internship but is worthwhile doing if you are considering getting a PhD and want to experience the research process first hand.  This is also worth doing earlier in your undergraduate career, since the positions seems generally easier to get and the work you do will help with internships later on.
  • Open Source - consider applying for Google Summer of Code or contributing to one of Apache's projects. Again, the pay (if you are in a structured program) isn't as great, but you still get to learn a ton from talented developers and get the feeling that you are contributing to something that a lot of people depend on.  Again, having a substantial open source contribution is a great resume builder. 
  • Freelance/own projects - If you've got the self-motivation and enough HTML/CSS/simple back-end skills, everybody and their mother seems to want a simple website built for a few hundred bucks.  Spending a summer working on a lot of simpler projects is helpful if you're interested in learning the business side as well as pick up pretty good design skills - just make sure to be in an area with a designer/developer community, so you have more than the internet to rely on for finding clients and getting advice.
  • Work for a small dev shop - A lot of higher-end freelance and consulting in the US is done by small freelance shops like ThoughtBot and (originally) 37Signals. A lot of innovation in software development (Ruby on Rails, for example) has come from shops like these.  Plus, working on a lot of projects means a lot of breadth. The caveat is that the pay isn't as good, the deadlines are set in part by the client's needs, and there is less creativity on the product end.
  • Non-technical internship (or travelling, or non-profit work) - These can be fun, but if you're looking for a career in tech, make sure that your non-technical internship is not done at the expense of getting enough coding experience by the time you graduate.  Companies looking to hire you as an engineer will be far more interested in what coding work you've done than in anything not directly related.
  • Tech internship at a non-tech company, especially in finance: Most of these will not pay as well and not (typically) have first-class engineers. Finance is an interesting case here: the pay can often be several times larger, if you are working on algorithmic or high-frequency trading (largely at smaller firms run by technical people). Still, in most finance firms, the traders are first-class; I've had some friends who have enjoyed their finance internships, but a lot have not. Buyer beware: the difference between a $5k and a $7k a month internship doesn't buy happiness.

PPS. Notes for International Students

Update - didn't do your undergrad in the US? You can still do an internship via a J-1 visa. Jori explains.

In general, the situation is a bit of a mess. But: if you're studying in the US on an F-1 visa like I am, here's what I've learned:

  • After you graduate, you are allowed up to 12 months of OPT to work in the US without needing an H1-B or similar visa, which is great because H1-Bs are non-trivial to get.  You also get 17 months after that, via the STEM extension (ask your International Programs office).  
  • There are two ways you can stay for an internship in the US in the summer: OPT (Optional Practical Training) and CPT (Curricular Practical Training).
  • Applying for OPT means you need to apply by February or March at the latest, and (eventually) have an offer letter from your company.  Unfortunately, the time you take eats away from your post-graduation OPT allowance.  Larger companies will be better suited than smaller ones for dealing with the paperwork that OPT entails.
  • Applying for CPT is much faster (the University, rather than the State Department, approves these), but CPT means that you're taking an independent study with a professor as part of your internship (for me, this meant writing weekly reports). It also means you're paying for your summer class, which cuts into your profit from the internship.  It does not, however, cut into post-graduation OPT time. Speak to your department about precedents of CPT being done - generally, somebody will be familiar with the process.
  • Alternately, if you work on campus, there is some sort of interesting exception where the work doesn't need to be under either OPT or CPT. 

Filed under  //  advice   jobs  
Posted

Don't make me wait for bags at the airport, just deliver them.

The flight landed at 11:18 pm. The first bags came out 40 minutes later. Mine came out just after midnight, so about 48 minutes after landing. People were pissed off, wondering (correctly) if anyone at all was dealing with the baggage. At one point a small purple bag came out and drifted around unclaimed and disappeared. Nothing else came for at least ten minutes after that.

“They’re totally just fucking with us,” the guy next to me said to my face. “They don’t care at all.”

 

- Mike Arrington, via http://uncrunched.com/2012/01/15/delta-flight-1642-sea-to-jfk-did-not-suck-nearly-as-much-as-i-thought-it-would/

This got me thinking.

Why don't airlines or airports offer a service to just deliver your bags to your address later that day, without you waiting for it?  I usually use a $10-$20 fixed-rate shuttle to get home from the airport - why not do the same thing that you do for me, but to my bags? Offer it when checking bags online:

[ ] - Deliver bags to your address in destination city and save time when you land - $19

They do this with lost baggage anyway. If somebody is picking you up from the airport, this eliminates a lot of uncertainty in when they should show up. Your customers have one less reason to dislike you.  You can even make a deal with major hotels to subsidize those fees as an incentive to book a room there.  In the long run, you can eliminate space at the terminal by getting rid of a number of carouselles.  Apparently the service already exists in Japan.

Why not?

Filed under  //  entrepreneurship   ideas  
Posted

Cool Story, Bro: Stephan from Kembrel

I've known about Kembrel in a sort of by-the-way, there's-also-this-clothing-company sort of way for a few years now (I think I walked by a Kembrel physical sale last year), but never bothered to figure out what exactly it was that they did.

Until a couple of weeks ago, when Meeteor suggested I meet Stephan, one of the founders. So I did; here's his (and Kembrel's story).

Img_20111219_130654

Who is Stephan?

Stephan is originally from Germany, where he served as a Special Forces Sniper for the German military.  He's also a former Computer Science undergrad, having taken time off to work as a developer in NY, and a former consultant, and a recent Wharton MBA grad (which was how we sort-of-but-not-quite knew each other).  In short: Stephan is this guy.

Img_20111220_003250

Now he's the CEO (or Co-CEO, I'm not quite sure - whatever, he's one of the guys in charge) of Kembrel.  

OK, so what's Kembrel?

The Kembrel thesis, according to Stephan, is that college students are an appealing market for retailers (starting with fashion), an easy argument to make if you consider the future value of a wealthy customer whose tastes are being shaped today.  College students are not, however, being well targeted by traditional fashion brands.  

Flash Sales

Kembrel's initial solution to this was flash sales, a Gilt-style approach of offering deep discounts on a limited inventory of high-end merchandice in a limited time period. Clothing brands have unsold inventory that they need to sell otherwise and hopefully not hurt their brand by selling it at a low price. Flash sales, online and offline,give the brands an opportunity to both offload their excess inventory, while at the same time growing relationships with potential future customers.

Flash-sale-anne-klein

The sales were successful, and Kembrel is now popular in a number of larger college towns.  

Customer Acquisition

I've been thinking about customer acquisition lately, primarily because it's not obvious to me how to do it cheaply enough for a project I'm playing around with.  There's no one silver bullet, according to Stephan, but one thing that has worked well consistenly has been partnering with other brands that target college students, from CollegeProwler to textbook rental websites.  "CollegeProwler is almost an ideal partner," he explained.  "It's students before they are even in college, to already get them thinking about Kembrel and make that association."

Kembrel: Evolution

As their popularity grew, explained Stephan, one concern with flash sales was the high fixed cost of the sale. To do a good job, the seller must synchronize the items being sold, get them shipped, take photos, write up a high-quality description, hire a designer and/or a director -- all that for a set of products that will be on the site for less than a week.  Even Gilt Groupe, who are aiming to IPO in the next several years, is rumored not to be profitable based on their flash sales today. Scaling flash sales is hard.

Kembrel

As a result, Kembrel has recently been diversifying, experimenting with a number of additional revenue models, from a straight-forward (though still discounted and targetted at college students) online shop, as well as considering physical locations, the first of which (at 1219 Locust St) I visited earlier.

Img_20111219_131945

"The numbers for physical stores are really, really interesting," explained Stephan.  "If we get somebody to walk inside, the odds of them buying something are absurdly high."  The odds of them signing up online are significant as well.  Online-to-offline and back to online commerce is a fun and nascent market, and Kembrel's current positioning and tech-savviness puts them in a place to be amongst the first to figure out how all this "get people online to come to your store, get people in your store to visit you online" stuff works.

Img_20111219_131841

Over the next several months, Stephen and the team are playing around with opening additional stores and measuring and learning as much as they can.

Fin

So, that's Kembrel. I understand what they do somewhat better now, and hopefully you do as well. Thanks for sitting down with me Stephen! Looking forward to seeing where you all take this company next.  

Related articles
Enhanced by Zemanta

Filed under  //  entrepreneurship   interview   penn  
Posted

Post-Finals Doughnuts and Hot Cocoa: This is obvious, but...

[Context: I'm one of the Dining Philosophers, the Computer Science Club at Penn]

InterviewStreet offered to sponsor a Study Break to help promote their upcoming CodeSprint.  We contemplating doing a study break, but given that it's finals week and most people are working at home, we weren't sure what kind of turn-out we'd get for an event blocks away from where most people are.

We brainstormed for a little while about what to do instead, and came up with the idea of post-exam hot cocoa and doughnuts, which we've been serving as a surprise to a number of the larger CIS classes immediately outside their final.   

Photo

Results

The treats have been pretty well-received so far, resulting in people hanging around a little bit after the final, chatting with their TAs and one another and de-stressing in general. It's been great knowing that we've made finals a little bit nicer for people without forcing them to brave the cold and go somewhere for a study break.  

All in all, the initiative has been a win.

Img_20111219_141416

Best Practices

Both for the purposes of future generations of Dining Philosophers and for other schools/clubs that may want to have a similar initiative, here's how we did it and what we learned.  Some of this seems obvious, but helpful:

  • Setup Requirements: The food can be served with an hour's preparation and 2-3 people.
  • Amount: We bought a jug of 'serves 10 cups' hot cocoa per 30-40 people and a doughnut per every other student. That ratio has been pretty good (we end up having a bit too much hot cocoa).  
  • Source: We've been buying from Dunkin Doughnuts rather than making our own Hot Cocoa, primarily because we've all got our own finals and CVS happened not to sell Hot Cocoa Mix when needed.
  • Price: We're hovering just below $1/person/final, which works for us.
  • Extra things you'll need that you don't think of until 20 minutes before: 
    • Knives (to cut the doughnuts in half before you serve them - just get plastic knives from somewhere, 
    • Napkins (make sure Dunkin gives you a few)
    • Cups (Dunkin wanted to charge 25c/cup beyond 10 cups/jug, so we bought an extra 50 foam cups from CVS)
    • A serving table - make sure to scout.
  • Alternatives: Some of these students are in >1 of the classes we're hitting.  We're thinking about switching it up to Hot Cider and Cookies, but that may take slightly more setup time. Ideas?
    Photo_1
  • Coordination:
    • We gave the TAs for the courses a heads-up (and asked them to help with logistics where needed) but didn't tell the professor until just before.  Doughnuts feel more fun as a surprise.
  • Advertising:
    • We stayed away from blatant advertising/taking credit, instead leaving subtle DP signs on the tables.  Students are tired. This isn't a good time to throw leaflets at them about jobs.
    • Our plan for CodeSprint advertising is to (instead) email the CIS list-serv after finals and, as we remind students about CodeSprint, mention that their funding helped the doughhnut-and-hot-cocoa missions.  This seemed like a pretty reasonable balance from our end.

A lot of this stuff seems obvious, but I figured having best practices documented somewhere can't hurt.

Do comment/share if you do something similar at your school, have ideas or know that something like this is already being done somewhere.  

Filed under  //  dining-philosophers   penn  

Finding a Technical Cofounder: Slides from talk

I gave a talk to the Wharton MBA E-club (I think?) earlier today about the difficulties of finding a technical co-founder.  If I find the time, should probably turn this into a post, but for now, slides for the curious 

Also available at git.to/cofoundertalk

TL;DR:

Technical_and_looking

Cheat Sheet

  • Don't spend your time looking for a technical co-founder, it's not an efficient use of your time. Instead, either:
    1. Learn to code
      • Step needing to rely on others for execution
      • Meet technical people
      • Managing technical people becomes way easier
    2. Get an external team
      • Don't offer equity
      • Agile:
        • Weekly useful versions of the product
        • Pay weekly or hourly
        • A successful project doesn't 'end'
      • Peanuts ==> Monkeys
    3. Avoid a 'tech play'
      • Use white-labeled 'off the shelf' services where available
      • Fake your back-end: launch with only a pretty design, do hard work manually
      • License the tech from a company in a different vertical or geographic location
  • Other takeaways:
    • No NDAs
    • Get a technical advisor
    • Ask for advice, not employment
    • Co-founders are looking for competence and traction

PS. You should me on twitter @alexeymk

 

Filed under  //  entrepreneurship   recruiting-penn-engineers  
Posted

The Mentorship Checklist: 9 questions for your potential employer

You: a CS student looking for your first or second part-time job while in school, eager to try some of this ‘programming’ stuff in the real world.
Them: Somebody you're contemplating working for.
This: A list of questions you should ask to make sure this job is going to be a good fit.

Modeled after The Joel Test
  1. Do you already have technical people on staff?
    If you’ve never done web/mobile/whatever development before, being the first technical hire for a ‘business founder’ start-up is a mixed bag.  Especially for your first experience, having a qualified technical mentor makes a big difference for how quickly you pick things up and whether you learn to do things ‘the right way’ the first time around or not.  There’s a whole class of developers out there that have picked up PHP/Javascript from sketchy tutorials that get the job done but result in sloppy/outdated code.  

    Googling around is a great way to learn, but having a competent technical mentor point you to the right/best practice/reputable tutorials and explain things early on is the difference between having a piano teacher set your posture or a cursive teacher ensure your handwriting is legible early on.

  2. Who is going to be working directly with you?
    Before taking any job, meet the person you are going to be working with most directly and take them out for coffee.

    Culture fit: Software engineering attracts all kinds of people; talking to your future potential mentor helps make sure that the two of you are going to be compatible.  There’s absolutely nothing wrong with not being able to easily get along or fit with somebody, and you’d rather find out that you’re going to be the odd one out in a company now than have to deal with it for the rest of the semester.

    Mentorship experience: Has your future mentor ever been a mentor before?  It’s fine if they haven’t, but extra bonus points if they’ve gone through this process before.  Alternately, it really helps if the mentor has ever themselves been technically mentored by somebody - they know first hand what it’s like to be in your shoes.

    Ask: What worked well in your last technical mentor-mentee pairing?  What kind of issues surprised your or would you want to change when we work together?

    Eric, my boss for the past summer, started our first day at work by asking what I was hoping to get out of the internship.  This stumped me for a good fifteen minutes; it was a fantastic question that helped crystallize our professional relationship and help us structure our work accordingly - “Alexey, you mentioned you had hoped to get more exposure across the stack. Do you want to work on the CSS for the new page we’re building?”

  3. Will my code matter?
    One of the greatest joys of writing code is seeing your code ship and run in the wild;  having users benefit from your design decisions feels great. If at all possible, make sure the code you will be writing does that.  There are (at least) two reasons it may not: internal software or dead software:

    Internal: Joel Spolsky described the Five Worlds of Software Development almost a decade ago.  Internal software doesn’t have to be well written or engineered; it is typically written quickly and then left to (hopefully) still work.  There’s a ton of ‘internal’ or ‘good enough’ software in academia and start-ups, and being able to be good at writing prototypes or good-enough software is a useful skill; just make sure that it’s not all you ever do.  At some point, make sure you get to work on code that needs to be great and not good enough; the amount you’ll learn about software engineering and code readability is drastically different.

    Dead: Most start-ups fail; your code may never see the light of day.  Even at big companies, one of my friends from this summer had her project cancelled half way through her internship for unrelated reasons.  There’s no clear way to keep your code from being part of vaporware; the best that I can recommend is to follow your gut: does the project you’re considering joining seem like it’s going to happen with or without you, or is everybody living on a prayer?  

  4. Who had my job before?
    If your potential employer has had interns before, ask to talk to them about their experience for a reference check.  If a potential employer is trying to dodge the question of past experience, that’s a huge warning sign.  
  5. What are the expected outcomes of our work?
    You’re looking for two types of outcomes: first, a particular set of skills through the job, and second, products that you can point to and say “I built that,” or “I built this part of that.”

    Skills: What languages/frameworks/libraries are we going to be using?  Do my mentor/boss/co-workers know these technologies well, or are we going to be picking a lot of them up as we go? There’s nothing wrong with having to pick up something new, (in general, most every project you do will probably involve learning to use a new library of some sort) but having somebody on the team with domain-specific experience helps.  Make sure you understand what technical skill-set in particular you are going to pick up, and then check that the technology you are learning is the kind being used at the places you want to work.  As of the time of writing this, I’d personally recommend picking up some of [Android/iOS development, Coffeescript, NodeJS Ruby, Ruby on Rails and/or Python].

    Resume: One of your tasks as a CS graduate is to build a reasonable one-page resume/portfolio/github account showing off your credibility to potential employers for the summer or full-time.  Be careful not to spend a year working on a project you can’t ever talk about.  

    Ask: is this work I will be able to point to online?  Will I be able to show the source code to potential employers?  Are there any parts of my work that I can open source and stick on my github profile? The answer will be ‘yes’ more often than you expect.

  6. What is the format/schedule for this job?
    There are a couple possible schedules for part-time jobs, from the very rigid (coming into the office on specific days and working set hours) to the very flexible (“can you get this done by next week?”).  Which works best for you depends entirely on your schedule.

    For me, having set hours for working part-time (but not full-time) has been a huge help.  I’ve got enough things going on between classes, work and extracurriculars that if I don’t pencil in X hours a week for a particular activity, it’s unlikely to get done.  Working in a specific location also helps place me focus and helps avoid everyday distractions.  Plus, if you’re working for a start-up, they probably have free snacks.   In terms of days for part-time work, I’d recommend either one or two weeknights or most of Friday.

    That said, everybody is different.  It may be that you’re able to get your work done in part-time chunks throughout the week.  Regardless, make sure to speak to your potential employer about their propsed work schedule and try to understand their motivations.  An answer like “oh, we’ll figure it out” is a useful warning sign that the potential employer hasn’t taken the time to think through how exactly your position will work.

  7. How often will we have code reviews or pair programming?
    If all you do is write code until it works and then submit it, there’s no real mentorship going on; you’re just a part-time employee.  Mentorship means that you are getting feedback on your code consistently, if not for 100% of your check-ins then at least for a considerable fraction. Not every start-up can afford to do 100% code reviews the way that Microsoft, Google and Facebook can, but skimping on code reviews entirely is not acceptable.

    Alternately, pair programming with your mentor means that you get to ask questions during your collaboration and absorb the kinds of little tips and tricks that are mostly passed down through apprenticeship.  Best practices for pair programming as mentorship is worthy of its own blog post, but the one tip I’d have is make sure the mentee has the keyboard for the vast majority of the time.

    Code reviews or pair programming; potentially both.  If you’re getting neither, you’re not learning any more than you would be if you were working alone.

  8. How will I be compensated for my work?
    Programming work pays far better than most student on-campus jobs. Rates vary: I’ve seen lab work at as little as $8/hour, internships can go between $12-25/hour and your pay as a freelancer is bounded only by your imagination and what the market will bear.  

    That said, at this stage in your career I’d prioritize learning over compensation.  Even at a relatively high salary, the fraction of your college loans that the internship will ever pay off is likely to be negligible.  If your financial situation allows for it, I’d pick at least your first or second part-time job entirely based on how much better of a developer the job will make you, and worry about the money later.  Even if your sole focus is financial gain, a solid but unpaid internship pushes your lifetime value forward far more than a well-paying dead-end part-time job.

    The difference between a great and a mediocre job/internship is huge.  I learned more in 3 months at Facebook than I did in 3 years as a software engineer in the Israeli Defense Forces.

    On the flip side, the benefit of a paying job means that the company is invested in you.

  9. What if they offer equity?
    “Whatever they offer you, equity or salary, ask for the other one”

    I can’t find the source of this quote, but it reasonably sums up the best practice here.  The start-up is making a choice about compensation: whatever thing (equity or cash) they don’t give you is the thing they consider more valuable, and therefore the thing you should be more interested in obtaining.  

    I remember emailing a web-developer who was a mutual friend when I was starting out and offering to work together.  All was well until I offered equity ‘as compensation’.  I never heard back. Start-ups throwing around equity offers left and right in lieu of payment are a pretty good ‘tell’ for amateurishness, especially given how favorable the current climate is to entrepreneurs wishing to raise early-stage capital.

    In general, I think I agree with my boss from this summer, who basically considers the equity component of his compensation to be the equivalent of a lottery ticket - nice to have, but not to be depended on.

    There’s no hard and fast rule for whether to accept equity as early-stage payment or not, but ‘no’ is a pretty reasonable default. “Either pay me for my work or show me how I’m going to get mentorship from this position,” is not an unreasonable answer at all; don’t be afraid to use it.  For the less confrontational, a simple “I’d love to work with you, but I’m on financial aid and need a steady income” is a completely reasonable excuse.

That’s what I’ve got.  Am I missing anything?  Let me know in the comments.

PS. Should I work for this startup I just met that can barely pay and only has business folk on it so far?

Maybe.   Your goals for a part-time job should be to learn and to get paid, in that order.  No technical people on staff means you’re going to have to pick everything up yourself.  None or barely any payment other than equity means that you are effectively doing the work pro-bono.  The question then becomes: is this a better opportunity for me than
  • Working on my own side projects, or
  • Taking a research position / alternate internship?

The answer is a maybe.  If you are particularly passionate about the idea, or like me have a hard time focusing on side-projects that don’t have solid deadlines, and you can’t find an alternate position that lets you learn the same technology but get paid/receive mentorship, go for it.  

PPS. Where do I look for awesome Mentorship opportunities at Penn/in the Philly area?

Here are the places I know about.

  • Penn:
    • The Daily Pennsylvanian is looking for a couple of new faces.  I’ve written about this before - the pay is terrible, the responsibility is great, it consumes you and a year later you come out having your shit together and go on to work for google or start a company.
    • PennApps Labs, (which, in fairness, I’m affiliated with) just finished our mentee recruiting process.  We’re not actively hiring right now, but feel free to shoot an email to labs at pennapps.com if you’re interested and let’s chat.  We are comprised of former Facebook, Google and Amazon interns (amongst others) who care about student-run technology and the quality of our code.
    • Coursekit is starting a Hacker House on campus.  Dan and Jim, the technical founders, are competent and friendly like no other, and former CS TAs.  I’m very, very excited to see how their program will go.  Email dan at coursekit.com if the form doesn’t work for you.
  • Philly:
    • Devnuts is a Northern Liberties hacker space, and home to Jarv.us.  Again, I’ve written about (and helped) these guys before.  They appear to have a very well thought-out internship process.  
    • Indy Hall is another co-working space, this time in Center City.  A bunch of companies work out of there - I’d email their general ‘contact’ email and see who may be hiring.
    • Gabriel Weinberg of DuckDuckGo fame already has one of our interns, and he wouldn't mind another. Gabriel is a solid hacker and, I imagine, a great mentor.
PPPS: You should follow me on twitter, check out my Intern's Guide to the Bay Area and maybe consider Hosting a Hackathon at your school (and/or come to ours).

 

Filed under  //  advice   penn   recruiting-penn-engineers  
Posted

Twelve apps to transform you into a more tech-savvy [Penn] student

I'm a DP columnist this semester, writing once every two weeks for the school newspaper on technology and entrepeneurship.  The below is a reasonably useful list of applications that students should be using, both for Penn students and college students overall.

Non-penn specific apps

Fiesta.cc 
Whenever working on a team project, there’s always that guy who forgets to reply-all — annoying, but not worth creating a Google Group for. Fiesta.cc is the best of both worlds — just email your collaborators and CC mktg101@fiesta.cc (or whatever name you want), and it creates a listserv for your team automagically.

ScheduleOnce
Everybody is busy, and scheduling sucks. ScheduleOnce pulls in participants’ Google Calendars to avoid the chain of emails around “Well, what about 3 p.m. on Thursday?” as well as the burden of manually entering every damn time you’re free next week on a Doodle.

QuickCite
Bibliographies were the bane of my existence when I took my writing seminar. Take a picture of a book’s ISBN code with your Android or iPhone and QuickCite will email you the citation, formatted according to MLA/APA/whatever guidelines you need.

Venmo
“It’s like your phone and your wallet had a beautiful baby.” Use your phone to pay your friends back when they cover you at a food cart. My friends and I use Venmo to split dinner, buy drinks and even pay utilities. Started by two 2005 Penn grads, Venmo has apps out for Android and iPhone, but text messages work as well. No commissions at any step of the process. It’s like PayPal, if PayPal didn’t suck.

...see the rest in the article here.

Posted

An Intern's Guide to a Summer in the Bay Area

Dear Future Intern,

Welcome! You just got an internship at this amazing start-up, so you're starting to look for housing and are getting pumped for your summer. Rightfully so - the Bay Area is awesome!  

I spent my last two summers out here as an intern, first at Facebook and (am currently at my last day) at 2bkco, an early-stage, awesome start-up.  It took me a while to figure out what the things to do were out here, especially as the only intern at a small company.  Hopefully, the following will get you off to a running start:

[Note: What'd I miss/get way wrong? Let me know in the comments]

Housing

Where should I live?

Live in San Francisco, Mountain View, or Palo Alto.  As far as start-ups go, San Francisco is more artsy/hipster-ish/design-friendly, with a ton of startups mostly in the SOMA district and (from what I can tell) more reasonable working hours than down in MV/PA.  If you want a well-rounded summer, San Francisco means that there is a ton to explore around the city without going to the same place twice, from dive bars to fantastic restaurants, to Golden Gate Park to Mission Burritos.  San Francisco is fun.  I lived in Mountain View during my summer at Facebook; some friends bashed MTV as being a dead town, but I don't necessarily agree - Castro Street is a reasonable downtown, and so long as you know other interns/people in tech, you're not going to be bored. Palo Alto is just north of MTV (45 minute bike ride), a bit more upscale/happening, but therefore more expensive. 

Your mileage may vary if you live anywhere else - from what I've heard, it's tough to get out to events and there just isn't the critical mass of other interns/people from tech.  I have been especially advised not to live in north San Jose.  There area also areas of SF you don't want to live in - the Tenderloin, most of the Mission, parts of SOMA. Check out this amazing map that figures out neighborhoods in SF based on Craigslist postings.  Also make sure to check out the Walk Score of a place before agreeing to live there and aim for 75 or above.

How do I find housing/How much should I pay?

Figure out who you are going to live (probably friends from college/general friends also out in the area) and start looking. Early. Looking for housing sucks and the market is pretty competitive, so just try to get it out of the way as early as you can.

Note: it is really hard to find a more than 4-or-so bedroom house in SF. We were looking to put together a huge hacker house and it completely fell through just because of the types of houses that were on the market.

Expect to pay about $1,000 per person per month - slightly less in Mountain View, perhaps.  You can try to find something cheaper, but we were at the point where we were ready to pay up to $1,100 or $1,200 a person a month just to get something.  

In terms of tools, PadMapper is a fantastic layer on top of Craigslist that helps you look for houses that fit your criteria, including subscribing to new listings via email.  I'm still waiting for a somebody to solve Housing to Bay Area interns by owning mass inventory - I spent at least 15 hours over spring semester looking for housing.

Weather: A quick aside: San Francisco is consistently at around 55F over the summer (light jacket and jeans) and Mountain View/Palo Alto are at around 75 (t-shirt and shorts or jeans).  It rains in SF, but very rarely.  FYI, so you know what to bring.

Transportation

Public Transit

If you are not in San Francisco, try to be somewhere reasonably near your Caltrain stop - you'll be going around the Bay Area reasonably often.  I've had friends live 30 minutes away from a Caltrain stop and barely ever hang out with us as a result.  FYI: It takes about an hour to get from Mountain View/Palo Alto to San Francisco on the Caltrain. Bikes are welcome.

In San Francisco, public transportation is surprisingly awesome.  BART is the express let-us-get-you-to-popular-places line and MUNI is the normal, comprehensive transporation grid. I lived a 10-minute walk from a BART stop and was very happy with that.  

From everything I've heard, the VTA (Mountain View to San Jose, as well as other routes) sucks.  Don't depend on it as a primary mode of transportation.

Aim for a short (<60minute, ideally <30 minute) commute. If you're working for a big-enough company (Yahoo, Google, Facebook, etc), these will tend to have shuttles from various places in the Bay Area that drive you to work. Those are awesome.  

Bicycle

I strongly recommend getting a bike, though. I had a 30-minute commute by bike both summers.  It was the only exercise I got all summer, and it was great.  Plus, bikes make it easier to get around Palo Alto and Mountain View, whose public transportation options are nothing to brag about.  Same goes for San Francisco - I'm a 30-minute bike ride from anywhere, and I love the freedom of not having to wait for public transit.  The Bay Area is incredibly bike-friendly: bike lanes everywhere, and awesome bike trails to hit if you're in the athletic mood some weekend.  

To procure a bike, consider one of the following options:

  • Summer rental from Stanford's Campus Bike Shop.  Rent an awesome bike for the whole summer for ~$300 and don't worry about maintenance/selling it at the end.
  • Buy a bike (either at a new bike store, for about $500+, or off of Craigslist, for ~$200) and either ship it back to your campus (~$120) or try to sell it at the end of the summer, again through Craigslist.  I ended up buying a bicycle and selling it, just to avoid the effort of the Craigslist shopper's experience.  All in all, I depreciated about $200 from my bike over the summer, marginally cheaper than having just rented it.
  • Ship one from your home/campus; again, expect to pay about $120 for shipping each way.

Rent-a-Car

Also, ZipCar is apparently friendly to 18+ year-old drivers. I ended up renting a car the old-fashioned way over weekends for road trips, but ZipCar might be cheaper for evening trips.  

Things to Do (tech)

Intern-Specific

The questions an intern (especially at a smaller company without a formal intern program) is going to face is, how do I meet other interns/hear about intern-specific events that I should be going to?  I'm not sure which of the programs/list-servs below are going to persist next year, but here's what was up (that I know of) this year:

  • StartupRoots is a non-profit that hosts speaker events once a week, specifically for start-up interns. I only went to one event, but the vibe that I got was that the speakers were interesting and the community of ~50 interns that showed up to most events was a solid one.  The weekly program costs $150 or so (to cover food), and the idea (from what I understood) was that your start-up would pay for that as part of your internship.  If not, pay yourself. It's well worth it.  
  • Apparently, there was a Wednesdays.com Bay Area Intern group this summer. Unfortunately, I only found out about it while doing research for this article.
  • Your school should have a Facebook Group or a list-serv for people in the Bay Area over the summer. If it doesn't, start one. Ours at Penn was pretty useful.
  • Figure out who backs your start-up; I know that at least YCombinator, True Ventures and Andreesen Horowitz had intern programs (or at least list-servs) for interns at their start-ups.  

Any time I would hear of an event over the summer, it would be through one of these groups. It was pretty frustrating, actually, that there was not a single group somewhere for all of these intern/tech/Bay Area events.  In an effort to solve this problem, here's a group for next year.  

Intern Events

Throughout the summer, start-ups and larger companies consistently had fun events for general Bay Area interns. Throughout the summer, I either went or heard about events at Facebook, Stripe, Color, Yelp, Twitter, Bump, LikeALittle, LinkedIn, Mozilla, Twilio, Quora and Dropbox.  Several companies (LinkedIn, Mozilla, Stripe, Quora) held intern hackathons that (from what I hear) were a bunch of fun. 

How do I hear about one of these?  Keep your head up and follow the list-servs above. If there's a particular company that you are interested in, email the recruiter, introduce yourself as an intern at X this summer and mention that you'd love to check the company out/be notified of any such events. Assertiveness is impressive. From my experience, approaches like this tend to work.

General Tech Events

Intern events are fun, but it's also worth checking out what the full-time tech scene is up to.  Some recommendations:

  • Hackers and Founders and 106 Miles are two of the tech meet-ups that I've been to and can say were a worthwhile experience to have attended. You meet a lot of people starting their own companies or working at cool companies or just generally interested in talking to other people in the industry.  Github also hosts a monthly drinkup (if you're over 21) which I have not been to but hear a lot of good things about.
  • Worthwhile mailing lists that I'm familiar with include Hacker Dojo's and Startup Digest.
  • If you're the kind of extrovert that is comfortable meeting random new people, try Grubwithus, which organizes dinners for new/interesting people. 
  • If you're super extroverted and all networky and everything, check out my roommate Max Wendkos' post on networking in Silicon Valley.
  • Hackathons: There's a lot of them here. If you can't find a hackathon that's happening on any given weekend, you're not looking very hard.  I got hackathoned out somewhere around the beginning of July, so I'd advise not doing more than one a month or so.  Still, some cool hackathons that I attended that will probably be occuring next summer as well: HapiHack, BeMyApp, Mozilla's World Series of Hack and the Muther of All Hackathons.  
  • Some of my friends also attended Defcon in Las Vegas; form what I hear, they learned a ton and thoroughly enjoyed the experience.
  • SuperHappyDevHouse is a fantastic day-long hackathon/meet-up that is run by the folks at Hacker Dojo, once every six weeks or so. I met a ton of people and thoroughly enjoyed the lightning talks. You should go.

Tech Hangouts

I'm not sure if I've got all of these, but here are some of the cool 'people with laptops hang out here and you can tell they are your kind of people' places in the area:

  • San Francisco: Check out Epicenter Cafe in SOMA and The Summit on 19th and Valencia in the Mission.  The Summit is also the I/O Ventures incubator space and has delicious drinks (Berry Bomb Cooler and Loose Leaf Tea FTW) and great food.  Epicenter Cafe's cool too, but they charge for the Wifi.
  • Palo Alto: Every time I go to Coupa Cafe, I end up meeting somebody I know from somewhere, or hear an entrepeneur pitch their start-up to a VC or Angel. Kind of fun. No wifi on weekends, sadly. 
  • Mountain View: Red Rock is the Coupa Cafe of Mountain View. Hacker Dojo is, from what I hear, a 24/7 version of Super Happy Dev House.

Things to Do (non-technical)

Start-ups are awesome and all, but make sure you actually check out the Bay Area - the weather is fantastic and there are some great things to see.

  • Bike the Golden Gate Bridge in SF: Rent a bike if you don't have one near Fisherman's Wharf, and do the two-hour bike ride through the Golden Gate Bridge and to Sausalito, (and Tiburon, if you've got the energy for it) then take the Ferry back.  Bring a group of friends. Sausalito is beautiful, the trip is well organized for tourists and a lot of fun. Don't miss this.
  • Walk Around the Santa Cruz Boardwalk: Rent a car or find somebody with one and drive down to Santa Cruz.  Check out the Coney Island-style outdated boardwalk/amusement park (I'm partial to the indoor minigolf course), hang out at the beach (take a Surf lesson if you've got the energy), maybe play some Volleyball. A quick not on Beaches in Northern California: They're pretty cold and windy, and something like two beaches have real sand. Santa Cruz is OK on a warm day.  It's still worth going, but don't expect to swim too much. 
  • Napa Valley if you're over 21 and don't mind spending $100 or so in a day, go on one of those fancy Napa Valley Wine Tasting tours (alternately, Bike and Wine tastings are fun too).  
  • Organize a weekend trip to LA or a nearby National Park: Rent a car and a cabin somewhere. Book a couple of weeks in advance. Don't expect to find a ton of space for 4th of July weekend. I never went, but a bunch of friends did and they thoroughly enjoyed the experience.  
  • Computer History Museum: another "I never went, but this comes highly recommended" things to do in Mountain View.  

That's it (so far).  Let me know if I'm missing anything.

Credit to

  • Max Wendkos for his networking research.
  • Eric Allen my boss for the summer, for introducing me to Hackers and Founders, Super Happy Dev House, and who knows how many of these others.

PS

  • You should follow me on Twitter. I tweet about hackathons and startupy things, and not too often.
  • If you're looking for a summer internship, may I recommend 2bkco?  I had a fantastic time (post on that coming up)
  • If you're a CS student/hacker on the East Coast, you should check out PennApps, our friendly neighborhood hackathon. It's a lot of fun.

Filed under  //  advice   entrepreneurship   jobs  
Posted