Archive for April, 2007

peterskim.org

My blog is now at peterskim.org. Please change your bookmarks accordingly.

Comments off

No trolls allowed

I don’t mind people disagreeing with me, but I do ask you to do two things:

1) Reveal your true identity. Even if you don’t want to reveal your name, provide a real email address since the email address isn’t published.
2) Be respectful.

Why should I give you a platform on my blog and take the time to respond to you if your only intention is to put me down. It’s one thing to disagree with my opinions and be willing to debate/discuss (which I welcome). It’s another thing to say I’m a dumb ass and retard and expect me to respond to that positively. When’s the last time you ever personally attacked someone and had them respond by saying, “Wow, thank you so much for calling me a dumb ass! I appreciate your comment!”

Comments off

Discounts/premiums for company quality

As you progress through your career and work at a number of different companies, you realize that there are good companies and bad companies and everything in between. What’s the difference between a “good” company and a “bad” company? Quality of management, clarity of vision, opportunities for career development/advancement, work environment, treatment of employees, etc… There are no perfect companies, but some companies are clearly better than others.

I think it’d be interesting to try to quantify what the discount/premium is for salary when taking company quality into consideration. For example, a lot of techies would consider a company like Google to be an “A list” company. Google doesn’t need to overpay people in order to acquire high quality employees because there is so much demand. In fact, they can probably get away with underpaying their employees since for the employees, there are no better alternatives but for Google, there are plenty of people willing to replace anyone who decides to leave Google.

On the other end, there are a lot of companies that might be considered “F list” companies—companies that are poorly managed, lack vision, completely pigeonhole employees into niche roles, and treat their employees like slaves. It’s a miracle that companies like that find a way to stay afloat but they do. When these “F list” companies need to hire new employees, how do they attract sufficiently talented people when those people can choose to work at a better company? “F list” companies have to 1) overpay to make up for it being an “F list” company and/or 2) settle for less-than-qualified individuals.

If “A list” companies can underpay and “F list” companies have to overpay, what are those discounts and premiums? Have human resources professionals found a way to quantify those discounts and premiums?

Or maybe what most frequently occurs is that since there are also superstar and subpar employees, the superstar employees tend to end up at the “A list” companies while the subpar employees go to the “F list” companies. The interesting scenarios are when overall supply and demand for a particular job are completely out of whack, like what seems to be the current scenario for software engineers. Not that it’s always been great for software engineers—CS majors graduating in 2002, even from the top schools, had a tough time finding a job.

I’ve thought about this issue as I’ve considered a number of different companies and ranked them in order of quality as I perceive it. How much more would Company Z, which I rank last in my list, have to pay in order get me to go there instead of Company A, which I rank first in my list? Would I turn down a significantly higher offer at Company Z in order to work for Company A?

I decided that I would because money can motivate me for only so long. If I took the job at the lesser company, I would eventually become unhappy and unmotivated, regardless of how much money I made.

Leave a Comment

Downtown Crossing in B&W

34650021

Leave a Comment

The consequences of an exclusionary culture

Now I’m not the type of person who approves of making everyone out to be a victim. Every human being is capable of making good and bad choices; I believe those who make bad choices ought to suffer the consequences of those choices.

However, as I saw and listened to Seung Hui Cho’s various last messages that were a part of the package he sent to NBC, I heard something familiar. I heard the cries of someone who felt left out, ridiculed, and most importantly, alone. It reminded me of all the strange people I met at my alma mater, Case Western Reserve University (which I thought had the highest concentration of socially awkward people in any one place in America, but I heard MIT is worse). It reminded me of when I felt excluded and alone in high school and college.

Although in many ways, American culture celebrates difference much more than other cultures, I think the materialistic and media-driven nature of our society continuously reiterates the definition of what is cool, what is acceptable, what is “hot”. And if you can’t identify with the artists, the musicians, the jocks, the socialites, the rich, or the beautiful, it becomes painfully apparent that you are abnormal, weird, an outcast, a freak.

What should our country do to respond to what has happened? Some people think we should pass stricter gun laws. I’m not strongly in favor or against gun control, so I don’t know—maybe it’ll help, maybe it won’t. What I do know is that we can start loving people more. What if someone reached out to Cho? What if someone had made more of an effort to befriend him?

I think a lot of people like to exclude others because it gives them a false sense of power and superiority. Some people think cliques are a natural part of being human. That may be true, but I think we can make a choice to stop thinking in terms of cliques and start thinking about people as individuals. I’ve had problems in the past with people thinking it’s okay to have cliques in the context of a church or “Christian” fellowship setting. I think there is no place for that in the church. If churches are going to have various cliques representing the “cool” people, the “beautiful” people and the “nerdy” people, how different is the church from any other institution?

I can guarantee you that there are hundreds, maybe even thousands of people like Cho out there. People who feel so lonely and so excluded from society that they are on the verge of doing something extreme. How do we prevent events like the Virginia Tech massacre from happening in the future? Let’s stop excluding people. Let’s stop looking down on people. Let’s start loving people.

Leave a Comment

I forgot the camera

We went to Albany today. I forgot my camera so I bought a disposable. Disposables suck for indoor shot but are not too bad for outdoors. Here are some photos of the Empire State Plaza:

60410017

60410016

Comments (2)

Let the competition begin

