INTERESTS: Hiking, working out, and learning through hacking, online courses, and reading. My technical interests include distributed systems, database design, and data processing at scale. I’m looking to learn more about machine learning, computer architecture, and cybersecurity.
Where are you from?
I grew up in Portland Oregon and went to college at Fordham University in Bronx, New York, and got my undergraduate degree in math. While in the Bronx I got involved with volunteering, entrepreneurship, and technology, and did work in the tech scene. I worked for a startup accelerator called MetaBronx that supports minority and women-owned tech startups. Basically, the goal of MetaBronx is to find a way to diversify tech startups, because people from different backgrounds come-up with different ideas.
What did you do before 42?
Right before I came to 42 I worked with MetaBronx, and I was a co-founder of a VR startup, a non-technical co-founder, working on the business end. I didn’t have any success but it was a good learning experience. Then I took part in the second ever piscine at 42 before 42 fully launched.
Did you have any programming experience before 42?
I majored in mathematics, I did some research, I took a couple of computer science classes, my academic background was weak in coding. In college, I started to take part in hackathons that sparked my interest in technology. I met Oliver Belanger, my friend, and roommate who also went to 42, through the hackathons. Together we won the Angelhack Hackathon in Manhattan in July of 2015.
How did you hear about 42?
I found out via the online logic games that were part of the admissions process. I looked over at Oliver who was playing a game online, and it was the first of the entrance exam games. The competitive streak in me made me want to do well, and I did well enough that I got accepted into the piscine. I was working at startups but I felt like I didn’t have the skills or experience to offer anything, I wanted a real concrete experience. 42 was the perfect impetus for me to jump into engineering feet first. I wasn’t sure if it was the path I wanted to take, but I ended up enjoying the piscine and got to level 7. So it was like, this is something I want to do.
What did you like best about your 42 experience?
One thing that 42 provided me for the first 2 months was a place to rack up my lines of code, I thought about coding before but hadn’t really done it. When I first got to 42 I wasn’t very social, I didn’t make any friends, I just went to the lab and coded every day. When I got into the curriculum far enough to satisfy myself I ended up interacting with the community and making close friends. I taught an algorithm course in spring 2017, I still have all the notes on my GitHub. At 42 you are surrounded by other budding engineers and other young technologists, you may see that at other top computer schools, but I didn’t at Fordham. But people at 42 are there because they care about technology, and they were the ones tinkering with computers instead of paying attention to history class. I was only there for 5 months before I got my full-time job. I found being able to think through the logic of code was something I could do quickly. At 42, you also learn how to build some thick skin, and find a way to disassociate yourself from your code, it’s like that with anything. I played a lot of chess, in a similar way, you have to get used to being wrong and failing because everybody can’t be right – someone is always going to lose.
How did 42 prepare you for the workplace?
One thing was getting used to writing lines of code, getting used to a technical environment and systems. Being able to communicate with lots of different types of people, which I was able to do at 42, is one of the most valuable skills. What I found working as a software engineer is that a small amount of the job is sitting down and writing code, but the types of conversations and systems you are thinking about, those share a lot of similarities with what you work with at 42. A lot of it is self-definitive, it was the place where I decided I wanted to be an engineer. In many ways, I wouldn’t be where I am today without 42, from a skill and resume perspective. Just by improving my ability to interact with and work with brilliant people.
How did you get your foot in the door where you work?
I got into LinkedIn’s Reach pilot program which is a 6-month apprenticeship program with an option to get a full-time offer at the end. They had 700 applications, you weren’t allowed to submit a resume or credentials. What they did was read 3 essays that you wrote, the first one focused on what brought you to where you are today, the second asked how are you working on becoming a software engineer, and the last essay asked what stuff you worked on and built with links to GitHub, etc. Out of the 700 applicants, 60 had interviews, 31 were offered a spot, 29 accepted, and 3 of the 29 who accepted a place in the program were from 42. In the end, 24 of us were given a full-time offer, including all 3 42 alum. What LinkedIn tapped into, effectively out of the 29 of us, we all had non-traditional paths, and most did boot camps or online coding programs.
Without 42 I wouldn’t have gotten to the next round, so there is this challenge of being self-educated or educated differently from traditional means. You are kind of betting everything on yourself and you have no guarantee you will get anything, but you jump because you believe in something and that pursuit in and of itself is valuable when it comes to self-development. These companies are recognizing it isn’t just about writing code, it’s about being passionate, caring, and working hard. There are weeks at LinkedIn where I don’t code, and for most people at 42, you think that was a lost week. So much of the job is working with people, and being someone they want to work with. The Reach program helps get the best of the best, and it is a worthy investment of LinkedIn. 42 made me more marketable than my Fordham degree, but I do think that degrees, layered degrees, make a coding program more palatable for large companies today. Startups are more willing to take a chance with someone, I think that is a shame because big companies have the resources to pay for training. I am interested in seeing large companies double down on students who go down untraditional educational routes. But once you get 2-3 or 3-4 years of experience, it makes it easier to get a job. There’s a disconnect between the entry level and the mid to high. Once you have some experience you are really marketable.
Describe what you do:
I’m a software engineer at LinkedIn where I build operable and maintainable distributed systems. I work on an open source project called Azkaban which is a big data workflow job scheduler that LinkedIn created to run Hadoop jobs. So basically when you come to LinkedIn you do so to look at your profile and feeds. But in able to do what LinkedIn does, which is to also help people connect and get jobs, we need to train machine learning. We are part of the infrastructure to help make that happen – moving around over 2 petabytes of data every day and helping train machine learning models. We run our own data centers, and we run large-scale Hadoop clusters. Hadoop is another open source project so, for example, our biggest cluster is about 4,000 computers/servers. That is the actual infrastructure that moves all of that data around. We are a scheduler to help launch those jobs and orchestrate them. It’s a problem that doesn’t matter until a company is really big like when you are at LinkedIn scale. We have about half of the engineers at the company using our system at some point, if you ever used offline data you use our product. Our team owns a couple of other related tools as well.
What does your typical workday look like?
Depends on the day, but a typical day looks like this:
So generally I get in the office around 9:30 am, I try to grab something from a mini kitchen that is stocked with yogurt, protein bars, and fruit, I usually get in too late for breakfast from the cafeteria. So I open up my email, a lot of my emails are connected to what is going on at LinkedIn with potential production issues with our systems. I subscribe to a couple different news outlets such as WSJ and of course Linkedin so I can get a pulse on what is going on with technology. I do that till around 10 am, then I try to kick off the correspondence, I email people, set up meetings, talk to my manager and coworkers, try to figure out what is going on. I try to free up my time so I can dive into a project I am working on in the afternoon.
At 11:30 am we have a team standup, which is a casual and brief overview meeting on what you are doing. My team is growing right now, we just got an intern, there are 9 people and we are adding a 10th. After that, we have lunch as a team, or sometimes I meet with other people, we have Reach lunches once in awhile, we go to one of the cafeterias together. I’ve been told, and have experienced, some of the best food in the valley at LinkedIn’s cafeterias.
Between 1 and 3 pm we have a lot of meetings, every Monday there is a team meeting. In the afternoon I have time for myself to write code for a project, write a design doc, may work with a team member on a whiteboard, then I leave around 5:30 or 6 pm. Some caveats, if I am on call that week I won’t be writing any code but will instead have three responsibilities: making sure our system is up and working, answering internal user questions, and managing deployment and deploying the newest version of our service.
I work around 40 hours per week if not less, it is very relaxed. There is a lot of flexibility, there is pacing. LinkedIn has around 12,000 employees, and 3,500 of those employees are engineers. We have systems in place and if you leave them alone they will work just fine, it is much more a big company game. At a startup, you are writing a lot of code and trying to make things happen more quickly. At a large company, it’s about knowing how to engineer sustainably, a lot that goes into coding as an act is about understanding technical systems instead of just pumping out lines of code.
At big companies, if you aren’t thorough then you end up just re-implementing something that someone else did. The design decisions you make matter because if you build something it will most likely exist 5 years later, not like a startup. It’s a scaling issue, everything you do has to be able to be used by 500 million users. In chess, they teach you to sit on your hands, because once you touch a piece you need to move it. If you sit on your hands, you think about the best options before making your move, and avoid just going the first way that jumps into your head. Building software at a large company is a lot like that.
What have other interns/co-workers at your work or in your program found difficult that you found easy?
One thing that I’ve gotten a lot of compliments from my manager on is my ability to work well with people while on call. It may be a beginner’s mentality, what is difficult is to continue to remember that everybody was a beginner at one time. A question isn’t stupid, but worth my time to think about and answer. People from a non-traditional background empathize more with that line of thinking because they are more used to constant failure. We are told that in order to become an engineer you need to build technical systems, but what they don’t tell you is that is not enough to make you a great engineer. To be a great engineer you need to be good with other people, reaching out to people, meeting with people, communicating. It’s more than just working on projects that contain yourself. The other thing is, and I think 42 does it right, is you need to start with the fundamentals, you need to understand what a computer is, learning that a computer is a tool by definition and can do anything computationally possible…learning how to use that is so infinitely valuable. Being able to understand some of those lower level concepts, that is something that I feel I have a leg-up on with some of my coworkers, being immersed and learning how to do it. I am able to understand technical systems because I have spent so much time at 42 knees deep in code.
Would you recommend the 42 program and if so, why?
Yes, and I find myself doing so a lot. I messaged someone this morning who is interested, I talk to people about it frequently, I am constantly referring people to 42. I get messages from people via LinkedIn all the time asking about the program, asking how I got where I am today. I think that, first of all, 42 is a great way to filter if you want to be an engineer or not, it’s not just about how to become an engineer, it’s “do I want to become one?” Most people who already know they want to become an engineer may go the traditional route. 42 is great for people who have been out and working or studying something different, they are thinking this software thing may be cool, and they want to explore and see if that is what they want to do.
Do you have any advice for 42 students when it comes to securing an internship or job?
Hustle, and don’t be afraid to start early. It’s easy to convince yourself that you’re not good enough. After I was at 42 for 3 months I applied to 80 internships and jobs and I only heard back from a couple of them, and one of them was the Reach program at LinkedIn. You know enough, and a lot more than your coworkers expect of you. It’s easy to convince yourself that everyone knows more with a CS degree, but that is not true and you know a lot more than you think.
A fabulous photo of Charlie by Priscilla Vongdara: