Over the summer, I interned at Threat Stack which I can confidently say was the most important four months of my life as a developer. Fundamentally it came down to they way they treated me and a culture of personal responsibility that really clicked with me.
On my first day, my team lead told me to open up Jira and take a card. That’s it, I was shown the “platform diagram” (a map of countless microservices that make up the product) and told to have at it. It was overwhelming. But then I took my first card, I finished it, and I took another. The fear wore off and I learned a ton.
At every step of the way my team happily answered my questions, helped me through deploys, and more. I felt constantly supported. But soon I realized that they weren’t doing all of this just because I was an intern who would need help. Over the months, I watched four people onboarded in the exact same way. I wasn’t treated any differently than other full-time software developers.
As I progressed during my time at Threat Stack, my responsibilities grew. My manager would pull me aside and give me critical production tasks to do, I worked closely with architects to refactor important systems, and I was even involved in fixing critical production incidents as they happened. This didn’t all…
It shouldn’t be surprising when I say that I don’t like whiteboard interviews. I’m pretty sure nobody does. It’s a sentiment among developers as old as time. Whiteboard interviews are a coming of age experience for us. Given a complex word problem, select and implement the correct algorithm that you were expected to memorize before the interview.
Something about the mix of being put on the spot combined with the pressure of having to write code in front of someone else always gets to me. I generally do fine, I solve the problem, but not without a few embarrassing mistakes along the way.
I replay these interviews in my head hundreds of times afterwards, and I always keep coming back to one question: what do these interviewers think they’re learning about me? What new data points were they getting that couldn’t be found in my portfolio, LinkedIn, GitHub repositories, or simply by talking to me?
The specific traits that makes a talented developer are incredibly hard to define, and this ambiguity means that hiring is a really tough job. So I sympathize with them when they attempt to boil it all down to a question that they think is quantitative. My performance on an algorithmic question is easily compared to other candidates. But do I ever really need to recall the exact implementation of quick sort, or know…
Software development is a gigantic field. Not just in the millions of people in our industry or huge market cap attached to it, but in the sheer size and depth of topics we can apply our skills to. Basic programming skills enable us to take on wildly different tasks and completely different sub-fields all under the umbrella of computer science. It’s easy to say that you want to be a developer, but what we need to be asking is what sort of developer do we want to be? What subset of CS problems do we want to be solving day in and day out?
Initially when this question was put to me, I would say that I wanted to do it all. I love the field of computer science and I don’t want to miss out on exciting parts of the field. However, as I progressed through my internships, I realized that specialization would allow me to experience the parts of software development that I love to the fullest.
What I realized was simple, when you specialize, you choose a set of problems that you personally find the most compelling. You’ll come into work excited everyday because you love working on those specific tasks. Specializing gives you a chance to filter for only problems that you’re genuinely interested in working on.…
There’s an invisible ceiling at the top of all jobs, some point where you aren’t learning or your career isn’t advancing as fast as you hoped for. Most companies have a plan for this. They promote, incentivize, and hand out larger opportunities as needed. They have to or they lose their employees, but there’s no need for a system of advancement for interns, employees who aren’t going to be there for the long haul anyways.
As an intern, joining a new company is terrifying, you’re tossed into the middle of an unfamiliar world and you need to learn really fast while trying to exceed your co-workers’ expectations. The first month of an internship most concentrated learning environment I’ve ever experienced, but eventually tapers off. You’ll have learned the technology the company uses, figured out the language they speak, and you’ll begin to learn at a lower rate.
This happens to full-time engineers of course, but it happens far sooner to interns simply because we aren’t there long enough and the work given to us reflects that. No matter how great we are as software developers, we can’t be given long term, important projects because we’ll be gone in a few months.
I’m not going to advocate that the company does anything to fix this problem for interns. It’s enough of…
As interns, we don’t often think about why companies are offering internships in the first place. We know that internships help us kickstart our careers and build valuable stills, but why do companies hire us in the first place? With the answer to this question, we should be able to leverage it to clinch internships more successfully and to understand our fundamental role as an intern.
In my experience, there are three root factors that explain why companies offer internships. I’ll start with the easy one: internships create a talent funnel for companies to fill future jobs. To think of it another way, companies are banking on us wanting to work for them in the future because we’ve interned with them.
In essence, companies are getting a cheap “test phase” for future developers, and, if it works out, the ability to convert that into a full job. It’s easy to see the allure of a system like this. An internship pre-tests us, and companies know whether we’ll perform. It’s the ultimate reference check.
The second incentive for companies to offer internships is that they’re getting cheap labor. This doesn’t always seem immediately obvious because a completely incompetent intern would logically be a drain of the company’s resources…
The search for a summer internship is a lot like a startup raising its first round of VC money: you get a lot of no’s, and you’re just looking for that one yes. It’s a long grueling process, involves loads of Excel spreadsheets, introductions, and countless meetings. However, while in the VC worlds there simply unfundable ideas, there are no unfundable people. Everyone is fit for an internship, it’s just a matter of your persistence.
I want to start by flipping how looking for an internship is normally done on its head. There is one rule, you should never apply for an internship. By that, I mean you shouldn’t log onto a company’s website, upload your cover letter and résumé, and hope. Any company with an application process like this is getting hundreds of these from MIT students with incredible manicured résumés. We don’t want to compete with that so we have to change the game.
There are four steps in getting an internship in this new paradigm: the introduction, the informational interview, the ask, and the interview-lite. This process isn’t résumé based and its often not based on your technical skills. We are all more than our résumés, but we can only explain this face-to-face.
This starts as all overly planned projects do: an Excel spreadsheet. Here I list all my family, extended fa…
I’m Jake Kinsella, “developer and aspiring entrepreneur” (in case you missed the huge text on the homepage). Before I get any further, I should probably explain what that means. Don’t worry I’m not going to explain to you what a developer does as if you’re a child, but explaining how those words relate to me will probably give you an understanding of why I’m writing this blog in the first place.
To start, I’m going to roll back the clock all the way to fourth grade when my dad taught me how to program. So yeah, I guess you could say that becoming a developer was expected of me. And if sitting a 10 year old down to teach him Ruby sounds absurd, you’re not alone. I remember crying, asking for my dad to explain the syntax for if-statements again, and him telling me to Google it (a particularly hard lesson for a fourth grader). But for some reason, I kept at it and it changed the course of my life.
Ever since then, I’ve been an avid programmer and I’ve had all sorts of internships at startups in Boston, experiences that have shaped me as a developer. Nowadays, I’m a freshman at Northeastern studying – you guessed it – Computer Science.
Before I get ahead of myself, I should probably explain the second half of that absurd caption that is fast becoming my personal brand: aspiring entrepreneur. For as long as I can remember, I’ve wanted to start…