Programmers can come from anywhere, even a field that studies galaxies far, far away. Felipe Gómez-Cortés is a physicist, currently writing a paper about Dark Matter Halos and Star Formation Rate at Redshift 6. Felipe doesn’t have a CS degree and has never worked as a software engineer in the industry a day in his life. There was even a time when he found himself kicked out of college after academic probation.
On paper, he’s probably someone you wouldn’t trust with your industry code. Within 6 seconds of looking at his resume, you know most of his experience stems from academia. To most people, it’s not immediately clear how cosmology might relate to real-world software engineering. Consider the Facebook recruiter who plainly pointed to “relevant experience,” “company recognition” and “keyword research” as the top criteria when sifting through traditional resumes.
But if you dig deeper, some might call Felipe a computational genius. He was home schooled as a child in Bogota, Colombia, blasted through the average education and made it to the university at the age of 15. Hence, the academic probation was less about a lack of capabilities and more about discovering the world of college parties at a young age. Math and computing has always pulled him. As a kid, he taught himself to use Excel to graph some polynomial and trigonometric functions. Eventually, he earned his B.Sc at the National University of Colombia, and now has one semester left in his M.Sc working in computational astrophysics.
Even though Felipe is not your traditional software engineer, he has more than enough potential, intelligence and–most importantly–self-motivation to be an asset for the right engineering team.
Hiring managers often complain about technical talent shortage. Stats from the Bureau of Labor Statistics (BLS) tell us that 1.4 million positions will be open in computing with only 400,000 computer science grads in 4 years. This ran a nationwide alarm, where even the White House is rallying communities to start training Americans on the critical skill of coding. In fact, we partnered with the White House TechHire Initiative to host the inaugural TechHire CodeSprint (or online hackathon) this past weekend to give nontraditional software engineers a chance to be seen exclusively to employers around the country.
Felipe exemplifies the self-starting engineering candidate who happened to excel in academia with hopes of eventually moving into the industry. But the reality is he’s often missed by most employers’ resume screening process. There’s a common stereotype or misconception that academics may not adapt to the culture of the software industry. While it’s true that programming for research is widely different than deploying real-world code, should folks as ambitious and accomplished as Felipe be overlooked because of traditional filters?
We sat down with him to learn more about his experience of being a great coder without the traditional resume of a software engineer.
Tell us about your first tastes of coding. And how does physics relate to programming?
Well my first taste in computing was 6-7 years old, I had a game that let me draw on a screen. And I had to position an object on the X, Y axis and move the position. My parents are professors, so they encouraged me to learn things like this early on. At 13-years-old, I was finding real roots of equations.
I first started coding HTML on Microsoft Publisher. Later on in college, in my 5th semester at college, I took a course on “Programming and Numerical Methods,” where I learned to write code in C++.
I learned some methods as Runge-Kutta, Molecular Dynamics, which are actually critical to solving physical problems in mechanics, fluids, electrodynamics, quantum mechanics. During my 6th semester, I took a course on “Computing Tools,” where I learned about Monte Carlo, Finite Differences and Latice-Boltzmann. And during my 9th semester I learned about “Simulation and Numerical Methods.”
This reminds me of what LinkedIn’s data scientist David Hardkte told us, who was tasked with building a data science team at Bright.com. He said most recruiters are worried about titles, but programming is a scientific tool.
Yes, I agree. Most people think programming is only related to computer science, but really every scientific or even mathematical discipline benefits from knowledge of programming. I’m finding that there’s a lot of demand for physicists in software engineering.
By learning programming for physics, I didn’t learn particularly about CS algorithms, but I learned about math and numerical methods. With C++, you can program objects with mass. Physics is very similar in that you’re taking things that have mass, creating special classes called planets. Planets have mass, positions and speeds. If you know the mass of two planets, you can calculate the force between them. It’s very easy. If you know the force, you can calculate the acceleration. If you know the acceleration, you can change the velocity.
With this, we’re calculating the analytical response. Comparing the movement with the simulation. You can calculate the trajectory of potential dangers of planets close to the earth.
Even as undergrad student I have used programming to study the normal modes of a rectangular membrane, the orbit of horseshoe comets, the electric potential over the electrons in the atom, the airflow in smoke rings, and I’ve made a small traffic simulation studying flow and speed.
I’m picking up CS algorithms now by sites like HackerRank and other ways of self-studying.
That’s interesting. So, you’ve been dealing with lots of data?
My interest for data structures began when I started working in astrophysics computing. My grandfather was an astronomer, so I’ve always been interested in astrophysics. The data in cosmology, computational cosmology, can tell the story of the universe in a very massive scale. Not just planets or milky way or local group of galaxy. But the story of the whole universe with many galaxies. What’s the structure of galaxies?
Astrophysicists have made simulations using Fortran and C++ in very big clusters.
Take a look at this quick clip on the Millennial Simulation. It’s a computer program that simulates the structure and the evolution of the universe produced 25 terabytes.
Very interesting. So physicists have been solving the problem of Big Data for years, and now it’s trending in the industry recently. How applicable do you think academia is to innovative programming, like machine learning, to that of the industry?
I haven’t worked in the industry for me to be able to compare it definitively. But I have an example for the way the industry and academia can learn from each other. So, Facebook allows image processing and recognition, right? Physicists have been doing this for many decades by trying to classify the galaxies in categories. Trying to find special galaxies.
What Facebook is doing with image processing is really fascinating and difficult too. I want to learn more about Machine Learning. And I’m going to jump into the ML domain next on HackerRank to learn more about it. I’m really interested in learning how to process data in a very efficient way.
By the way, why did you drop out of college for a while?
I had a very low academic scores. I was 15 years old, and all my friends weren’t taking school very seriously at the time. And eventually my university professors said I can’t study there anymore. It was a very interesting semester. To make a living and fill up time, I taught English courses, I was a water, and I drove a public small car to earn money.
So, what fast forward to today, what has the job searching experience like for you?
Well, I think the it’s tricky because most job ads relevant to me are either for physicists, which almost always require a doctoral degree (which I don’t have). And I’m looking to work in the industry.
If you look at Google Careers or other job postings on company pages, they all want some specific language like CSS or HTML5 or PHP. Often times, I run into interesting jobs where I don’t have the exact match. They usually want a CS degree.
Some companies require me to solve a HackerRank challenge, and that’s how I discovered HackerRank’s community to practice computer science fundamentals like algorithms.
[Also see: “Don’t Hire by Keywords“]
How did you do on the coding challenges?
I got a perfect score on two out of three of the challenges within 90 minutes. The third one was a timing issue. And that was very nice for me because HackerRank platform has a code editor and manual entry and input. It has the secret input test – 10 or less.
Best of all though, discovering HackerRank has lead me to learn more about CS fundamentals and algorithms that I’ve never seen before. I see the problem, name of the theory and I go to WIKI for the first place to ask. And I can search on the internet on the material to learn. I come back to HR to finish the challenge. Learning about these theories.
Overall, the challenges are a good way to show my passion for solving challenges, which recruiters might not see from my resume immediately.
That’s awesome. Any luck with job prospects? What will you do now?
I did get one call back through LaunchPad (which uses HackerRank), but there were visa issues unfortunately. Right now, I think I want to take a break, but I’ll be sure to keep looking for great opportunities in the industry.
I’m thinking seriously about a job outside of academia. I wanted to do something different. All my life, I’ve been in academia. I want to do real work.
Any advice for other folks with unique backgrounds like yourself who want to get into programming?
If you enjoy learning, and you like to solve challenges, HackerRank is the perfect place to find challenges, new methods and solutions.
Start practicing on HackerRank.