Ethics 02: Hiring and Interviews

My job interview process has been rather interesting. Unlike most people in my field, I am not willing to work anywhere other than my hometown of New Orleans, because I care much more about my family and my girlfriend than getting a job at a place like Google or Facebook. However, I was contacted by Google, Microsoft, and General Electric about positions in California. I decided go as far as I could in my interview process, just to experience it. I managed to get onsite interviews with GE and Google, but did not receive offers from them. When I went to California, I had some of the most stressful days of my life. I was frightened by how many factors influence the results that would not affect a real life working position. For example, by my fourth interview of the day with Google, I could barely think straight. I had a relatively simple problem in front of me, but for some reason thoughts were not connecting at all in my head. I don’t think the work environment in Google is that stressful, and if it is, then I wouldn’t want to work there. Also, one of my interview questions involved a problem that I learned in class literally two weeks later. If I did decide to accept a job at Google, I would know the relevant algorithms by the time I started working. I think the one thing that would most improve the interview process would be detailed descriptions of why a company chooses not to hire a person. This seems like the best way for a person to understand what would make them a better employee, and maybe they could take the time to gain the missing skills before applying again later. Wouldn’t Google want more candidates who gained the skills that Google has said they wanted? How can people interested in working at Google do this if Google doesn’t tell them what they need to learn?

I think the general interview process is decent, but has a lot of room for improvement. Since computer science is a relatively new discipline, it will take time for companies to learn best how to find the best employees for them. As Jeff Atwood writes, the whiteboard interviewing style is not the best solution. “Whiteboard interviewing is a discrete skill, much like being able to remember Pi to a thousand decimal places. And students of programming are spending a disproportionate amount of their time mastering this skill instead of practicing real software development by building projects, maintaining legacy code, or contributing to open source.” From an ethics perspective, companies do not seem to be doing anything unethical. They can still be ethical if they are not getting the best employees for themselves. However, if companies are discriminating in any way, they are definitely acting unethical. Dan Luu writes that “We like to think that we’re different from all those industries that judge people based on appearance, but we do the same thing, only instead of saying that people are a bad fit because they don’t wear ties, we say they’re a bad fit because they do, and instead of saying people aren’t smart enough because they don’t have the right pedigree… wait, that’s exactly the same.” There is a difference between primarily accepting employees who don’t fit as well in other work cultures and accepting employees regardless of whether they fit a certain work culture.

Hackers 01: Hardware Hackers

Both the hardware hackers and the true hackers found joy in solving problems for the sake of solving problems. The hardware hackers, however, had the goal of “constructing a computer in one’s very own home. Not to serve a specific function, but to play with, to explore. The ultimate system.” The hardware hackers were more focused on building community and using computers to bring people together. They did not have a great opinion of the true hackers. Lee Felsenstein, for example, was “offended at what he considered the excessive purity of those hackers, particularly their insouciance when it came to spreading the technology among the ‘losers.'” The hardware hackers themselves often fit this category of loser, but they were able to find the help they needed in the various organizations formed. Members of the Homebrew Club and others were always happy to help anyone who was interested in computers.

This open attitude helped foster the idea that computers could eventually help all of humanity, not just the technically skilled and passionate. Fred Moore was a huge advocate of this dream. He “was less fascinated with the workings of computer systems than with the idea of bringing about a sharing, benevolent social system; he seemed to regard Homebrew not as a technical stronghold of people hungry for the pyramid building power of in-home computers, but as a cadre devoted to social change, like the draft resistance or anti-nuke groups he’d been involved in.” Lee Felsenstein also worked towards this goal with his deployment of Community Memory, a terminal for anyone to communicate in various fashions with others in the community. It was simple to use and provided a great service. Hundreds of people interacted with a computer for the first time when using this terminal.

As computers began to grow more popular, some sought to use them for monetary gain, and this caused great tensions in the hacker community. Bill Gates was frustrated by the theft and sharing of his BASIC code, but to those hackers, it was just another piece of software that could solve many people’s problems. They thought, “most of all, it seemed right to copy it. Why should there be a barrier of ownership standing between a hacker and a tool to explore, improve, and build systems?” Steve Jobs and Steve Wozniak build a company around a computer designed not to be tinkered with and modified, but easily used and accessible to all. “The truth was that starting a company had nothing to do with hacking or creative design. It was about making money. It was ‘stepping over the boundary,’ as Wozniak later put it.”

I think that technology is a tool that can be used for both good or evil. It is up to its creators and users to ensure that it is always used for good. If we try to stop the growth of technology because of the fear that bad things might happen, we will never find out what good things could come out of it. However, we should not do things just because we can. It is ethically wrong to create programs that steal private information, or crash websites. Yet without the ability to retrieve information correctly or access websites easily, we would lose so much good. Therefore, one must always consider the ethical, moral, and social impacts of all of their actions.

Ethics 01: Hackers, Ethos

My understanding of a hacker is someone who solves problems for the sake of solving problems. These problems are often not problems that people ask to have solved, or problems that will provide a concrete benefit after being solved. Hackers solves problems because the act of solving problems brings them joy. The harder the problem to solve, the more joy the hacker finds. Hackers are easily frustrated by things that make it more difficult to solve problems, such as bureaucracy and hidden information. To hacker, the process of solving is just as important as the solution, and sometimes even more so. Two solutions can accomplish the same thing, but to a hacker, one can be significantly better than another. As Paul Graham says in his May 2003 article “Hackers and Painters,” “The way to create something beautiful is often to make subtle tweaks to something that already exists, or to combine existing ideas in a slightly new way.” He uses this statement to show a similarity between hackers and painters that mathematicians and scientists do not share.

This idea of finding the best solutions for the sake of finding the best solutions comes up in many other places in a typical hacker’s lifestyle, as described in “A Portrait of J. Random Hacker.” For example, “hackers dress for comfort, function, and minimal maintenance hassles rather than for appearance” and “the self-taught hacker is often considered (at least by other hackers) to be better-motivated, and may be more respected, than his school-shaped counterpart.” Hackers desire practicality over appeal to others and popularity. Hackers who learn on their own found a great solution to their problem of little education, one that can be seen as just as effective as a school education. These hackers are respected because they found a more beautiful and practical solution.

I identify with some, but not many of these characteristics. I do find great joy in solving problems, but I am rarely able to motivate myself to solve challenging problems without rewards. This mentality makes me a very effective student and worker, but not as creative or experienced as the typical hacker. Thanks to my strong faith and wonderful parents, I have great respect for most types of authority. I find it easier than hackers to trust that information is hidden and barriers are placed for good reasons.

One characterization of a hacker in Paul Graham’s article that I found surprising yet relatable was the idea of hackers being empathetic. I feel that I am very effective at making programs that are easy for even an uneducated user to understand. I dislike programs that rely on icons or symbols whose meanings must be learned through use. Graham says that “One way to tell how good people are at empathy is to watch them explain a technical question to someone without a technical background.” I find this challenge exciting, because it basically the reverse of writing code. When creating a program, you must take human ideas and convert them into technical machine language. When explaining computer concepts to a human, you must take technical concepts and convert them into human ideas. In my mind, humans are simply computers in a different format. With this understanding, it seems strange to me that hackers sometimes have difficulty communicating with others.

Hackers 00: True Hackers

A “True Hacker” is someone who follows the hacker ethic. The hacker is always trying to learn more about the way things work, and opposes anything that prevents the spread of knowledge. A hacker also uses this knowledge to create, not for fame or money, but simply for the sake of creating. Computers represent all of these ideals. In its best form, from a hacker’s point of view, a computer is available for anyone to use or modify. It allows unrestricted freedom in creation. Nearly any idea a hacker can think of can be made in a computer, given enough time and resources. Hackers see no need for any sort of authority, as it only serves to restrict information or creativity. The only thing that really matters to a hacker is the ability to create hacks. As Steven Levy says, “While someone might call a clever connection between relays a ‘mere hack,’ it would be understood that, to qualify as a hack, the feat must be imbued with innovation, style, and technical virtuosity.” This skill helped develop the Hands-On Imperative, which guided hackers to remove barriers between themselves and the physical objects that they worked with.

