Project 02 – Job Interview Process Submission and Reflection

Job Interview Process – Posterboard By Chris Clark, Jesse Hamilton, and Neal Sheehan. Please note that this PDF has small print when viewed electronically. Ideally this would be printed out on a large posterboard for a presentation or job fair. We hope you enjoy this format more than simply a Q&A report.

College traditionally has been viewed as a place of learning, not necessarily job training and yet students are spending more and more time preparing for the job interview process. Should colleges adjust their curriculum to face this reality?

If so, how would you change the ND CSE program to better prepare students for the workforce?

If not, discuss why you don’t think changes are needed and how the ND CSE program already supports students.

As the job market grows more and more competitive, students spend more and more time preparing for the interview process so that they can put forth a worthwhile application package. While this is certainly a productive use of a student’s time and energy, it tends to infringe upon the efforts normally put towards traditional learning and studying. Often times at Notre Dame you hear students argue they’re lack of effort on an assignment as a necessary concession because they “had that huge interview coming up.” So the question is whether Notre Dame’s CSE curriculum should change to better work the job interview preparation into its courses, or if Notre Dame already does enough and student’s needn’t worry so much about the job hunt.

It’s pretty clear to me that any reduction in effort towards landing a job while still in school would have clear and painful consequences for the student. While it pains me to say that emphasis should shift in the classroom from traditional learning, I believe that’s just the way of the future and where the job market is leading universities. And it’s not all bad. Learning how to interview is as practical and marketable as learning how to stand up a web server in Python. In fact, I’d argue it’s much more worthwhile and valuable to do so. As much as it’s Notre Dame’s job to prepare me intellectually for the workforce, I believe it’s also the University’s job to prepare me to get a job. There’s always chances to continue learning and improve technical skills down the road, and that’s markedly easier when there’s a steady income.

Notre Dame could better prepare students for the workforce by having a one semester course solely dedicated to interview preparation and on-the-job skills workshops. Unfortunately, the educational lessons learned at Notre Dame don’t always line up cleanly with the tools and techniques required on the job, and learning some of those tips and tricks beforehand would offer great utility.

Creating our Job Interview Process Posterboard helped shed some light on the tools already available to me as a student at Notre Dame, and I was surprised by how many of the responses came naturally because of the preparedness I’d already received from the CSE department here, especially when it came to areas such as alumni networks and references. Notre Dame does an amazing job of advertising its alumni network and encouraging students to use it. However, I also feel like a great deal of information came from discussions in class, and those are the nuggets of information I wish I’d had in my knapsack before applying for internships last summer. What particularly came to mind was our discussion on negotiations.

There’s no perfect way to balance both educating the mind on material and preparing yourself for the workforce, but deliberately placing an emphasis on the latter in the form of a required CSE course at Notre Dame would go a long ways towards ensuring that all Notre Dame CSE student’s have a fair chance at landing great positions in industry right out of college.

Reading Assignment 03 – 2 Feb

From the readings and from your experience, can men and women have it all? That is, can parents have successful and fulfilling careers while also raising a family and meeting other non-work related goals? What can companies do to support their workers to find this balance and are they ethically obliged to do so? Is this balance important to you and if so, how do you hope to maintain it?

Men and women can have it all, and that’s the dirty secret that Silicon Valley doesn’t want you to know. Okay, maybe I’m jumping the gun a little bit. I’ll try and backtrack a little.

Let me be clear here: it will take an extraordinary amount of effort, but it is more than possible to have both successful careers and a wholesome family. There are many reasons I believe this. For starters, if this wasn’t the case, my life would have an incredibly gloomy outlook. If I can’t look forward to having a happy, loving family, then I’m either in a bad place for my career or heading that way, and a serious change needs to be made. I owe much of where I am today to the love and support I received from my family growing up, and because of that I know I want to make my family come first throughout my career.

I also realize that the world isn’t going to make that goal easy for me. In many ways, actually, to have a successful family, I need to have success in my job. For stability, continuity, and for my own mental and emotional health I need to perform well in my career. And having success in the workplace can often come at the expense of the family (especially in Silicon Valley). Fortunately in the Air Force I won’t have to deal with the same stresses of startups or cutthroat companies like Amazon. But the military does offer some clear and well-known family obstacles. I’ll have to move often which can be difficult for kids growing up. Additionally I’ll have the granddaddy of all motivators to work: mission success. The Air Force certainly has a trump card to play when its workers are facing a deliverable deadline or making it home for a little league game. And then of course there are deployments, one of the largest stresses you can put on a family.

But ultimately I am very excited and fortunate to be heading into the Air Force lifestyle. Of all the branches of military, they really take care of their own, especially the families it comprises. From things like affordable housing options for families to weekend family functions such as cookouts and air shows, the Air Force does a lot to keep the family in mind.

And the Air Force isn’t the only group that works to keep its employees’ work-life balances in check. Many offer long, paid maternity leaves for new mothers. Some even offer paternity leave for a short time as well. Many companies strive to take of work stress to allow for more free time with family and for personal time, and they very well should. I believe companies are ethically obliged to help its employees find a good work-life balance. America was founded on free market principles and the pursuit of happiness, but if the workforce becomes so focused on innovation and making cutthroat business decisions to the point that the workers it comprises suffer, then we have severely erred as a country.

I hope every company and organization I work for ultimately cares about balancing my personal life as much as I do, but that doesn’t just mean me. I hope to raise a happy and successful family, and in today’s day and age, that often means my wife will also want to have a happy and successful career. While I want my career to be long and happy, I don’t want my wife’s career to have to take a back seat. I want both her and me to spend as much time with my future kids as much as possible, but I understand that I won’t be the only one with professional goals. I very much value my work-life balance, and at many points in my life, that may mean that I have to focus less on my job and more on my family so that my wife can succeed in her work too. Whether that means taking work home with me or having to forgo taking on extra responsibilities, I’ll do whatever it takes to make sure that the last time I’m this happy isn’t just when my kids go off to college.

Project 01 – Code of Ethics Submission & Reflection

Notre Dame’s Student Code of Ethics : By Chris Clark, Thomas Deranek, Jesse Hamilton, and Neal Sheehan

Our Code of Ethics is styled similarly to the ACM Code of Ethics, but is very much tailored to the Notre Dame student. Students face many ethical and pre-professional issues that don’t exist in the working world. It is important to enumerate these issues and lay out rules and expectations early. With our Code of Ethics, we can begin to train the mind and heart in the proper, ethical practices of learning, deliberation, and justice in computing.

Our Code of Ethics focuses on four main areas: general guidelines, student responsibilities, student leadership & group work, and compliance. While each section is important and contains many important rules and explanations, I particularly like sections two and three. They refer to what is expected of you as a Notre Dame CSE student in both individual work and in relationships with others. For instance, article 2.1 of our code states that

As a Notre Dame Computer Science and Engineering student, I will strive for academic success.

While that may sound obvious, it carries an important distinction. It doesn’t say that the student should do the requisite work to pass and get a degree. It doesn’t state that the student should coast once he or she has landed a job. It states that each student should strive for success, including attending class regularly beyond the required percentage as well as putting in wholehearted effort and participation in the classroom and in assignments.

Take a further look into article 3.3 of our code. It states that

As a Notre Dame Computer Science and Engineering student, I will contribute equally to the project.

To be an ethical and professionally excellent student, you must put forth your full effort into group work. No one person should shoulder all of the load, including yourself. Many times it can be easier to take control to ensure you earn the quality grade you desire, but that robs your peers of the chance to learn.

While I like these two particular highlights of our code, it does have some drawbacks. First of all, article 1.1 states that we ought to “code for good.” Sometimes that’s very ambiguous. Sometimes it’s just not feasible. I’m sure that my laggy, buggy, glitchy, uncommented, fourteen-story-high scaffold of a top-down racer didn’t do any good for others in the world. It isn’t public, and it’s certainly nowhere close to ready for production. I stopped working on it because the assignment was completed. Does that mean that what I did was unethical? Perhaps it should say that we ought not “code for bad.” But similar edge cases would surely linger.

