Following a second Facebook internship, CS senior Joseph Hwang accepted their offer to return as a full-time employee after graduation. Although his first Facebook internship offer came only a few days after a second round interview in Seattle, his early applications did not go well.
“The fall before sophomore year, I tried interviewing, and it went pretty badly. My friend and I realized that every interviewer wanted us to talk about personal projects, but up to this point we had only worked on class projects,” Hwang said. “So we decided to work on something on the side. We developed our own algorithm to make dynamically-sized mosaics and learned about setting up a web server and basic image processing to create our own mosaic creation website. The CS classes we took really helped with the learning. They allow you to write anything you want, given enough of your own effort and research.”
Originally a math major, Hwang switched to CS after taking COMP 182 in his sophomore year. “I was drawn to Computer Science, because about that time, I realized no matter how hard a problem is, as long as you can understand and break it down, you can solve it,” he said. “Very few times will you walk into a job prepared for everything, but the focus Rice CS puts on problem-solving allows you to quickly pick up the new tools and frameworks you’ll find in future workspaces.”
That summer, Hwang completed his first Facebook internship, then returned for his junior year at Rice and picked up a fall internship with ForeFlight, working on iOS apps for private and commercial pilots. He accepted a second Facebook summer internship, and worked on HBase, a distributed column store within the Hadoop ecosystem.
Hwang works with a lot of data. A lot. Unlike traditional row-based databases hosted on single machines, HBase spreads its huge data sets across a distributed computing environment (hundreds of computers). HBase organizes its data into usable columns that can be used to quickly and precisely find specific data using unique keys.
“You can imagine it as a simple interface,” said Hwang. “You can enter a key value, scan over your keys, delete and modify them – almost like a HashMap. Yet it’s distributed over hundreds of computers and the data is persisted, so if you pull the plug on your data center and eventually restart it, everything will still be there.”
His primary task for the summer was working on cross-data center replication. “Within a single cluster, you keep multiple copies of the data – in case one computer goes down,” he said. But cross-data center replication is not helpful if the data center itself is threatened by catastrophic events, such as severe weather or other natural disaster. Hwang said, “My project was replicating the data across two different data centers, in case an entire center went down. Originally they used ZooKeeper [a centralized configuration information service] to track this replication, but after discovering some issues, they had me moving metadata from ZooKeeper into an Hbase table, so that it would be more scalable.”
In addition to the amenities Facebook offers its interns and employees – like free food and company merchandise – Hwang discovered how much he enjoyed contributing to projects in a productive environment. “My favorite aspect was probably just doing work,” Hwang said. “It’s always great when you can actually work when there are no blockers and you can just sit and code morning to night. Really–just working was pretty fun.”
Hwang looks forward to returning to that productivity next year, and hopes to land a place on an infrastructure team. He said, “You do six weeks of boot camp, where you attend a bunch of classes and do small assignments that other teams haven’t quite gotten to. After that, you find a manager and spend a month on their team, working on a mini project. If you end up liking the team, you join it.”
–Juliann Bi, Computer Science Marketing Assistant