Reading 03: Careers, Work-Life Balance

Burnout is a major problem in the workforce for both the field of computer science as well as the rest of the workforce.  What is burnout? Burnout is the feeling of apathy and/or resentment towards your job, employer, or career. Simply put, it is the loss of drive or will to keep doing the work you were previously motivated to do, or at the very least content with doing.  One individual described his case of burnout here as “disinterest in my work and resentment towards the situation at the company.”

There can be many causes for feeling burnout, but commonly it is a combination of feeling overburdened and under appreciated.  The Harvard Business Review described the common plight of employees here, stating, “Managers want employees to put in long days, respond to their emails at all hours, and willingly donate their off-hours — nights, weekends, vacation — without complaining.”  Employees for any number of reasons will push themselves to fill the roles their employers want them to, but it comes at a cost in the long run.  Over time, feelings of resentment may surface, and you can find yourself unhappy with your current situation or employer.  Overworking and sacrificing personal time and happiness for the sake of your job can exacerbate these negative feelings. The article also points out that even if you like your job and work long hours voluntarily, “you’re simply more likely to make mistakes when you’re tired” and poorer performance can be reflected by a poor attitude towards your work.

I’ve definitely been the victim of burnout.  When I worked at a country club over one summer between semesters, I became very well acquainted with burnout.  It wasn’t a very fulfilling job, but it paid fairly well for the work I was doing, so I stuck with it.  Over time, I grew to resent going in to work.  It really just sucked the life out of me, mostly because it felt like very boring, repetitive, unfulfilling work.  I didn’t so much overcome the burnout as I did just white-knuckled my way through the rest of the summer.  I liked the people I worked with, so I tried to focus on that while still getting my work done.  The hardest part was maintaining a positive attitude about the experience.

In the future, I will try to make sure my job puts me first, rather than the other way around. There may be times where I need to work late or extra hours to get things done, but if the work is fulfilling and I enjoy it, then it should mitigate the negative effects.  All I can do is try to find the enjoyable parts of my work and make sure I have time to take care of myself.  If my job requires so much self sacrifice that I can’t do those things, then maybe that means it is time for a change in scenery, or at least some thorough revelation. I never want to sacrifice my happiness or health for work, but finding the balance between personal and work life is important to both your career and your livelihood.

Reading 03: Careers, Work-Life Balance

Project 01: Ethics

For the first project, myself and several group members chose to draft a code of ethics aimed at providing some guidance to computer scientists, specifically those from the University of Notre Dame.

Here is the pdf for our Code of Ethics.

Reflection:

When designing our code of ethics, we looked to the ACM Code of Ethics and Professional Conduct for a lot of guidance and ideas, keeping in mind however that it was adopted by the ACM Council in October of 1992 (before many of my classmates were born, let alone touch a computer).

We decided to separate our code of ethics into three segments that governed personal, professional, and social responsibilities of computer scientists. We try to address and advocate a course of action that would best take care of the individual while advocating a responsible approach to computer science. In the code, we decided that the ethical and moral responsibilities can outweigh the responsibility to uphold and follow the law, but only in some scenarios.  Additionally, there are very few times that violating privacy, confidentiality, or intellectual rights.  However, we do advocate the the individual strive to represent the computer science community in a responsible and transparent manner to the best of their ability.

I would contend that the weaknesses in our document is that it is a little broad in its statements.  This was intentional, as we wanted our code to provide a general moral baseline across as many computer science related fields that we could while also leaving room for future advances in technology.  In short, we did not wish to sacrifice a wide range of applicable subject matter for the sake of explicitly laying out a course of action.

A code of ethics is beneficial in the sense that it can provide a sort of guideline to applying computer science to modern life.  It may not always be applicable, but in the real world not everything is black and white, and some moral ambiguity may be present.  In those scenarios, a broader approach to a code of ethics may be more appropriate.  In our case, I think the enumeration of our principles and beliefs was a very beneficial exercise.  We were able to discuss and apply our beliefs and ideas to situations that we maybe had not considered before we challenged each other.  What the exercise produced was a more refined, more applicable set of guidelines that we felt better represented our best intentions for the computer science community and the reputation of computer science in the eyes of the public.

Project 01: Ethics

Reading 02: Hiring

Hiring in the field of computer science is an interesting process, completely unlike anything I’ve experienced thus far.  I’ve had interviews at a grocery store, a country club, a couple restaurants, for a scholarship, club official positions, and most recently for a position in the US military, and none of them were anything like my experience interacting with and interviewing in the field of computer science.  That being said, I’ve only had a couple interviews related to computer science, but they shared some interesting characteristics. I have not heard back from several of these as they were quite recent, so I will not name them in this blog post.

In the non-computer science interviews, most of the time it was a get to know you sort of interview.  The employers had already established that I already possessed the basic skills required for the job, and wanted to know if I would be agreeable to work with in close proximity for extended periods of time. I considered this extremely reasonable, and as a whole I enjoyed these interviews immensely.  Usually, the interview was conducted by my would-be boss, a couple managers, and (sometimes) a few of the senior employees that I would be working very closely with.  Sometimes there would be a tour and time to meet with other employees and discuss what the job was like.  In several of these interviews, the applicants were invited out to dinner or drinks afterward.  The whole process felt very open, transparent, and relaxed.  Frankly, I was surprised by how much I actually enjoyed these interviews and how I never felt on edge during the process.

Preparation for these interviews was similarly more relaxed.  I would read over potential or common interview questions, trying to answer them on the spot, and working on the ones that I felt were a little harder to answer.  Mainly, I tried to focus on being myself and being relaxed as I answered the questions.  After a couple, I became excited when I felt like I was going into one of these interviews and found the entire process much more enjoyable.

On the other end of the spectrum, my computer science interviews were slightly less enjoyable for me.  I found myself treating them like an exam, but with slightly larger consequences. It was very nerve wracking.  Additionally, most of the process was hidden from me.  I didn’t know if there would be other applicants, who would be conducting the interview, what kind of questions would be asked, and in some cases even when I would hear back from the employer.  I felt that all the unknowns forced me to spread myself a little thin on preparation.  I had to cover everything I did in the previous interviews, while also trying to conform my answers to what I thought the employers and the company wanted to hear.  Sometimes I got some impossible and very stressful questions asked of me (look here for what one of the interviews felt like) that I couldn’t answer to the best of my ability at the time.  I never quite had a horror story like this one, but sometimes it felt like a very adversarial situation.  Like they wanted me to fail, and they were trying to trip me up. I understand that every part of the interview process has a purpose, and it could have been that the interviewers were trying to see how I handled the stress, but it didn’t always feel fair.  For these interviews I always felt very nervous, bordering on a feeling of dread.  I eventually overcame that and found a way to present myself in the best way I could, but it took a lot of practice.

Overall, I feel that the interview process in the field of computer science is a very efficient one.  It is great at finding the smallest reason to eliminate candidates from the pool of potential employees.  The article linked here goes on to talk about how some of the little things you can do in an interview can easily disqualify you, and based on my personal experience I would say they are spot on.  There are some ridiculous questions and and behaviors that can really impact an employer’s opinion of you, and most of the time they are totally inconsequential to the actual job.  Sometimes I felt that the process was totally unfair, and others where I walked out feeling like I had not only performed excellently, but also learned a bit about myself and the employer.

Is this process humane and/or ethical? I think that all depends on the people conducting the interview.  The process is as ethical and humane as the people designing it want it to be.  Sometimes, that’s a great thing: it shows you what working for this employer could end up being like, for better or worse. Other times, the interviewers can really make your life a nightmare.

Reading 02: Hiring

Reading 01: Hackers

In today’s blog post, I will address the reading question that asked us to define what exactly a “hacker” is, and what the key characteristics of the hacker archetype are.  The full question is as follows:

“From the readings and from your experience, what exactly is a hacker? That is, what are the key characteristics of the hacker archetype? Do you identify with these attributes? That is, would you consider yourself a hacker? What is your reaction to this characterization?”

In my personal experience, a hacker is someone who uses their knowledge and experience with computer systems to elicit certain responses and outcomes from the system, usually for their own benefit.  Hackers often times use bugs or the unique characteristics of a system or piece of code to accomplish their goals, referring to these tools as exploits.  For example, I used a known exploit to gain access to the house wifi last summer when I forgot the password.  I used my knowledge of the software being used by the router and how it interacted with my computer and the wireless network to gain access to the wifi signal for my own benefit.  In this scenario, I am a hacker.

This definition is very broad, because by my explanation, anyone who uses a computer flaw or exploit for almost anything is a hacker.  The idea is that a hacker is someone who does something with a computer that, in a world where every piece of software is perfect and cannot be manipulated for unintended side effects,  should not be possible or allowed. But we don’t live in a perfect world, and thus we have hackers; the people who use these logical loopholes and unintended side effects for their own goals.  Notice, these goals are not necessarily malicious.

I strongly agree with the “hands on imperative” referenced in the article, The Hacker Hacked, by Brett Scott (here), that states, “Hackers believe that essential lessons can be learned about the systems – about the world – from taking things apart, seeing how they work, and using this knowledge to create new and even more interesting things.” The article speaks about how this harkens back to the days of “phone phreakers”, individuals who found a way to replicate dial tones and make free long distance calls, not because they wanted to exploit this for resource for free, but because they wanted to learn how the infrastructure worked and what the long reaching implications of this exploit entailed.

There are a wide range of accounts that describe a hacker, from purely malicious to explorative and thirsting for knowledge and understanding.  One such account here, details how loose the archetype of a hacker has become, but I would say it doesn’t go far enough.  For example, it defines a lot of common preferences of hackers (left leaning over right, preferring reading to television, nonreligious, etc), but many people I know who I would consider “hackers” fit very few if any of these.  I do not believe there is a physiological or psychological archetype to being a hacker, aside from a desire to experiment, tinker, break, fix, and “hack” for the sake of knowledge.  Sure a vast majority of people that deem themselves as hackers may exhibit the characteristics from the article, but there are many who don’t as well.  Technology and computers are endlessly expanding, and with it, the number of people familiar with those technologies.