Further more, article 1.4 speaks about respecting the privacy of others, which is a good and clear rule, except for what “respect” really means. In the actual article, it states that it is the coder’s responsibility to ensure the privacy of others as well as to not exploit vulnerabilities to violate privacy. But at what point is it unreasonable to guarantee that data is safe inside your system? Is it the ethical duty of a coder to routinely check that their system isn’t compromised? At what point should a user assume responsibility and keep track of which of their data is where? This is not to say that article 1.4 is incorrect, but it is difficult to be airtight without creating too large of an overhead on the programmer.

But regardless of the highlights and shortcomings of our Code of Ethics, it is important, for several reasons, that we created it. First, pausing to actually consider what practices and beliefs we hold ethically valuable is an important exercise. It can be difficult to consider all aspects of ethical computing and education, especially when much of what we do can be out of habit without much thought.

And actually having a physical document to reference in times of uncertainty is paramount to remaining true to my ethical beliefs. Too many times humans drift away from center by way of subtle change. Consider what C.S. Lewis had to say in his famous writings, The Screwtape Letters:

Indeed the safest road to Hell is the gradual one–the gentle slope, soft underfoot, without sudden turnings, without milestones, without signposts…

We need signposts and milestones, identifying markings to assure us we are on course or to alert us when we have drifted astray, and even something as simple as a programmer’s code of ethics can keep us on the straight and narrow.

Reading Assignment 02 – 26 Jan

Where do you see your career headed? Do you plan on staying with one company or do you envision moving from job to job?

Is there such thing as company loyalty? Should you be loyal to your company and should your company be loyal to you? How do things such as non-competes and trade secrets influence your opinion? Are these contracts fair? Are they ethical? On the flip side, is job hopping an ethical practice?

In just a few short months, I will commission as a Second Lieutenant in the United States Air Force. I will continue on to a technical school to learn about Cyber Operations within the Air Force, and then I will be placed at my very first assignment. It’s going to be an exciting year with many new beginnings.

The ROTC program trains college students to become leaders during their four-year degree program. Often times as an incentive, the Air Force will grant scholarships to help pay for school. In return, I will owe four years of service to the Air Force. Once that time commitment is up, I am free to choose to stay with Big Blue or to transfer to the civilian sector. So the real question is where I’ll find myself ten years down the line.

While many make compelling arguments for why switching jobs often is a smart business practice in today’s economy, it’s a little more complicated with the Air Force. There are several good reasons for staying in the armed forces. First of all, the military is already structured for its soldiers the way Vivian Giang would like to see civilian employees pursue their careers. Assignments in the military often only last two to three years, which is why a “military brat” is often someone who moved around four or five times growing up. It keeps fresh ideas rolling in and prevents stagnation, which is desirable in any business, defense-oriented or not. Additionally, the Air Force promotes early and often in the opening years of an airmen’s career. Barring some monumental mistake, after two years in, I can expect to promote to First Lieutenant, and after four years, I will make Captain. These promotions also come with significant pay increases which correlate to those seen by employees who switch jobs to compete for higher salaries, as seen by Bethany Devine (mentioned in a Forbes Article).

Further, I’d be tempted to stay in the Air Force longer than the minimum required four years so that I could get my Master’s Degree. The Air Force offers incredible programs for getting a graduate degree as a full-time, paid position. Being paid to be a full-time student is a hard bargain to match. But time spent learning is more time owed back to the government.

But beyond each of these factual reasons to progress towards a 20-year career in the Air Force is the moral side of the conversation. I am proud of my father for all of the years he gave to the Air Force, and I’m so honored and excited to have the same opportunity. There is a great amount of pride in knowing that my job is to help defend my country, and not many in the workforce can say that, especially in the tech industry. This is not to say that others don’t make wonderful, crucial contributions to our country, but there is definitely something special about contributing to the national defense.

But are all of these reasons enough to stay in and forgo a significant pay increase in the civilian defense sector? What if I have a large family I need to support? Don’t civilians in defense also do important, worthwhile, and honorable work too?

The answer for me is unclear. But both futures certainly look bright, but if my calling ended up lying outside of the Air Force, I would certainly have to worry about restrictive legal agreements and ensuring that military secrets don’t enter my new workplace.

