Horizonites enter as dreamers and leave as true builders.
By nature, they are excited about brainstorming new ideas, coding prototypes and bringing products to market. In the excitement of building, it comes as no surprise that a few Horizonites decide to pursue Software Engineering opportunities.
Meet Rajiv Patel O’Conner (Horizons Spring ‘17) a student at the University of Pennsylvania. In addition to building an incredible Video Search product that uses computer vision + machine learning to analyze video data, Rajiv was able to leverage his technology skills to land a Software Engineering internship.
Let’s learn how he did it:
Horizons: Hi Rajiv, how are you doing today?
Horizons: Tell us a little bit about your internship!
Rajiv: This summer, I am working for SRI International. I will be writing image processing software for a next-gen microscope.
Horizons: What about the opportunity appeals most to you?
Rajiv: While I’m happy to work on something that leverages my background in physics and biosciences, I am most excited about the team I’ll be working with and the responsibility I’ve been given.
While the advice that you should surround yourself with people who you aspire to be like and care about your development is often given in the context of full-time jobs, I think it’s equally important in an internship. Also, I have the mindset that there’s always something technically interesting to work on wherever I am, so I might as well like the people I’m working with. The team I’m working with this summer is visionary, hard-working, and cares deeply about my development as a human as well as a software engineer.
I’ve also been tasked with a core technology to the team’s product. Just as pressure makes diamonds, knowing that my success will have a significant impact on the product drives me to do my best.
Horizons: What types of experience does someone need to break into software engineering?
Rajiv: I’ve found that it’s less specific knowledge as much as it is a willingness to learn, step outside one’s comfort zone, and grit. If you want to work at a larger company, practice system design and algorithm implementation. If you want to work at a particular startup, build something with their stack and send it to someone there. Hustle your way into an interview (cold email, get an intro to a mutual friend, etc.). Being able to build an end-to-end product is a HUGE plus.
Horizons: What do you think helped you stand out amongst the thousands of other SE candidates?
Rajiv: Most SE candidates have no background in the life sciences and/or imaging. The learning curve for these domains is relatively high, and the ability to write software that is at the intersection of imaging and biosciences requires a solid baseline in these domains.
Horizons: What did you do to nail the interview?
Rajiv: Be yourself and get really knowledgeable about the product and the domain. For me, it was learning more about a particular imaging technique and reading a few papers concerning algorithms involved with a particular type of image processing.
Horizons: Any parting tips for others hoping to follow in your footsteps?
Rajiv: A lifelong teacher once told me that “if you have time and are willing to put forth effort, you can understand everything in software engineering. It’s all manmade.” I really do think this is true, and oftentimes the best way to understand something is to build using it or read about it. It’s also really easy to be slightly dishonest with oneself. That could mean writing janky code for a bug fix and never changing it or saying that you’ll finish a project next week but never getting around to it. The ability to be honest with oneself, do things to completion, and deliberately improve one’s coding practices will take one far.
If landing a software engineering internship is on your roadmap, reach out to firstname.lastname@example.org and get your questions answered!