I’m so happy that Sanjaya has finally been kicked off the show. His continued presence on the show has made the competition a joke. It has taken away all legitimacy from the competition. But now the competition is on!

Jordin Sparks is our new favorite. She definitely started out in a lower/middle tier of competitors, but she’s shown extraordinary growth since the competition was narrowed to 12. She’s pretty and I think she has the most potential.

Melinda Doolittle is amazing; the most polished of the bunch. But I feel like her problem is that she’s already peaked. Melinda is just absolutely amazing—but where else is there left to go from here?

I love Blake. I think he’s the most creative and talented (as an overall musician) of the bunch. But unfortunately, this is a vocal competition.

Lakisha is going to be gone next week or the week after. She always looks unhappy. She’s also had 2-3 shaky performances. She has the potential to put out an amazing vocal performance but is just too inconsistent. Not as much of a rock as Melinda is.

Chris is going to be out soon too. Simon is right—his voice is too nasal.

Phil has a good voice but I’m sorry, he looks like a zombie. He might make it to the top 3, but he won’t win.

Overall, this has been a great season for American Idol. I think it has the most talented top 6 in a while, maybe the best top 6 out of all the competitions. In most of the other years, there were maybe 2 people who were *really* good and deserved to win. But this year, we have at least two who definitely deserve to win and possibly two others who might have been good enough to win in other years’ competitions.

Comments (1)

Swallowing my pride

One piece of advice my current boss gave me was to never chase titles. I think that’s good advice. I think there’s a lot of “title inflation” going around. But at the same time, it’s tough to not consider titles because they clearly indicates your place on the totem pole.

Out of college, I started out as QA Engineer (I probably skipped the Associate QA Engineer title because I had interned there). Then I became a Senior QA Engineer. It was nice having that “Senior” title. But when I wanted to become a programmer, I knew I would have to start at the bottom again. I lost the “Senior” part and became a Software Engineer. Now, after 2.5 years of being a Software Engineer, instead of progressing in a pure development role, I’m trying to transition into a Technical Consultant/Consulting Engineer role. And I’ll have to go back down to the bottom again. If I get this job at the company I’ve been interviewing with, I’ll be an Associate Technical Consultant.

I know it doesn’t matter. What matters is that I’m doing what I think is best for my career at a company that I like. I think it’s good for me to constantly be in positions where I have to prove myself. Those are the times when I learn the most. I think a lot of people too often allow their titles to define what they do (or more accurately, what they don’t do). At my current company, although I’m the most “junior” Software Engineer, I feel very proud of what I’ve accomplished here. In fact, I know I’ve added more value to this company with my work than some of the other, supposedly more “senior” engineers have. While that might cause some people to think they’re being undervalued or underappreciated, I think as long as I continue to work hard, my time will come. Someday I hope to be “Senior” or “VP” or “Chief” something. But maybe it won’t happen and maybe it doesn’t matter.

Comments (2)

What is the difference between an inner join and outer join?

This is another one of those stupid questions asked during technical interviews that don’t really give an indication of whether you are actually qualified for the job.

Inner join

Say you have one table of CUSTOMERS and one table of ORDERS. Each row in the ORDERS table has a reference (foreign key reference) to a customer id which represents what customer placed that order. If you want to run a query that lists the orders along with the names of the customers who ordered them (since a customer id number itself it pretty useless), you will want to execute a join query:

SELECT CUSTOMERS.NAME, ORDERS.NAME
FROM CUSTOMERS
INNER JOIN ORDERS
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID

Outer join

If for some reason, you wanted the query results to return all customer name regardless of whether they placed an order, you can use one of two types of OUTER JOINS, in this case, a LEFT JOIN:

SELECT CUSTOMERS.NAME, ORDERS.NAME
FROM CUSTOMERS
LEFT JOIN ORDERS
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID

Leave a Comment

What is Model-View-Controller?

One interview question that I’ve been asked repeatedly is “Describe the model-view-controller (MVC) pattern”. I guess that’s technically a demand, not a question.

Anyway, when you’re building software, if you really wanted to, you could put together in one place all the code that deals with 1) deciding what to show the user (View), 2) figuring out what to do with user input (Controller), and 3) doing what the application decided to do in step 2 and in the process, storing and retrieving necessary data (Model). But unless the software is really, really simple (only a little more than “hello world”-simple), trust me, you do not want to do that.

Why not? Because as the software’s codebase becomes larger and more complex, it is likely that you may want to reuse certain components. Like you may want to retrieve some set of data from a number of different places. The code is much more extendable and maintainable when you use MVC.

Typical flow is:
1) The view show the user something and give him/her a means to input/respond to that something
2) The controller figures out what to do with the user input and asks the model to do what it decided to do
3) The model does what the controller told it to do along with getting and modifying relevant data in the process, then passes resulting data to the controller
4) The controller passes the resulting data to the view
5) The view shows the user the results

Fortunately, in the Java world, there are many free open source frameworks that make writing Model-View-Controller applications pretty easy. At my current company, we use a combination of Struts (Controller layer), Tiles/JSP (View layer), Spring (Model layer – application logic), and Hibernate (Model layer – data abstraction). I’m not sure why we do that. Although we only use Spring Framework for its Inversion of Control container, it supports the whole MVC stack.

Next post, I will talk about Struts.

Comments (2)

Older Posts »