Family First

Michelle-christians-Wedding-11-M (3)
Brother and Son

One of the most important things to me when deciding who I wanted to work for was the support of a strong work life balance. My desire for this balance not only stems from my hopes of being a father in the future, but also for being a son and grandson in the present. When I enter the work force, I won’t be a husband or a father. However, I am a brother of two, son of two, grandson of four, and great-grandson of one. I began networking my freshman year with the goal of landing a job in the greater Houston area after graduation. 90% of my extended family lives in Houston, including both sets of my grandparents. For me, flying back to Houston for the holidays wasn’t enough. I have been raised to put my family first in all situations, and there was no better way to do that than to return to my hometown. Next year, I’ll be working full-time in Houston Monday thru Friday and being a full-time family member Sunday thru Saturday. As Anand Iyer suggested, I have established my work life balance early and I believe it will benefit the company I am working for because I will be much happier and more productive.

I am not a father yet, but I know that my passion for family will not dissipate when I have my own; in fact, I expect it to intensify. For this reason, I would have been foolish to work for a company that has a reputation for expecting employees to work overly demanding hours. I want to “have it all”, but what does that even mean? For me, having it all includes a significant role in my immediate and extended family as well as a fulfilling occupation. I disagree with Rebecca Traister who says we should remove the phrase “have it all” from our lexicon. I think we just need to change our perspective of what having it all means. The point of view that having to make sacrifices in order to raise a child jeopardizes a woman’s ability to “have it all” bewilders me. Isn’t bringing a new life into this world having it all? There are many couples who struggle to conceive children of their own, yet we are discussing the burden of creating life.

Without a doubt, having a child and starting a family requires time and sacrifice that should be anticipated. It is unfortunate that women have to make more work related sacrifices in order to nurture a newborn child, but we can’t make an amendment to biology. I don’t think the issue of mothers being less likely to advance in their career is related to men trying to limit women (I am not denying this occurs sometimes). From the viewpoint of a man who intends to be a very active father, it kind of stinks that I won’t be able to stay at home and help nurture my child during those first few months. I will probably have to return to work in order to financially support my family. I think companies, especially in the tech industry, are making strides towards making parenthood more of a priority by adding/extending paternity and maternity leaves.

I believe companies have an obligation to support their employees lives. Robots do not need work life balance to achieve mamixum productivity – humans do. The article reflecting on the nature of Amazon’s workplace was rather disheartening. I am relieved to say I will be joining a company that not only supports work life balance, but emphasizes the need for it to exist. This will go a long way in my development as a programmer, manager, and executive. If I ever have to sacrifice my devotion to family during the course of my career, then I will reevaluate the position I have obtained. I hope that the importance of family never gets drowned out in the capitalistic pursuit of high profit margins, market share, and rising stock value.

ZJL

About our Code of Ethics

In my last post, I outlined a code of ethics specifically targeted at Notre Dame students that Matt McKenzie and I developed. We used the ACM Code of Ethics as a model for our own. Matt and I focused our code of ethics on the responsibilities of a Notre Dame computer science and/or engineering student (CSE) after completing the undergraduate program. I believe this is important because we are often guided by our professors and restricted by university policies during our time at Notre Dame. After graduation, we venture out into a professional or graduate role where our skills will further develop and our freedom will increase.

To begin, we established some general morality guidelines that apply to most computer scientists with tweaks to further relate to Notre Dame students. One of my favorite points is “Make every class count” because I often see students take classes for granted. I believe there is always something you can learn from our professors at Notre Dame, no matter how boring or easy the subject may appear. I also genuinely appreciate the rule that one should “take action not to discriminate”. This rule relates to a unique characteristic of the Notre Dame experience, a strong sense of community we all experience during our 4 years.