Personally, I don’t believe I am a hacker.  Maybe I am what some would call a hacker in the very loosest sense of the term, but for the most part my experience in computer programming stays between the four lines of a text editor and some brief adventures into the realm of the terminal window.  Have I used hacks? Yes, of course.  Aside from the story above I have done some of my own tinkering and exploiting, but rarely anything beyond what some other brave soul has already carved out and explored for me.

I do not find anything offensive about the word hacker, and if someone called me a hacker in a derogatory sense I would wish to ask them why they thought that being a hacker was inherently bad?  There are many portrayals of the evil hacker, and most of the time when you hear the word “hacked” or “hacker”, it’s usually because they broke some law or had been arrested for breaking some law, but at it’s core, being a hacker is not a bad thing to be.  Hackers are different from computer scientists and software developers, sure, but chocolate ice cream is different than vanilla or strawberry too.

Reading 01: Hackers

Reading 00: Part 2

The question I have chosen to address in the second part of the first reading assignment is “Why study Ethics in the context of Computer Science and Engineering?”

We study ethics because as computer scientists, software developers, potential hackers, and researchers, our actions can, at times, have very far reaching consequences.  In the article, Why Software Is Eating The World by Marc Andreessen (linked here), he describes how the world is becoming more and more saturated with computer controlled or linked technology.  No joke, I can tell my mother’s Keurig to start brewing a cup of coffee with a single line of code in the command line on my computer and the correct IP address.  These days people carry miniature computers in the form of smartphones with them everywhere they go.  It is safe to say that computers are everywhere.  Even though software developers need no certifications to write mission critical systems that could save lives or harm people, there are almost no certifications for programmers of any type before they can just go out into the world and make code for better or worse (see article here on why programmers shouldn’t call themselves engineers).

Based on the combination of incredibly uncertified and extremely connected to most aspects of modern society, there should be some sort of check or balance. With this great power, comes a great responsibility in the sense that we, as computer scientists and engineers, are morally and ethically obligated to hold ourselves to a higher standard.  Without any required certifications or even a classroom, almost anyone with an internet connection and some determination can be a halfway decent programmer or hacker, which can be dangerous.  Even in non malicious scenarios, a lot of harm can be done to innocent people.  By taking shortcuts or coding lazily, it’s easy to produce software that works most of the time, but what about when it fails? People can get hurt by incorrect programming that fails in certain scenarios, like if the air bags in a car fail to deploy under the correct circumstances.

Thus, we see a lot of publications on the ethics of proper computer use.  The ACM Code of Ethics and Professional Conduct (link here) covers everything from copyright infringement to malicious software.  Because of the capabilities and knowledge programmers have, it is essential they are taught some sort of ethics along with the tools they are given.  Without a moral base from which they can guide their work, most programmers would simply just follow the basic requirements for whatever code or task they are working on.  What’s the point of the extra work if no one will notice it?  Speaking from experience, for most computer scientists barely working is sometimes good enough.  But from a moral standpoint, we need to hold ourselves to the higher moral standard that other engineering fields strive to maintain.  We owe it to ourselves and the people around us to not take shortcuts, to not harm others with our actions and knowledge, and not use our talents in a way that cheapens our title of computer scientists.

Reading 00: Part 2

Reading 00: Introduction, Ethics

My name is Kyle Kozak, and I am a senior at the University of Notre Dame, and I am getting my bachelors of science in computer science with a concentration in computer security. I am very interested in the field of computer security as it relates to everyday tasks such as email, database use, and business transactions.  Outside of class I enjoy photography, climbing, swimming, biking, and camping.  Hopefully, I will gain some insight on the recent debates on encryption and why some view uninhibited surveillance as an appropriate response to recent events.

In my opinion, the most pressing ethical and moral issues are surveillance related.  For instance, should the NSA have full authority to view any and all digital information related to any person and monitor them without any need for approval?  I am particularly interested in hearing the sides of this argument in order to better understand the reasons someone could be either for or against a national surveillance program.  Additionally, is it morally correct for us to provide such tools for use by our government?  How would we make sure the technology is being used in the best interest of the people and not just to keep them in check?

Another idea brought up in the Quora article, “What Are Some Ethical Issues in Computer Science?” (link here), is to what degree are computer scientists obligated to ensure their code is of the highest quality and won’t fail when used?  Of course, if a simple mobile app fails one time out of 10 people will still use it, but to what level should programmers be worried about the quality of their code?  And if the failed code is responsible for some accident or harm, who is to be held liable?

I am also personally interested in discussing white hat hacking, and when such activities are justifiable and when they are not.  Do the ends justify the means? By exposing a major security vulnerability in a widely used bit of software, you could conceivably jeopardize hundreds of thousands of systems across the globe.  But if you don’t expose it, no one would find out about it and it would never be fixed.  Is it morally acceptable to expose the flaw if you can justify your actions by saying it would benefit everyone in the long run? Does this absolve you of the potential damage your actions caused?

During the course of the semester I hope these questions are addressed and maybe even discussed as we explore more ethical and moral issues.

Reading 00: Introduction, Ethics