This week’s readings really convinced me of the importance in intensely evaluating the consequences of software engineering and those who lead projects, especially when involving human life so closely. I certainly do not think that the failures we looked at this week were merely technical accidents. When these accidents took place, there was weak leadership somewhere along the software implementation pipeline. With the Challenger, the leaders should have recognized the danger apparent and halted the mission, regardless of other motives to launch quickly for financial gain. For the radiation madian, there should have been many more checks along the line before the product was implemented in hospitals. There should have been multiple programmers working on the machine instead of the one novice programmer they had. In addition, the FDA should have investigated the project more than they did.
The line when to whistleblow is hard to draw. In the case of Edward Snowden, I believe he was a hero in releasing the information to give the general public a sense of awareness in addition to putting the government in check. However, I really struggle whether I feel Manning was in the right. While I certainly see the value of sharing our military’s actions with the public, I believe her exposal of the video footage posed a real threat to national security and peace efforts. I believe in this case, it would have been better to share information internally so that it would be dealt with properly instead of releasing it for the entire world. I think that it is important to never remain silent. I firmly believe in the saying “if you see something, say something” but I think the audience of who you share your information with is important. When Manning released the information about the government, there could have potentially been better ways to release it than to the entire world.
I definitely think whistleblowers should be protected if they truly are trying to help the greater good. If the whistleblower is just releasing data to expose someone for something but aren’t helping anyone in the process, I don’t think they should be protected. Looking at someone like Snowden or whoever blew the whistle most recently on the Ukraine records, there should certainly be protection. We all know the government is corrupt and therefore need whistleblowers to keep them in line. Though I wish this wasn’t the case, it is an important part of our democracy and those who have the courage to break the law, should. In another one of my courses, the professor talked about the importance of pursuing justice. We specifically studied Martin Luther King and “A Letter from Birmingham Jail” which he wrote after being imprisoned for parading. Though he technically didn’t break a law, he understood the importance of pursuing justice at all costs, regardless if he would be imprisoned. Sometimes, laws reflect justice and sometimes they do not. Regardless, it is important to pursue justice for the sake of bettering humanity, even if one must break the law.
The community of computing and technology needs to work towards creating a diverse community. In this field, diverse entails diversity in gender, background, race, experience, origin, whether you went to public school or private school, how many siblings you had, if you were in band or played a sport and so on. What I am targeting here is the notion of diversity of experience and self knowledge. Diversity proves incredibly important for tech due to its ability to generate the most creative and innovative ideas. Bringing together those who are different and even sometimes better disagree can greatly promote innovation. A perfect example of this is Pixar. In the Integrated Business and Engineering Fundamentals course, Professor Kitz showed us a clip of the producers at Pixar. Instead of gathering like minded individuals, Pixar purposely chose personalities they knew would collide and conflict, as they understood it would only make their projects and films better.
As a woman, I have definitely experienced both sides of this inclusion and exclusion. During my first summer internship of college, I was definitely not in a warm environment. I was on a team with practically all males except for one remote female. Normally, I don’t have a problem with this environment as I enjoy working with all kinds of people. However, during this summer I experienced extreme isolation because I was a woman. I sat in between two male developers in their late to early thirties. When I would ask one of them for help, he would treat me as though I was a 12 year old while treating the other male interns differently. He was constantly shocked that I knew anything and was incredibly condescending. I eventually had to report this to HR because he would make comments as though “of course you wouldn’t know that” or make fun of my lack of knowledge of a topic while in perspective I was about 10 years behind him in the industry. I experienced a much more welcoming and inclusive environment at Amazon Robotics last summer. There were many more females in the office in engineering roles. I also had a one on one meeting with my manager weekly where he asked how I was feeling and doing at work.
Outside of inclusion and exclusion in the workplace, I want to note on the importance of keeping a professional self. Though I understand notions of free speech, the harmony of the workplace is drastically killed when employees use free speech as an excuse to not be professional. For example, this summer there was an intern who constantly referenced sex and drugs. Of course, as an American, he is free to discuss whatever he wishes. However, these topics of conversation in the workplace not only make others feel incredibly uncomfortable but influence the way that others worked with him in the work-place. Given this experience, I definitely think that we should practice respectful self-censorship and maintain a professional status. I view this censorship not as a suppression of individuality but more as an emphasis on the productive, creative and other sides of the individual that they can only really develop and express in the workplace.
The hiring process for Software Developers isn’t necessarily broken, but certainly has room for improvement. Regarding the rankings we discussed in class, I think every company hires according to these components differently. I believe no matter what industry you are in, connections always prove most important. After that, I think companies really differ in how they hire, which I think is a really good way for the applicant to also see if a company is right for them. While I don’t love coding interviews by any scope of imagination, I understand their value and the importance of technical skills. If a company only offered technical interviews, however, and didn’t do anything behavioral, I would know it wasn’t a good match because I want to be in an outgoing and collaborative environment. The same token applies reversed if you love technical work but only have behavioral interviews, it may be an indication that this isn’t the company you want to work for.
To prepare for this process, I plan to do a lot of coding prep. I plan to read Elements of Programming and do a lot of practice problems to refresh data structures. I also plan to do a lot of practice interviews and construct a clear guide for how to solve a problem. I also plan to go through all of my projects, review their structure, and take notes on best vocabulary to use when describing my strengths. I also plan to prepare a list of questions to ask the company. While I love Notre Dame, I really don’t think they have helped me in the process. I went to the career center to ask about jobs to apply for and I was basically told to google the role. Almost no tech companies come to Notre Dame or recruit here. I feel that during this process, I have had to take the complete initiative of applying coldly to the majority of jobs I applied to. I really think the biggest way to improve the process from Notre Dame would be to have more large tech companies come to recruit. They could also contact alumni to possibly match with seniors and get some industry advice. I also really wish along the way some professors mentioned the importance of being on top of job items the summer before senior year and tips and tricks on how to land the dream job.
If I had to give my younger self advice, I would definitely say to start studying for coding interviews at the beginning of summer. I would also have told myself to keep refreshing on data structures throughout my undergrad even after the course itself. I also definitely would have networked more with people at big companies to build relationships. While I am still going to undergo the interview process, I really don’t love the fact that my value as an employee will sometimes be based solely on my ability to traverse a tree or reverse a linked list. I would rather the interview evaluate how I engage with their team.
As we discussed in class, there is an expectation in the computer science community that programmers should be passionate about programming. While I understand the basis for this stereotype, I reject that every programmer has to be passionate about the process of coding. To be a good programmer, you should be passionate about the outcome or cause your work is aiming towards. The zeal should come from loving what you are creating and how you are helping the world. Another stereotype of those in computing is their personality and appearance. From Hollywood, media, and social perception, the programmer is portrayed as one who is very anti-social, doesn’t care about their appearance hence resorting to the classic ‘hoodie’, aren’t interested in subjects outside of programming, and are obsessed with coding every minute of every day. Personally, I reject all of these stereotypes. I find myself to really enjoy being around others and working together. I don’t think I own a drawstring hoodie and normally put effort in my appearance in both casual and professional life. While I enjoy programming, I am passionate about many other disciplines such as Philosophy(aka my minor), English, Politics, Business etc. Finally, I certainly do not spend every waking moment of my life yearning to program or get my hands on a keyboard. Regarding the two points about being anti-social and not interested in other disciplines, I feel these are attributes that better programmers reject. For example, when a programmer is social and collaborative, against the norm, they will generate new ideas and likely be more productive in a team setting. Further, when a programmer considers disciplines outside their own, they have a greater perspective of their project and purpose.
A degree from Notre Dame is packaged with many stereotypes as well. Notre Dame has the basic student stereo-types such as being from a suburb of a suburb of Chicago, loving football, being a “good” person, being catholic, holding the door open for people, having 30 siblings, and wanting to make a positive difference in the world. I certainly manifest a love for football, attempting to be a good person and wanting to make a positive difference in this world. However, being from Southern California, having one sibling, and being Lutheran, I definitely don’t check every box for the description. Regarding the engineering student and more specifically computer science student, Notre Dame has a different stereotype than most schools. Given that we have the First-Year of studies, Notre Dame students are designed differently, designed to think broadly, about others, and long term. I know there is a large debate within engineering regarding the First-Year of studies. There are cons given that engineers are a year behind most other universities regarding jobs and internships. However, I am a huge advocate for the first year and the requirements we must take because it forces students to really consider what they want to do and what they want their lives to be. These courses not only contribute to personal discernment, but also enable students to be well-versed in a variety of topics. One of the most notable words an employer said to me regarding Notre Dame engineers was that “we hire Notre Dame engineers to manage the rest of the engineers.” I think this conversation really explains the expectation from Notre Dame CS students when they graduate: not only to have the skills to be a great developer but a phenomenal leader too.