William Forson was far from a traditional transfer student when he arrived at Rice in 2010. He was recently married, had served in the Army, and switched from studying philosophy at the University of Texas to a CS major at Rice. He interned for a startup in the Seattle area the summer before graduation. The summa cum laude CS alumnus then worked for both Amazon and Google before diving into another startup.
When he started at Amazon, he was assigned to a brand-new project called Amazon Go; by the time he left to work for Google in Austin, the Amazon Go team had grown to several hundred engineers. Then while working at Google, he got a call from a fellow Rice alumnus about an opportunity to work for a startup. “I rolled my eyes,” Forson laughed. “I’d just bought a house!”
When considering an employment opportunity, Forson admitted there is a lot of unpredictability in working for a startup, but he likes to focus on the business viability and the people. “There is no guarantee that the company will succeed,” he said, “but you do know who you’ll be working with and you have a ton of influence on the way the product is built.”
Forson’s experience with two global giants and two startups has offered him very different opportunities. “The senior engineers at the giants will give new hires lots of feedback and input. On the other hand, you usually don’t know which team you’ll be assigned to, and the kind of work you’ll end up doing can vary widely.”
“My advice to new CS students may not apply to everyone,” he said, “but if you’re starting out without any prior programming experience like I did, don’t be afraid to struggle through some of the work on your own.” Wrestling with compiler and linker errors is important. “The time you spend fighting with a programming language in the beginning really pays off. Don’t be too quick to ask for help. If you spend the time figuring out a problem for yourself, you’ll really learn a lot.”
Of course there are times when students can benefit from consulting with their professor, but expediency should not be the driving factor. He worked as a TA for two semesters, and cautions students against being too dependent on the help sessions. “Learn how to solve your own problems, especially if you like the idea of working for a startup. In a startup, there isn’t always someone around to ask for help,” he said.
Looking back, Forson recalls several of his Rice courses that made an impact. His first CS class at Rice was COMP 140 with Devika Subramanian. “I can’t talk enough about how great that class was. A course that engages real-world problems and is project based—it really piqued my interest.”
He also appreciated Corky Cartwright’s intensity. “I took COMP 211 with Corky and Stephen Wong—now that was a great duo. They should work together more often,” he said. “Then I took 411 with Corky and did some TA work for him. I got to spend a lot of time with him, and I really liked him a lot. He’s immensely enthusiastic, almost manic—as he’ll acknowledge—and he’s very opinionated. But lots of his opinions have stuck with me.”
His most memorable class was the one where he struggled yet learned the most. “COMP 421, the operating systems course where we had to build the Yalnix kernel. It was an awesome project—every project in the course was awesome—but it was probably the hardest in the whole CS curriculum. I devoted my life to it for several weeks, and I learned so much.”
His singular focus on the kernel project was a sample of the kind of work he would later encounter working remotely for a startup. Forson works for Gluent –a big data player with offices in the US and UK– from his home in Austin, integrating relational databases with scalable backends like Hadoop. “I love programming,” he said, “and I’m working with some great people who are really smart—some of them are bona fide rockstars in the Oracle community. But since I am also working independently, it’s often just me and the Internet, and I have to figure it out on my own.”