Reading 05: Learn To Fly

The root cause of the Therac-25 accidents was for three main reasons. First there were serious bugs in the code base, second there were no hardware safety checks, finally an inefficient user interface. The race conditions in the code were serious problems. They allowed code to be executed when it was not ready. Because the program shared variables poorly, it lead to execution before the code and hardware were actually ready to be executed. This meant faulty code could be run without the proper hardware set up with the proper inputs. Also, there were overflow errors in the code that allowed improper application again. This could have been largely protected against with hardware interlocks. If there were hardware checks in place to ensure that the hardware was properly in place before operation many of these problems could have been avoided. Finally the user interface was poorly operated. By having a high number of innocuous sounding error messages, such as “Malfunction 54,” caused the operator to ignore what was a very serious malfunction. In such cases the machine should have probably locked itself to ensure the user did not accidentally kill someone. The error messages could have been more descriptive as well, this would have allowed the technician to see the problem and fix it rather than simply ignoring the malfunction. Thus the root causes of the Therac-25 accidents were because of the bugs in code, lack of hardware safety features, and poor UI design. The challenges of software developers working safety critical conditions is the risk involved. Safety critical conditions can have major effects on people even possibly death, such as with Therac-25, if coded poorly. In these cases, simply rolling out patches when a bug is reported is not enough, people could have already died. The developers must extensively test all possible conditions before releasing the code to ensure no problems arise. One of the articles suggests third party testers to ensure no bias. This sounds like a great idea, in house testers are a great asset, however, may overlook some bugs as unimportant if it will launch the product faster. If a third party is used to ensure that there are no bugs, these biases will not exist. The developer must ensure that their programs in safety critical conditions is as bug free as physically possible. Sending out buggy software could have major negative side effects. These side effects would be the fault of the developer and of the company they work for. In these situations the developer should ensure they have tested their code as much as physically possible. At the same time, the company the program is for must also ensure they do not release products without extensive testing of their own. The company has more resources than the developer and therefore they should ensure to have all safety critical code tested extensively. Therefore, both the developer and the company are both responsible for ensuring that the code and the product are as stable, reliable and non faulty as possible. These steps could save lives.


Diversity in Computer Science can be a very touchy subject. Stuart Reges talks about how an executive at Google was fired because he expressed, in Reges opinion, honest thoughts on the subject of women in Computer Science. He suggests that its totally possible that women simply don’t want to be Computer Scientists and that is the cause for the gender gap in computer science. Reges supports this claim by providing suggestions that in elementary schools when both male and female students were tested, female students who scored similar math scores as their male counterparts often scored better in reading. What this data seems to be suggesting is that female students are more geared toward reading and similar subjects. While the data may point to this I am not convinced. I believe that looking at test scores divided by gender is an arbitrary measure. People as a whole are unique. I do not believe that the gender of a person determines their academic interests. There are probably similarly arbitrary ways to break up the data presented to draw similarly indistinct conclusions. It is entirely possible that the data will show that children who play more sports are more inclined towards reading, again it would be completely arbitrary. However, even if on average young girls are more inclined towards reading (which I do not believe as I feel that each person shapes their own academic interests not their biology) that should not change the approach of Computer Science towards women working in the field. I feel that the best person for the job should get the position, as such it should not matter what a person looks like or what gender they are, instead their ability should be what causes them to get a job and be respected for that ability. Some may argue that the problem of women in Computer Science starts earlier with not enough women being encouraged to take introductory classes or even consider the major due to external pressures. This is a potentially valid point. Young women may feel discouraged to pursue an interest in Computer Science for external reasons and this is wrong. All people should be encouraged to follow their interests. This could mean that women will always be in a minority in Computer Science or women could become the majority in the field, however, in the end to fix the problem I feel all people should be equally encouraged, as individuals, to pursue their interest in any field of study and to not discourage any person from their study. Society may initially press against both women and minorities who try to advance in fields such as computer science, however, to combat this the field should encourage everyone to follow their passion. That means that men, women, everyone should be encourage across the board to create a better equality. I think outreach programs by the industry that target young children could help to foster a better culture of involvement in the Computer Science Industry. If all children are encouraged to follow their passion from a young age even if society does not immediately accept the changes that are coming these students can believe in themselves and their peers to excel.

Susan Fowler’s blog post about her time at Uber is awful to hear. Uber’s poor treatment of women compounded by their poor overall management combined together to create a very difficult and discouraging work environment for all. The numerous reports she made about sexual harassment being ignored is extremely discouraging. Uber should not be trying to keep down its engineers for internal political reasons or reasons of sexism it is simply wrong. A company should make all people feel welcome and comfortable working there. If this is how a major software company treats its employees it shows a major problem in the industry of employees not being respected as people. While some companies may be trying to encourage all people, others are clearly not and this should not continue.