Next, we covered some of the post graduate responsibilities of a Notre Dame student. Our first point is a crucial part of our code of ethics, Notre Dame professionals should “strive to increase the value of the Notre Dame brand”. At first glance, this may seem superficial and make you wonder if I work for the PR department. However, the purpose of this point is to benefit the future generations of domers. As Notre Dame alumnus working in the computer science industry, we have a profound effect on the ability of the following classes to acquire elite jobs and internships. If we commit ourselves to developing the Notre Dame brand, then we can open doors for future graduates of Notre Dame CSE.

Another unique guideline in our code of ethics stresses that one must “be a teacher”. I strongly connect to this point because I feel like it relates to my vocation. I think all graduates of the University of Notre Dame are capable of sharing the knowledge they have acquired through the process of teaching. When given managerial opportunities, I think it is an obligation for a Notre Dame alumnus to make an effort to develop the individuals working for him or her.

There are weaknesses in our code of ethics. For one, I am a spiritual person and my faith was injected into some of the points I developed. I am not one to impose my faith on others, but I do believe that Notre Dame graduates have an obligation to continue the mission of Our Lady. I believe that Notre Dame students should interview, negotiate, code, architect, and manage with grace. There are students at the University of Notre Dame who do not share in my faith and may object to this opinion, but I would argue that a faith based ethical code reflects the intentions of a Notre Dame education.

Developing a personal code of ethics is both a useful and valuable task. In the process, I was forced to think hard about what it means to be a computer scientist who has obtained the knowledge to create powerful tools with the available technologies. In addition, I developed a greater appreciation for the differences between my responsibilities as a graduate of the University of Notre Dame versus any other school. Love thee Notre Dame.

ZJL

Code of Ethics

Preamble

Every computer science and/or engineering student at the University of Notre Dame is expected to follow this Code of Conduct.

Section one is general moral imperatives. Section two is about professional responsibilities as a Notre Dame student or graduate. Section three is about managerial responsibilities as a Notre Dame student or graduate.

As with most codes of conduct, this document is open to interpretation.  This Code of Conduct answers the question of what it means to be a Notre Dame student and how it affects his or her approach to Computer Science.  This Code of Conduct is not dated and covers some emerging technologies.

General Moral Imperatives

  1. Contribute to the Notre Dame (Engineering) community
    • The reason the Notre Dame community is great is because almost everyone who is apart of it, cares and contributes to it.  Whether it is the smallest contribution or biggest, it is also important to remember where one was helped along the way.
  2. Understand and follow Notre Dame’s Mission Statement
    • The Mission Statement is intricate, but a quote that breaks it down: “In all dimensions of the University, Notre Dame pursues its objectives through the formation of an authentic human community graced by the Spirit of Christ.”
  3. Make every class count
    • Classes can be very boring and uninteresting, but one does not know when the class will come back to help them.  Whether in an interview, or  having a conversation in the workplace, the history learned about Ancient Greece, for example, could be very useful.
  4. Be honest and trustworthy
    • As a student of Notre Dame, these are the most important characteristics to have.  If someone was to turn in work that is not their own, they are cheating themselves, cheating the class, and not preparing themselves for the something that they can apply in the real world.   Also, having these characteristics in the real world is extremely important for any job.
    • Being honest and trustworthy is also important to honoring property rights.  Property rights, including copyrights and patents, should not be copied, reproduced, or replicated in any form.  If they are, someone should be honest about where they came from, and acquire permission to use the intellectual property.
  5. Respect the intended use of technology
    • Today, technology is advancing much faster than the law.  This means that although not illegal, an action performed can be morally wrong.  An example is using a personal drone to spy on someone.  Now there are laws that make this illegal, but this action was never morally correct. Someone created the technology of a drone for entertainment, so this intended use should be respected.
  6. Be fair and take action not to discriminate
    • In accordance with the mission statement, you should always be fair in the implementation of your assignments and projects. You should not discriminate against your peers when helping on assignments or assembling project teams.
  7. Give proper credit for intellectual property
    • When working with fellow students on coding assignments or projects, be honest in your evaluation of individual contributions. This includes your own personal contribution as well as the contribution of any other individual involved.
  8. Honor the property of professors
    • Many professors develop their own assignments and lectures for a given course. We are lucky to have such dedicated professors at the University of Notre Dame, and we can respect them by not sharing their hard work with following classes or students/professors at other schools (unless permitted by the professor).
  9. Respect the rules of Du Lac
    • Working on projects late into the night is not a valid excuse for breaking parietals. Move project work into 24 hour spaces on campus if personal interaction is necessary after hours.

