CSC295.02 2013S, Class 11: Soren Berg '08 Overview: Admin: Part one: A Chronological Tour of Soren's career. * Came into CS relatively late. * Got a summer MAP doing Inkscape with Media stuff * Then spent a year stuck with Sam doing the MediaScript IDE. * His SO got a job offer in California. He spent a summer working on Google Summer of Code project - Continuing on the Inkscape stuff * Learned downsides of working from home - didn't see many people * Then low point in his career. Computer repair shop. Lots of problems. Left quickly. Got ready to start his own business. * Before he launched that business, networking came to save him. (In his case, the two Ians.) * Ian B connected him to someone doing a startup. A place for Facebook addon companies to send super targeted emails * Working for a startup is unlike working for anything else. * You have a lot of freedom * You have lots of things that you can learn and do * You have a lot of control * It can be very stressful - (The founders had mortgaged their lives on the company and he was the only coder for quite some time.) * Could only take vacations at places that had good Internet connectivity * A really fast way to get better at anything/everything * "It's just full throttle" * Process; Every morning they'd get on Skype and talk. (Soren was involved with customers, too, including customer support.) * Note: Startups pay primarily in equity. Much of your income is therefore "maybe money". * The danger in a startup seems to be "no one cares" rather than "someone will steal your idea" - so they spent lots of time talking to other people about their startup and hearing from other people about their own startup * Startups give you someone who is a bit above coworker - you have a compatriot in arms * As compared to research * Research is more slow paced. Much more "do it right" than "do it right now" * Then his company got acquired by Twitter (from four-person company to thousand-person company) ["aquahire"] * Some benefits of the larger company * A chance to do a "deep dive" into something of particular interest * "Flitterers" may have to adapt * Gives you a chance to grow your network - e.g., from social things like the Board game group * Twitter is growing rapidly. Doubled in size after he started. What does Soren do? * Works on email infrastructure * Some people are responsible for writing emails to encourage people to use Twitter more (or for the first time) * Then they identify the target audience. * Soren's group is responsible for getting the data to the audience - How do you get through filters, how do you ensure no duplicates, ... Other notes * Had planned to go back for a Master's degree, but the costs of stopping work right now are high. * And work is a great place to learn. E.g., distributed databases * Ruby on Rails is great for a startup, but not for a large company. It doesn't scale as well as you'd like. * Diversity at tech companies (at least home countries) is astounding Differences of writing code for different jobs * [This may make a difference to your day-to-day experience as a coder.] * The best question an interview candidate ever asked: "What is your deploy / release process like?" * At a startup, there's one repo, maybe a few tests, a few committers, and you may sometimes hop on the working server. * At a bigger company, it can depend on where you are. + Likely to do continuous integration (Twitter uses Jenkins) http://jenkins-ci.org/ * The more security you have, the more frustrating it can be for a developer. Some lessons * You can get "cabin feverish" if you don't have social outlets * Never be to proud to take a low-paying job. * But don't be afraid to start out on your own. * You may not be a good networker, but if you just get to know one or two good networkers, you may be set. Utilize the six degrees of connection hack. * Don't consider your work network your only network. Anyone you know in the industry in any capacity is part of your network. * A smart trick of his colleague - an email program that tells * Turnover is bad for companies, but good for their employees - who get extended networks * Importance of good interview technique, even if you're having problems * Introduce yourself, shake hands * Talk about thought process and ideas * Let's someone give you a hint * Listen for feedback * Important to check yourself periodically - ask yourself if you're doing the right thing, maybe ask your interviewer if you're doing the right thing * On whiteboard: leave space between lines so that you can fill in things * The ideal interview question has a simple solution and then one that you can expand upon as time goes on Some questions * What did the founders at your startup do, given that they weren't coding? * One did business stuff - funding, etc. * One was really an email expert - how do you avoid spam folders and such * What difference did Grinnell make? * It may not make a difference in your career, but it may make a difference in your life. * What do you think about working as the one tech person at a place (e.g., at a nonprofit) vs being in a technical place * You lose the opportunity to have mentors and such * But you may be more constrainted at a technical place (alternately, have more freedom at a less structured place) * Technical companies are a good way to make money * It's nice to believe in what you do - For example, Twitter gives lots of peole a voice (and people at Twitter believe in protecting free speech and anonymity) * What's your management process? (Or are there problems you have with it?) * His manager has a lot of people below him (about twelve), so you can be overlooked if you're not working on the hot process * Heirarchy is pretty flat - there are only a few levels up to the CEO. * What do you have about side projects and do you have your own? * "Interviews are just so short." If you're the interviewer trying to get a bood breadth of information, it's not a lot of timea * Twitter has a HackWeek once a quarter * His side projects tend to be game related * What are your career plans? * Maybe move laterally (after he adds an important feature) so that he can get away from email. Perhaps developer productivity or observability or ... * How will you know when you're ready to leave? * When he's stuck in a rut, perhaps not able to move What did you learn that was new? * Networking can work if you just know a few people who network well * You can be successful even if you're not supremely agressive * Maybe side projects aren't that important * Sometimes it's the roll of the die whether or not you get hired - maybe you had a crappy day or a crappy question What important issues did you hear repeated? * Grad school is hard to do once you have a few years in What important ideas were challenged?