The hacker culture began in the Tech Model Railroad Club at MIT. These students would create hacks by combining various parts into interesting and unique systems for their model trains. Eventually, they got access to an IBM computer. It had many frustrations, especially the “priests” who did not allow the hackers to physically manage the machine. When the TX-0 came to MIT, however, they finally had a computer they could directly interact with. The main advantage was that they could modify a program while sitting at the computer. Previous computers were not nearly as hands-on. Soon enough, the hackers lost all sense of normal living and dedicated as much time as possible to the machine.
More and more people joined the hackers, including Peter Deutsch. Even though he was only twelve, “by virtue of his computer knowledge, he was worthy of equal treatment.” The hackers did not deny him the information to become a programmer, and so he used that information to impress them all. He showed graduate students their errors and improve existing programs. Ricky Greenblatt, another hacker, fit right in with their hands-on imperative. He believed that “anything that seemed interesting or fun was fodder for computing and using interactive computers, [and] with no one looking over your shoulder and demanding clearance for your specific project, you could act on that belief. ” In computing, he saw, “A world where there were no ambiguities.Logic prevailed. You had a degree of control over things. You could build things according to your own plan.” Bill Gosper used his skills as a mathematician to impress the other hackers, and thanks to the sharing of knowledge, other hackers used the algorithms he developed in their own projects. This community of dedicated workers supported each other, and reached incredible heights on each other’s shoulders.

Until reading this book, I imagined a hacker as someone who infiltrated private information for their own gain. Hackers would leak secret documents, plant viruses, and steal information. I can understand how the term hacker changed to mean this over time, as both types of hackers love computers, dedication, and utter freedom of information. I greatly admire and respect the impact the hackers of the 1960s had on the developmeent of computers, but I feel like their culture is far from the only way to be a good programmer. I feel a similar desire to create and dedicate myself to something good, but in my case, I am dedicated to my friends and family. My greatest fear is that my passion for programming will get in the way of my relationships with others, so I hope I never become anything like these hackers. However, I still think I can become an excellent programmer who can solve many problems with the power of computers.

Ethics 00: Why Study Ethics?

Ethics is important for any field. There is no work that a person can do that does not include the question, “Should I do this?” There is a reason behind everything we do, and we must consider whether that reason is a good one or not. Our actions have consequences, and we are responsible for those consequences. When making decisions, we must consider whom it affects, and how it affects them. If we do not, or make a decision that affects someone negatively (including ourselves), then we are acting unethically. The act of programming can be described as simply making decisions about what to tell the computer to do. These decisions are usually straightforward, as the computer always obeys them. However, the sum of these decisions can create programs that can affect others in many ways. These programs can lead to negative consequences that are very easy to miss or forget about.

Humans often detect problems from visual anomalies. If we see a loose screw, an escaped animal, or a crying child, we know something is wrong. Generally, our biggest threats come from our immediate, sensible surroundings. However, the negative effects that can come from unethical programming are very rarely visual in nature. We do not see hackers breaching private servers or companies selling our private data. However, these problems can have just as terrible results as problems we can see. The only way to protect against these types of problems is to study them and be aware of actions that may allow them. You cannot always see a backdoor in your code just by looking over it. You don’t know what other information someone can use to de-anonymize the data you release. Software comes in so many different forms that it is impossible to set standards for correct behavior. As Jeff Atwood says in the article “Bridges, Software Engineering, and God,” Software development is only like bridge building if you’re building a bridge on the planet Jupiter, out of newly invented materials, using construction equipment that didn’t exist five years ago.” Changes come so quickly and techniques are so varied that the individual programmer must understand all the ways he can go wrong.

Unlike other technologies, computer science went from non-existence to complete pervasiveness in only a few decades. The drive to built better and more innovative technology left little room for reflection and analysis. “Silicon Valley is engaged in many idealistic pursuits, such as creating tools to treat disease, finding better ways to care for the elderly, and improving car, train, and air travel. But it can’t mistake these noble efforts as solutions for the real negative side effects of its dominance,” says Brad Stone in the article “Silicon Valley Reckons With Its Political Power.” Millions of people are affected by large-scale hacks, but companies still take a responsive approach, rather than a proactive one. The goal of technology should be to improve humanity, not to bring in the best profits or save the most time. Studying ethics will help bring this goal into the broader computer science community, and over time, these dramatic issues will hopefully cease to occur.