There is certainly a comfort in the military structure. It’s predictive too a degree, promotions are linear and well-defined, and the military is often happy to work with third-party contractors to achieve the mission. But in the civilian world, tech companies are doing so much to ensure that their employees remain just that – their employees. They force workers into suffocating non-disclosure agreements and non-compete clauses. They make broad categorizations of intellectual property labeled as trade secrets inadmissible to other companies. To be fair, it’s true that the Air Force does a little of the same – it can prohibit your work with contractors from leading to a job offer, and it can claim a great deal of information as secret – but it’s not nearly as bad as the civilian sector (see more at The Atlantic).

I believe there is something to be said about loyalty to a company. After all, I’m considering staying in the military for a 20+ year career. But it should be the employee’s decision, not the employer’s. Today’s NDAs and trade secrets are beyond abusive and need to be amended. Companies are certainly entitled to keeping their own information in house, but we need to rethink what really constitutes intellectual property. If we continue down this road, the economy will stifle and innovation with stymie.

I’m certain that my career will be with the Air Force for a great deal of time. If I end up outside of Big Blue, I’ll have no regrets as long as that decision is mine.

Reading Assignment 01 – 19 Jan

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?

“Hacker” is a frustratingly ambiguous term. To some it is the neck-bearded, Cheeto-covered, dark-dwelling D&D master with four monitors and no social skills. To others it is the budding scholar, newly introduced to the world of ones and zeros, who is eager to tinker in the world of the Internet to discover its secrets in a harmless way. To still more the hacker is best represented by Q in James Bonds. He is clean-cut and and painstakingly precise. His desk is uncluttered and his instruments lie at orthogonal angles to his keyboard. His mind is so finely tuned to the world of computing that he can’t help but view life as a series of patterns and security flaws.

But these character models are not entirely mutually exclusive. Perhaps the hacker embodies each of these traits in some way or another. Contrary to The Mentor’s beliefs, hackers are not all the same. In fact it’s a little ambitious and certainly an oversimplification to try and fit “hackers” into neatly drawn cookie cutter molds (though that doesn’t stop some from trying to).

A hacker is someone who can use simple tools to create incredible things in ways previously undiscovered, much like a painter with his colors and canvas. Hackers do not make new kinds of hardware or use cutting edge techniques to leverage results. They pull from the same toolbox as the rest of the world, but they can use those tools in ways unimaginable and often unintended. They follow the same rule book as the rest of the technological community, though they are the few that truly know the nooks and crannies of the system. They aren’t software engineers working to push out the latest and greatest product to the public. They care about real data, real people, and tangible results right now.

Hackers come in three flavors. Let’s call them black hats, blue-teamers, and tinkerers. Black hats work to find exploits in public and private systems for the sake of unintended data access, modification, or deletion, or to compromise a system’s integrity, reliability, or overall functionality. These are the ones that make headlines. Their methods are distrustful, using infrastructure and quirks in codes to bring about compromising results. Strictly said, black hats are unethical and ought not be the only image that “hacker” brings to mind.

Then there is the blue-teamer. He is much like the black hat, but his motives are true and just. He works tirelessly to find the critical flaws in enterprise and personal systems so that the vulnerabilities can be patched up and secured. He is the good guy, though he will never be recognized publicly as long as he does his job well. His goal is to make the black hat’s life miserable.

Then there are the tinkerers. They haven’t yet found a side in which to make camp. They are simply exploring what the internet has to offer and how computers really interact. Perhaps they engage in some questionably legal cyber activities, but it’s all done for the sake of learning and not for personal gain or with malicious intent. In fact most times the tinkerer won’t fully understand the repercussions of what he is doing.

However cool it might sound to be a hacker, sadly I am not. I don’t tinker enough. I don’t constantly ponder how to breach firewalls or successfully exploit a vulnerability. I prefer to learn how something is done and work to refine it instead of scaffolding up some sneaky, clever hack to look at some files. Perhaps I lack imagination, or maybe I lack the motivation. Whatever the case, I am a software developer and not a hacker. My joy lies in writing elegant, readable code and not in manipulating hex addresses and poisoning networks.

Black hats are real, blue-teamers are necessary, and tinkerers are the future. They each explore the fruits of my labor to find what is wrong and right about it. I simply hope to become a hacker in time. Then maybe, just maybe, we can begin to turn the corner and produce sound, secure, and reliable software.