Professional Responsibilities as a Notre Dame student or graduate

  1. Strive to increase the value of the Notre Dame brand by producing the best work possible.
  2. Further your education post Notre Dame.
  3. Know and respect the laws governing your chosen workplace and uphold the moral virtues instilled in you by your time at Notre Dame.
  4. Give helpful and meaningful feedback during professional review sessions.
  5. Accurately assess risk and appropriately report your findings when analyzing systems. Ensure the quality of your code by practicing thorough testing.
  6. Be gracious of opportunities given to you and honor all contracts.
  7. Share your knowledge of computer science obtained at Notre Dame with your peers, superiors, and future generations of computer scientists.
  8. Do not take advantage of resources provided to you as a professional without proper authorization.

Managerial Responsibilities as a Notre Dame student or graduate

  1. Develop social responsibilities of your team, in accordance with the Notre Dame mission, and manage commitment of your team members to uphold them.
  2. Manage project teams to produce work the advances the quality of life.
  3. Only authorize proper use of computing resources provided by your company or organization.
  4. Ensure that you develop products which sufficiently meet the needs of your customers.
  5. Develop policies that prevent computing systems from potentially harming the dignity of your users.
  6. Be a teacher. As a manager, you are responsible for educating and developing the members of your team with the hope that you help them advance in their own career.

Compliance with the Code

As a student studying computer science and/or engineering at the University of Notre Dame, one should uphold and promote the principles of this code. In the professional world, a Notre Dame computer science graduate is expected to represent the university and the computer science and engineering department in the best possible way. This is done by performing one’s job with technical, ethical, and professional excellence.

Authors: Zachary LeBlanc and Matt McKenzie

 

The CS Hiring Process

Screen Shot 2016-01-24 at 4.20.01 PM

I have been fortunate to have a relatively good job-seeking experience during my time as an undergrad at Notre Dame. For that reason, I do not particularly disagree with any of the hiring practices I was subject to, but there are a few things I would like to see altered over time. Most of my interviewing experience, minimal in comparison to some of my peers, was behavioral. I am a fan of behavioral interviews simply because I have less anxiety. That might make you think – is this guy just not technically skilled? At this stage of my education, I consider myself a good programmer with the technical ability necessary to be productive in the tech industry. I prefer less technical interviews because I do experience anxiety in tense situations like that and it affects my ability to focus. I would like to see more tech companies focus more on the person during interviews and allow their work to speak for itself.

My proposed solution would be to make it an industry standard to analyze technical abilities through an individuals past work. There are many ways to do this, most notably asking to view their GitHub profile (or other comparable online repositories). I think this is an effective solution because you can grasp an understanding of their coding style, if they have worked with teams, and how well the contribute to larger team projects. None of this can be done when you make someone write code on a whiteboard or piece of paper in an hour long interview. One example of a trait that could be analyzed by looking at past code is the willingness to document code. Thorough documentation is an important part of large software projects and you can’t determine how well someone documents their code during an interview because most candidates aren’t going to spend time writing comments when they have been put on the spot to complete a task in a limited amount of time.

Like Jeff Atwood says in “Why Can’t Programmers.. Program?”, there will be candidates who sign up for interviews that don’t have much programming experience, so how do you analyze technical ability in these situations? In these situations, I am a firm believer in having candidates write very simple programs to ensure they have basic knowledge of computer science. In my first interview, I was subject to several coding questions including the FizzBuzz problem Atwood mentions. For me, the FizzBuzz problem was helpful because it gave me confidence going forward. One critique I have of my first experience is the questions I was given were not tailored to my experience. I think companies should be more diligent in reading resumes and gearing their interview to affirm that the candidate knows the things he or she says she knows. Why ask a candidate who has never taken data structures a question that requires understanding of a B-tree? My interviewer often skipped questions or explained the solution to me because he knew it would be over my head. I think it would have been more beneficial to the company to have given me questions pertaining to my current level of expertise.

Looking back, I have no grievances with respect to the interviewing process I experienced. I believe behavioral interviews are more effective in assessing the quality of a candidate and making the interview a positive experience. I also think some companies who focus solely on technical interviews are misguided. If we invest so much money in a college education, why should companies feel the need to grill us on our technical abilities? Didn’t we just pay a ton of money to develop our technical skills and provide a transcript to describe how well we developed? If all companies care about are technical skills at the entry level, then I think the tech industry should be more open to interviewing students out of high school who can prove their technical skills without needing to pay for a 4-year degree. Wouldn’t a 22 year old employee who’s been working in the industry for 4 years be much more valuable than a 22 year old employee who just graduated from college and has had a few internships?

ZJL

 

Morality of Computing Luminaries

Steve-Jobs-and-Mark-ZuckerbergAfter reading about four prominent computing luminaries, Richard Stallman, Bill Gates, Mark Zuckerberg, and Steve Jobs, I have come to the conclusion that Zuckerberg is the most moral individual and Steve Jobs is the least. I do not consider myself a capable judge of human character, so I will describe to you the basis for my judgment. I will focus on three areas of the lives of Zuckerberg and Jobs: commitment to family, their personal mission, and philanthropy. I would like to precede the heart of this post with a bible verse to further clarify that I am not qualified to judge these exceptional technologists.

Do not speak evil against one another, brothers. The one who speaks against a brother or judges his brother, speaks evil against the law and judges the law. But if you judge the law, you are not a doer of the law but a judge. There is only one lawgiver and judge, he who is able to save and to destroy. But who are you to judge your neighbor?                     – James 4:11-12 (NIV)

I believe a commitment to family outside of work is a moral obligation of luminaries in any field. In the case of Mark Zuckerberg, it is clear in “A Letter to our Daughter” that Mark and his wife, Priscilla Chan, are dedicated to being loving parents. I would like to say that I admire the commitment of Mark to raise Max despite his important role in Facebook. However, I simply expect that a father would always be there for his child, no matter what pressing business he may have. This is one area that I believe Steve Jobs failed to focus on in his life.

In Walter Isaacson’s biography of Jobs, the upbringing of Jobs is depicted as not the ordinary childhood. He resents his biological parents for putting him up for adoption and I believe that may have affected him for the rest of his life. When Chrisann Brennan gave birth to Steve’s daughter, Lisa, he publicly denied being the father. Even after a paternity test resulted in a 94% chance Steve was the father, he argued that someone else could still be the father. Jobs eventually came around and tried to reconcile with his daughter Lisa, but he missed so much of her life that cannot be brought back by a multi-million dollar inheritance. In addition to Steve’s poor relationship with his daughter, he was described by his wife, Laurene Powell, as very focused and standoffish at times. Jobs difficulty with intimate relationships may have stemmed from resentment for his biological parents, but I still believe he is responsible for failing to fulfill his obligation to family during his lifetime.

Zuckerberg clearly outlines his mission for the Chan-Zuckerberg Initiative in “A Letter to our Daughter”. Mark and Priscilla have goals to advance human potential and promote equality. These are both admirable, moral goals that led me to my decision that Zuckerberg was the most moral individual. More importantly, I think Zuckerberg is using Facebook to help the world achieve these goals. He has created a platform to connect the world so that an idea in one part of the world can reach a bright mind in another part of the world and people of opposite cultures can connect. I believe Zuckerberg has genuinely committed his talent of connecting people to make a positive change in the world.

Steve Jobs mission, as depicted in his biography, was to create beautiful products with seamlessly integrated hardware and software products. Jobs was portrayed as a perfectionist who cared about the beauty of the motherboard circuitry and design of the boxes for retailing Apple products. He was involved in every aspect of his company – from design to distribution. His goal was to create the most perfect suite of technology products on the market. Indeed he did, as an owner of many Apple products I consider myself a benefactor of the persistent attention to detail of Steve Jobs. However, I do not consider his mission to be one of strong moral fiber. Jobs did not create a product for the masses, for his product is limited to those who can afford higher echelon technology. Although an admirable product was developed, Jobs was not driven by moral concerns.

With regards to philanthropy, Zuckerberg has been in the headlines very recently. Mark and Priscilla have pledged 99% of their Facebook shares (approximately $45 billion) to charity. I believe this act was derived from compassion and humility. Zuckerberg truly believes that his mission for society can be achieved and he is willing to donate 99% of his shares to help make it happen. He acknowledges that his contribution is small compared to the current resources committed to making change, but he also offers his voice and influence as CEO of Facebook to the cause. One thing that is missing from Jobs’s legacy is philanthropy. In searching online, it is hard to find a publicized charitable contribution made by Steve Jobs or Apple. Maybe he made his donations quietly and chose to remain outside of the public eye, maybe he drew up plans to make contributions after his death, or maybe philanthropy was not part of his plan. We will have to wait and see…

ZJL

Computer Science: Art and Engineering

What is computer science? This is a highly debated topic right now which has led to an attempt to categorize this degree/profession/field/discipline/thing. A few of the attempted categorizations of computer science are science, art, and engineering. I personally believe computer science is both an art and a form of engineering. I have nothing against calling it a science, but I also have nothing for it. Science makes me think of biology, chemistry, psychology, etc. Of course, computer science can be applied to all of those subjects, but I would not group computer science with them. On to the defense…

Why is computer science an art? Well, I think there are multiple reasons and no clear answer. It’s hard enough to define art, so I am going to do my best to define computer science as an art. First of all, there is plenty of room for creative expression in computer science. You could give 100 programmers the same task and odds are none of their solutions would be the exact same. This is one thing that always stood out to me in art classes growing up. Often, the entire grade at my school would be working on the same art project for months at a time. Once finished, none of our projects would look the exact same. Each picture had a uniqueness defined by the artist, and I believe that phenomenon exists in code as well. Creativity can be suppressed in corporate settings where code structure is clearly defined, but so can the creativity of art – just think of all the periods of censorship that have occurred throughout history.

Like art, computer science also has the ability to produce beautiful results. There are many instances that I have felt and admiration for the beauty of computer sScreen Shot 2016-01-13 at 8.11.19 AMcience, but the one that always stands out to me is CSS Zen Garden. Zen Garden is a demonstration of the capabilities of programmers who design websites using CSS.

Along with creative expression and beauty, art tends to have the ability to bring things to life. Many computer science applications also involve bringing things to life. This capability leads some people to believe the ability to code is somewhat of a super power. We can create robots and machines that can think and learn. Several of the produ
cts we use on a daily basis are plastic/metal objects that are brought to life by software. One example of this is Roomba, a robot that will do your vacuuming for you. Another obvious example of computer science bringing inanimate objects to life is the field of computer graphics, specifically animated movies. Companies like Pixar have disrupted the film industry by leveraging computer science to produce memorable movies and characters. Some of the most recognizable film characters are animated – Woody and Buzz Lightyear from Toy Story, the Minions from Despicable Me, and Elsa from Frozen. These characters were all brought to life by programmers.

Moving on to engineering… can computer scientists call themselves engineers? Yes. Take a moment to read the Merriam-Webster definition of engineer

A person who has scientific training and who designs and builds complicated products, machines, systems, or structures : a person who specializes in a branch of engineering

I don’t see how you could deny a computer scientist the right to associate with the definition of engineer. Although one can learn computer science on the internet, a scientific training to become an expert is still necessary. Even self-taught computer scientists develop their skills by studying material, practicing on their own, and applying what they have learned to solve problems. In order to solve problems, computer scientists first design potential solutions. In fact, a common job title in the industry is Architect. The title is given because there is a systematic process that takes place before teams of computer scientists build complicated products or systems that are beneficial to consumers.

One counter argument to my claim comes from the traditional responsibility of engineers to ensure public safety and make reliable products. Skyscrapers, bridges, power plants, and elevators are built to meet specific standards and failure to meet them could result in endangering the public. As a result, this type of engineering is highly regulated and failures are rare. In computer science, there is little regulation as to what code reaches production. Bugs are often found in software releases that lead to significant failures such as data leaks. Many people use this to discount the engineering qualities of software engineering, but I refute this argument. What if you had highly skilled civil engineers trying to break bridges? I bet they could find ways to cause the construction to fail and harm the public. That’s what computer scientists are facing – other highly skilled computer scientists who spend considerable amounts of time trying to break software. Computer scientists are responsible for maintaining their software, just like engineers are responsible for maintaining skyscrapers, bridges, etc. Thus, I think this counter argument is flawed and my defense further supports the classification of computer scientists as engineers.

ZJL

About Me

IMG_4114

Welcome to my blog!

My name is Zachary LeBlanc and I am a senior at the University of Notre Dame. I am majoring in Computer Engineering with a minor in Engineering Corporate Finance. Notre Dame is a long way from home for me, I have lived in Katy, TX (West Houston), for the majority of my life. My parents both work for my hometown school district and I have two siblings. My brother, Nathan, attended LSU and my younger sister, Hannah, is still in high school. I have always loved sports – they were a big part of my life growing up. My brother and I both played baseball competitively throughout our childhood. In high school, I developed a passion for basketball and quit playing baseball to pursue a basketball career. I continue to play basketball all the time as a student at Notre Dame, mostly recreationally.

I was exposed to computer science in high school and had an amazing teacher, Paul Stroud, for three years. It was largely due to this early exposure that I ended up in computer science. I applied to Notre Dame to become a chemical engineer. I quickly realized in the Intro to Engineering course that I had a passion for computing and decided to purse a degree that would be more rewarding for me. I am a big proponent for increasing computer science awareness in lower to intermediate schools. I have always had a passion for teaching myself, and I take as many opportunities as I can to share my knowledge of computer science. Last semester, I mentored a blind student at the Indianapolis School for the Blind and Visually Impaired. We worked the entire semester on a project that involved creating a high altitude balloon that could record GPS data using a Raspberry Pi. I have also spent a lot of time teaching Take Ten, an anti-violence curriculum, at the South Bend Center for the Homeless.

I believe the most pressing issue in computer science is the lack of interest among the youth, specifically girls. I believe that we can diminish the gender gap by increasing exposure to computer science at a younger age. I think this will help spur more interest from girls because kids will be less likely to attribute it to a “guy thing” if everyone has been developing their computer science skills. I would like to discuss the large scale accumulation of data that has become the normal. At what point is the aggregation of so much data wasteful? At what point does the average citizen have access to know what type of data regarding him or her has been recorded?

I made the drive from Houston to South Bend over the past couple of days, and I stumbled upon an interesting podcast. The Radiolab podcast, “Eye in the Sky“, discussed a surveillance technology created by Ross McNutt. He and a team of engineers use small planes and 44-megapixel cameras to “go back in time”. Their technology works by taking aerial snapshots of every city. When an event occurs, say a bomb going off, McNutt’s team can analyze the images and determine who is responsible by stepping back in time through the images. There are obvious benefits – a cartel in Juarez, Mexico, was busted and the perpetrator of a home invasion in Dayton, Ohio, was caught using this technology. However, the thought of an “eye in the sky” is scary to most people. How do we feel about the possibility of someone seeing every move we make? One side of the argument would be that people who have nothing to hide should not be concerned, and society will benefit from exposing the people who do have something to hide. My question is, how far are we willing to let surveillance expand? At the moment, McNutt and his team have set moral limits for their company. It’s important to remember that morality is relative.

ZJL