Introduction

My name is Chris Maheu. I am a senior studying computer science at the University of Notre Dame. I have a concentration in cyber security and a minor in philosophy. I love programming here at Notre Dame, but I often miss the food, weather and people in New Orleans, my hometown. I have been actively searching for programming jobs there, and hopefully I will soon find the right career for me. I am also passionate about helping animals. Whenever I am in New Orleans, my girlfriend and I volunteer at a local animal shelter. I have gotten to know so many dogs and cats there and they need as much help as they can get.

Some of my hobbies include movies, board games, and video games, especially The Elder Scrolls IV: Skyrim, Overwatch, and Old School Runescape. I am the vice president of Notre Dame’s Science Fiction and Fantasy Club. We engage in a variety of fun activities, including movie and show watches, costume contests, and trivia games. I met most of my best friends at Notre Dame through this club, and several of them are also computer science majors.

I am studying computer science for several reasons. First of all, I enjoy it. Rarely have I had more fun than staying up all night refining a program to get it to do exactly what I want. Secondly, programming is a unique form of creation. It allows the freedom to create almost anything imaginable, but unlike visual art, or even movies or books, it can directly interact with its users. This gives it practical purpose as well as expressing the ideas of the programmer. Finally, programming is one of the most powerful skills to have in the present time. Few companies have shaped the world in the way Uber, Google, and similar companies have, and these all started from some simple ideas for programs. Understanding computer science gives great insight into how these companies affect our daily lives. Computer science gives me the power to change lives in a practical and efficient manner.

This semester, I am taking Ethics and Professional Issues so that I can gain a better understanding of some of the moral issues facing the computer industry. As a philosophy minor, I am very intrigued by questions that are important yet do not have easy and direct answers. I have ready many ancient philosophers’ ideas on morality an ethics, but none of them had to deal with today’s issues like hacking, extreme surveillance, and data privacy. I hope to learn more about the details of these issues, thoughts of industry leaders, and potential responses.

I often hear people complain about all the surveillance the NSA and other organizations perform without permission of individuals. My gut response is that this does not seem to be a problem, because if you have done nothing wrong, what are you afraid of? However, this statement seems wrong to me for some reason. I would love to find out some examples of when someone has done nothing wrong, but NSA surveillance proves detrimental to their well-being. There is much to gain, but also much to lose, from extreme surveillance.

Last semester, I worked with Professor Dong Wang to  research de-anonymization techniques on large data sets. I discovered many examples of a data set that seems harmless, but using sophisticated algorithms or additional public data, an attacker could identify the actual people that entries in the data set refer to. This problem made me realize that computer security is far more difficult than it seems, because even if my data is secure, other data could compromise its anonymity.  However, releasing public data still provides many benefits in areas such as research and machine learning. I think this topic would be something interesting to discuss in this class. Is it ethical to release data that could be de-anonymized? Is it ethical to not release data that could be used for important scientific gains? I am still not sure about the answers to these questions.

Overall, I want to learn how to best use my skills as a computer programmer to help make the world a better place. My girlfriend and I have been talking about designing an app together for the animal shelter we work at. They often suffer from lack of volunteers and an app can help them coordinate better to get volunteers when they need them the most. Something like this interests me much more than a lucrative career with Google or Facebook. In this class, I want to learn more about opportunities that can help me help the world similar to this one.

I am also taking Hackers and the Bazaar this semester. In this class, I hope to learn more about the culture surrounding computer science. How has it shaped the evolution of technology? How has this culture provided opportunity for innovation, or hindered it? Why does the public view of computer science seem to be very negative, even though it helps so many people in their daily lives? Even though the hacker culture is a small subset of the history of computer science, I see its impact throughout the field. I hope to learn what benefits I can gain from understanding this culture, as well as what problems it has that I can avoid.