Dapeng Li

Hungry, foolish and passionate – yet another software developer.

I guess “conflicts” is the word

one comment

Looking outside the window of the bus, I saw familiar streets.

June 4th, 2012.

Today is the 5-year anniversary of Northern Lights Technology Development, the company I work for; today is also my 5-year anniversary of employment at Northern Lights, I was there when the company started.

I had been thinking about writing something for this day, however, my drafts in the past week all end up being tossed. I’m a little surprised that I don’t quite know what I should say.

So I took this bus, which is the same bus I took five years ago on my first day to work at Northern Lights (actually I don’t take this bus very often because it’s always stuck in traffic, but it might be helpful today). I thought maybe I can find something that reminds me of the old days so it will give me some inspirations.

It turns out I didn’t find what I was looking for in my short trip, but later I found out why I’m struggling with my writing on this:

I have conflicts.

Developer, Security and Fear

At the beginning of my career as a software developer I thought Microsoft was a company so awesome that developers chose it as their tribe or gang that you’ll be safe if you stay loyal and follow closely.

I was a Microsoft fan boy back then, I thought .NET was the coolest development platform. It might because I only knew .NET, and my employers chose to follow Microsoft closely, so that was a good match.

However, at that moment, I always had the feeling of fear.

I fear that I would be abandoned – there’s a lot of stuff in Microsoft’s platform, and they change rapidly. I tried to learn as much as I can and follow new things as quickly as I can, but I still fear that what I’ve learned will be useless in the near future.

The other part of the fear is about unknown things and to admit that there are things I don’t know. It seems stupid to me now because if you ask the question reversely – “you think you know all things?”, “obviously not!”, but at that moment when I read or heard something I don’t know I tend to have this fear that it will cost me heavily because I don’t know it.

Looking backward and thinking about it:

I was looking for security, while fear was my drive to learn new things.

Then I kept on like that for several years…

Until something happened.

Actually, a series of things.

Developer, Opportunity and Passion

It starts with some books I read (especially The Passionate Programmer), buzz I noticed, some people I found interesting, things I heard, quality of some products I was impressed by, some things people do, and personal experiment.

I realized that Microsoft was just a leader in some market, and its goal is building tools to make programming easier so more people can use them without much training (or even understand what they’re doing).

There are so-called trainings and conferences in the Microsoft world, but the more I attend the more I found people treat them like parties rather than an opportunity to learn new things and meet birds of the same feather; or they treat attending those conferences as a way to feel good about themselves that they’re technologiests and as if their job is to do something important.

Yeah, I know I’m opinionated and I’m OK with that.

I found that, all those years the time I’ve been spending on specific Microsoft technologies was putting all my eggs into the basket of someone else. Occasionally when I compared my understanding of software to other people (similar age, working on non-.NET) I realized I know so few and so specific that my knowledge is barely useful outside the tooling of Microsoft.

It turns out there are much better choices to be a developer, try open source.

When you start facing your fear, conquering it is not that hard.

I can understand why Microsoft developers don’t want to get out of their comfort zone and learn something entirely new, for example, like Rails. There are a lot of hops to jump and it takes time. First you’d better get your hands on Mac OS X or Linux, and you should be familiar with the Bash shell, and sure understanding regular expressions can be very helpful and as a start you will know what sed and awk are about, and you’ll likely be interested in mastering a ubiquitous text editor like Vim. Those are the basics, after that you’ll learn Ruby and friends, Git, and finally Rails. Actually that’s the path I took, not in a one-shot start-to-finish fashion but rather like an upward spiral – learn a little bit, do it and revisit it.

After peeking out the iron curtain of Microsoft, I happen to find this side of world more interesting, people more awesome and there are more things I want to learn and do. What’s more, what I especially like about the open source community is “good can rise to the top”, some people call it meritocracy.

Another interesting thing I found about people here is, they are excited about what they’re doing (and they usually do it insanely good), so instead of fear about breaking the old habits, they are constantly looking for new ways of doing things and doing them better. They’re not afraid of saying “I don’t know this”, what they’ll say after that is “but I would like to learn it”.

I don’t think confidence as built on something you know, instead, I think it’s built on something you don’t know. You are confident because you know what you’ve already know will be obsolete, but you’re always ready and looking forward to learning something even better.

So in summary…

People are looking for opportunity here, and they’re driven by passion.

Opportunity and Security

I should emphasize that I don’t think opportunity is better than security in every sense, security is totally important and it’s the foundation of thinking about opportunity.

Actually the motto we have in Northern Lights (and our larger organization) is “Opportunity and Security”, which really captures the whole spectrum of employees’ needs.

When the basic needs of a person are met, some people lean towards security while some others prefer opportunity.

The way I look at the choice between opportunity and security is about your target market, where you set the expectation of yourself and whom you want to compete with.

I think right now I’m not really looking for security, or something comforts me; I’m looking for opportunity, something fulfills me.

Here are my conflicts

Get back to the title, “What are my conflicts?”.

Since day one, I had witnessed the company grew from about 10 people in the corner of a shared office to a ~150 people company occupying the whole floor of the building. I would like to congratulate my colleagues for their hard work, they deserve it and they have my utmost respect.

But I’m not really in the mood of celebration. I kind of know what I want and I know I’m suck at it, instead of celebrating I’d rather be hurrying up.

I like this company, I grow with it, I feel it like my second home and we share special moments. Some of the best people I’ve worked with are here.

But I have to admit, the path to my personal goal of being a better developer doesn’t quite overlap with the path where the company is going; and rockstars are hard to find, especially when you’re not near where they play. So the relationship is going to end at some point, which is sad.

When I see people around me being content (even complacent), working for paycheck rather than the pursuit of being better at what they’re doing, I feel sorry for them, to some extent it bothers me actually.

But I know I was there before, not everyone likes change and people want to settle. Although I don’t like it in this particular case, I know it’s important so that things still work.

I care about what I work on as much as whom I work with. I would like to work with awesome people who are much better than me, and work on things I’m proud of.

But again, I know I’m not qualified for what I want yet. So I’m in a kind of awkward position that I want to break up with something old, in the mean time I haven’t got the new thing yet; the result is I have to go back the the old thing, but can’t enjoy it (or even stand it some times) because I’ve made a choice and I can’t go back.

So I have conflicts. Or is it life?

Rolling back to the moment in the morning, when I was in the bus, looking for something that can remind me of the old days.

What was I looking for?

Was I looking for fear?

No wonder why I couldn’t find it.

I really want to finish this post on June 4th, so my time is limited. If I had more time I would reconsider the structure and make the post shorter. Thanks for listening to my ramblings.

Written by Dapeng

June 4th, 2012 at 11:57 pm

Posted in Life,Programming

Tagged with

  • Peternl

    i put my comment by accident under one of your previous blogposts