Reading Assignment 00 – 12 Jan

“Is programming a super-power? Why or why not? What are the implications if it is?”

Let’s think about what it means to be a superhero. A superhero has unnatural powers gained in unnatural ways. His powers are unique to him alone, or to a select few at the very most, and often this alienates the hero from society. As a result, a superhero must keep his identity anonymous to protect those he loves. And a superhero must learn to use his powers for justice and for what is right.

So many times today society looks at the products of software developers and concludes that writing code is unnatural and a skill nearly impossible to attain. So many developers create applications and programs that save lives, create force multipliers, or simply make our lives a little simpler – they develop products for the greater good. Furthermore developers must live double lives. In industry few people understand the world of code, and developers must learn to express their talents in ways that the rest of world can comprehend. They may become alienated from others in the workplace because their talents are so misunderstood.

So does this make coding a super power? Are developers heroes for wielding an unnatural talent foreign to the better part of the world? No, and here’s why (but don’t tell Karlie Kloss).

Though programming may seem like a foreign and incomprehensible concept to the majority of the world, this is only because others haven’t yet committed to learning its secrets. A super power is unattainable except by supernatural means. Creating a website takes only a few hours on StackOverflow. Further, a super power gives a hero a singular, discrete ability – he can read minds, he can fly, he can communicate with fish (okay, so that’s not really super) – but learning to code is a talent that opens countless doors. And it’s messy! After all, developers aren’t engineers (technically speaking) like bridge builders who must follow rigid rules and meet strict standards. The rules and standards developers strive to meet change so often. Once a hero can fly, he can fly! (See more at Bridges, Software Engineering, and God)

Super heroes strive to use their powers to preserve the peace and bring villains to justice. They work to keep their abilities a secret and use them only to make the world the way it was before some sequence of nefarious deeds. But programmers are constantly changing the world we live in. Napster and BitTorrent changed how music and files were shared. That led to added copyright securities. Then music streaming giants like Pandora, Spotify, and Google made traditional personal music libraries like iTunes more obsolete. And the online giant Amazon crippled old-fashioned bookstores by moving books into the digital age (see more at Why Software is Eating the World).

Most of all programming is not a super power because of the implications it would create. People would rely on developers to “save the world” from evil. Often people have no idea what computers are capable of until the next greatest product arrives. People don’t have to stand by helpless waiting for programmers to save the day.

If programming was thought to be a super power, very few people would seek out to wield it power. They would think its power unreachable and would concede that “someone else will do it.” Programming is a skill within the grasp of all people. To quote the evil and misguided “Syndrome” from The Incredibles, “And once everyone is super, no one is.”

No, while the internet may have a certain mystique to it, it is no great secret. There are no magical powers that make computers go. There’s only a group of people dedicated to using ordinary powers to make the world a little more super.

Introduction – 12 Jan

My name is Jesse Hamilton. I am a Senior at the University of Notre Dame studying Computer Science. I have lived in Southern Indiana – just fifteen minutes outside of Louisville, KY – my whole life. Additionally I am a cadet in Air Force ROTC and will soon commission as a 2nd Lieutenant into the Air Force. I enjoy running and climbing and am an avid fan of college sports.

I was first introduced to the world of Computer Science by my two oldest brothers who each received Master’s in Computer Science & Engineering at the University of Louisville. I took a couple of courses in high school and immediately was hooked. I enjoy both the open-ended problem solving it offers, but I especially enjoy the set rules and boundaries that it teaches. I appreciate the ability to use the same set of strict rules to implement solutions to problems previously thought impossible to achieve.

By the end of this course, I hope to have a strong understanding of the current ethical issues that faces the Computer Science and Information Technologies communities. Additionally, I wish to have the tools necessary to both identify and mitigate the negative effects of new ethical issues in the future.

Today I am most interested in the world of data collection and an individual’s privacy. Particularly I am greatly concerned with Microsoft’s current data collection policies embedded into Windows 10. I would like to engage in thoughtful discussions concerning where an individual’s information ought to become public information and where companies toe the line on privacy invasion.