Reading 03: Visa Cash Back Program

The controversy surrounding the H-1B Visa is that is can be seen to either improve United States Industry or hurt United States Workers. The view of H-1B as a benefit is that the Visa offers employment opportunities to non-American citizens in the United States. This view can be broken down to see it as retaining foreign nationals who are schooled in the United States and bringing the best possible employees to work in the United States. I think it is a good idea to try to gain the employment of foreign nationals who are educated in the US, almost like a return on investment. The United States would gain from people who are being taught at American institutions instead of these people taking the talents they learned in the United States somewhere else. Also, if the United States wants to have the best companies it can, it should allow the best workers, no matter nationality, to work in the United States. The other side of the coin however says that when companies can hire similarly skilled laborers internationally, the company can generally pay the international employee less and as a result pay the domestic employee less as well. So the visa can be seen to be limiting salary growth.

Personally I am in favor of the H-1B visa, I think the idea of including people from other countries in the United State’s industry can strengthen it significantly. Also I do not think that people should be limited in terms of employment based on where they were born. Personally after studying abroad in the spring semester of my Junior year, I can see the appeal of working, even if only for a couple years, in another country. I think the spread of knowledge and information around the world will lead to a better world culture and a better relationship around the world. Also, I would hope that any country I would potentially work in, if I were to work abroad, would welcome me as I try to work in and improve their industry, like H-1B Visa immigrants are in the United States. It is understandable that people would be concerned about the lowering of wages as a result of the H-1B, however, I think that the positives out weight the negatives. As a whole I feel Americans would gain more from talented people from other countries coming to work in the United States then they would from a few people making a little bit more per year. Also, I feel that the problem of lowering wages is not a result of the H-1B visa, instead it is a societal problem in industry. The culture that foreign nationals can be paid less than American employees, and then stagnate American employee salaries is a problem that is not necessarily related to the H-1B visa. Salaries should be, ideally, based on competency not on locality or origin. Personally I view foreign competition and outsourcing the same way I do domestic competition. There are people that I am competing with to get a position and their nationality does not change that these people exist. While it could be argued that there is more competition and so less chance that I could be hired, this also works the other way, I could search for opportunities in other countries and be the foreign competition in that country. Thus I feel the United States should live up to the ideal of being a land of opportunity and continue to allow people in with H-1B Visas.

Reading 02: Money Moves

Money sucks but it is central to our lives in many ways. The best way to get money is by working, but how much we will make and how much we should make are not that easy to figure out and is even harder to get the amount you want. There is a negotiation, because your employer would love it if they could pay you less for the same work and you would love it if you could get more. Reasons money sucks number fourteen: negotiations. Personally I plan on biting this bullet as soon as possible. Negotiations are uncomfortable but like Patrick McKenzie says “Dude, it’s five minutes.” Five minutes of discomfort would definitely be worth it if it could result in an extra five thousand dollars per year. Negotiations, specifically salary negotiations, are the necessary evil of our world today, no one likes them but we have to do them. Engineers, or all employees, really should participate in these discussions and not just immediately take the minimum amount the company offers you as good enough. Why should someone with just as much experience doing the same job as you make more money than you, they will if you don’t negotiate salary.

Personally, I have yet to negotiate my salary for a position relating to my major. My internship came at the last second and I was just happy to have the opportunity. I have however, negotiated pay for another job I had. I was a lifeguard for a number of years, so long that I became one of the senior lifeguards on staff. There was a lot of turn over at the pool and beach I worked at and so a lot of different people came through. The pay system of the company I worked for valued education over experience. What that means is that as a lifeguard, the company held that someone who had a bachelor’s degree was worth more than someone who did not, even if the person without the bachelor’s degree was a better lifeguard. This did not sit well with me, so I had a discussion with my boss about pay. To substantiate my claim for more money I outlined my experience, my ability as a lifeguard, and my willingness to pick up shifts for others who called out regularly. I made my point that for these reasons I deserved at least as much as people with less experience but a bachelor’s degree. My boss agreed, partly because he already knew I was a good lifeguard, and was willing to give me a raise. In the end when I went into salary negotiations, I focused on my abilities and my history with the company to show that my time was worth the extra money.

Negotiations are not fun but they are a natural and necessary evil in the world today, everyone thinks their time is worth more and every company disagrees, if we simply let the company dictate what we make we will be much less satisfied with ourselves and our work.


Link to article referenced: