Category Archives: Work

Humanity is Good.

There are many, many events that make me doubt the goodness and the heart of humanity as a whole. Of course, this is definitely an over-generalization and there are definitely occurrences that make me realize that there are a lot of good people in the world.

I want to describe one of those occurrences.

If you do not know, I am currently employed at a Dining Hall here on campus. Although I have no interest in working in the food service industry, I thought that it would be a good experience getting to know the ins and outs of the businesses that so happily serve us food almost every day of our lives. So far, it has been a very rewarding experience, and I definitely recommend an employment in the food service industry to everyone who frequents restaurants.

Now, back to the story. I was working the cash register as usual. Everyone was diligently paying for their food and getting water cups. Nothing out of the ordinary. Then, a woman with sunglasses and a skateboard approached the cash register. Once again, nothing out of the ordinary. Then, she kindly offered to pay for the four customers after her in line, of whom she informed me she did not know. I’ve never experienced someone offering to pay for strangers before, so this was a transaction that I was extremely glad to make. I thanked the woman, told her how kind she was, and sent her on her way with her food.

The expressions of the people who had their food paid for were priceless. First, a look of awe and embarrassment. A poor man was under the impression that the woman had attempted to pay for his food as some sort of sign that she was interested in him. However, when he learned that the next person was also being paid for, he become less embarrassed and more appreciative of the gesture that this stranger had made. The next individual in line curiously waited to see if the person behind him was also being paid for, and when he realized that they were, he left. Whether this was because they knew eachother or that he was simply concerned that the person behind him would get the short end of the stick, I’ll never know.

The third person to be paid for did as expected: They take their prepaid food and left. The fourth person, however, did something that has inspired me to be a better person everyday. He asked me about the person behind him. “Is the person behind me’s meal paid for as well?”. Of course, I responded with a “No.” To this, the customer gladly stated that he would pay for the person behind him. Not only did this customer get a free meal, but he also cared enough about the people around him to make sure that he wasn’t the only one getting something for free.

This trend surprisingly continued for the next 10-or so people. Each one, after learning about their free meal, was immediately concerned with the status of the person behind them. After learning they hadn’t been paid for, they quickly offered to pay. Of course, there was bound to be someone who did not take the time to check on the person next in line, but the fact remains that a single act of gratitude, paying for the next four people in line, sparked a huge chain of people who were looking out for one another and taking care of each other’s meals.

This event made me extremely excited, and I immediately told my roommates about the event when I returned home. Inspired by it, my roommate actually decided to surprise me and pay for my laundry that night. In order to give back the good feeling, I decided to pay for someone elses’ laundry, to which they were very receptive, and we have become good friends.

This event has taught me that people, no matter how ignorant, arrogant, or self-centered they may seem, have a lot of good in them, and are very capable of accomplishing astonishing things. Because of this event, I am now inspired to look out for anyone else who may need help and immediately offer my assistance. On top of this, I think it’s a good idea to surprise people once in a while. I want to show those around me that I care about them.

Now I challenge you, reader, to go out and do the same. Pay for a stranger’s meal. Help a stranger carry something. Offer your aid wherever you think it could be useful. It could make someone’s day, start a chain reaction, and maybe change the world.

A Rant About Startup Growth

A bit of background

I very recently began working at a software development company that has grown very, very fast. Its profits have grown tremendously, its employee count has grown, its project count has grown, and even the amount of buildings it owns has grown. From the outsiders perspective, this is a great thing. When talking to those that are in charge of the business side of things (sales, management, hiring, etc..), everything is going just as according to plan; however, the tech side of the company definitely has a different story to tell. The company has grown so rapidly, in fact, that the technology and routines of the company cannot keep up with the ever-changing environment that the company lives in.

A Quick Example

Take, for instance, version control. This is probably my biggest gripe about how the company operates. The company consists of many, many teams doing many, many different things. None of these teams can agree on a single method of version control. Each team does something different with their own little twist. Many teams use an internal clone of GitHub, Many others use Perforce. This doesn’t seem so bad at first, however, with each side of version control comes its own integration of code review, submittal processes, and checkin/checkout procedures. There have been several occasions where I needed to grab code from another team that was in GitHub and attempt to sync it with my code that is stored in Perforce. It’s a logistical nightmare.

It doesn’t stop there, though. Each method of version control has its own story. I won’t go too far in depth, but let’s just say that the goal of the company was once something along the lines of “We need to push code that works“. Now, the company is leaning more towards a philosophy of “We need to push code that works and is efficient, modular, and understandable“. This makes fixing bugs on older products or adding features to older products a logistical nightmare.

A Resolution?

One of the problems that I have found with Perforce is that its local repository management is more than complicated. There have been several times where I quickly want to branch a directory full of code so that I can play around with a  possible new feature, but be able to quickly switch back to the main devline of code. With Perforce, this is much more complicated than a simple git checkout -b feature.

So, in order to solve this problem, I have resorted to keeping all of my copies of the company’s source code within my own local git repositories. I then sync all of the Perforce checkouts into a branch and then merge that branch into all of my feature branches, resolving all conflicts along the way.

The Message

Although this post seems to have gone nowhere at all and made no constructive points whatsoever (that was definitely not the purpose of the post), it did point out something that I never expected. The internal infrastructure of large companies can be a serious mess. This being my first position at a large software development company, I honestly did not expect things to be as messy as my code directory on my home computer. But it’s also much, much worse. I believe that the problem arose from the fact that the company simply expanded very, very fast and that the internal tech employees were unable to adapt to newer tools quickly enough.

What does this mean? It means that now developers are stuck at a crossroads of bad naming conventions and commented-out blocks of code. They’re forced to use project-specific version control and they’re constantly deciding on which of the hundreds of branches they should push their code to.

Honestly, in situations like this, I think it is best for the company to stop working on new features for a small while, and fix their current infrastructure disaster.