Hacker News new | ask | show | jobs
by fiveo 5703 days ago
Thank you for your response and to share your experience as well. Greatly appreciate it. It would be great if I could have some stability in my career and yet still able to work on something else (be it RoR or LISP or something else).

<rant> I've been working in a few, of what people would call "software product", companies. The one that Joel mentioned a lot in his essay.

First of all, if I were in Silicon Valley, I wouldn't probably even think of Oracle. I would hone my CS skill so bad that I could hack my own compiler. Alas, I don't live there. Even if I do, I have an expiration date stamped on my head: good only for 10 years after graduation. Silicon Valley wants hot-shot, young, energetic, red-bull-drinker, all-nighters type of programmer. So if I can't be a "product manager" or "CTO" or management material by the time I'm 32-35 years old, time to get out from SV.

Product based company tend to be unstable in where I live. I also noticed this trend isn't particular to where I live, it's everywhere else too. When the product is not selling well, lay-off happens. The first to go are usually the QAs.

Once the QAs are gone, the next one to go are the "internal" tools developers: these are the ITs and the tool developers. The last one to go are the junior developers and weak performers. The ones who left must work super hard to prove that their worth of their salary.

Product based company is cool during their first 3 years. After that, it's all maintenance of legacy and hacked-up code. I don't know which one is worse: maintaining half-ass, hacked-up, badly designed product with tight-deadline (that usually leads to OTs) or writing PL/SQL or customizing Oracle modules.

Here's another problem: standards, scrum, xp. These are great things to have in a software product house for quality and longevity of the company. But at the same time, they are a double-edged sword.

Let me explain why: once the standards are in place, most people are replaceable. Take Scrum/XP for example. One of their important points is that we all should share knowledge (via Pair Programming, or something else).

They want to make the unknown to become lesser unknown or to be known. Once it is repeatable and known, you have no value anymore to the company. Intermediate becomes Senior, Junior becomes Intermediate, and you're being let-go and they will start to hire new people.

The choice is either to move up to management or not to do scrum/xp (which is equally horrific). Not doing scrum/xp would lead to bad result, bad quality, unhealthy working environment, and the need of a hero-like effort to fix some bugs.

I have seen my friends keep changing job within 2-3 years. That might be okay with them but not with me. I don't like to waste my time preparing for interviews, cleaning up my resume, every 2-3 years. I don't mind learning and improving myself, but not for the sake of that kind of cycle.

Here's another problem with software development: programming languages. Too freaking many of them. People have too many opinions. Some like LISP, some like Java, some swear by .NET, some would invent a company based on F#, some deal with Struts1/2, some would want PHP/Drupal/Wordpress. This leads to a very fragmented field.

I rarely see a company that is looking for the bare minimum (say, Java, or C#, or Ruby) but with X-years of experience. I often see companies looking for specifics (must know Java, Struts, XML, XQuery, XPath, XSLT with 7 years of experience).

I thought about doing Rails and iPhone for a while until a couple days ago where it hits me that you can actually outsource iPhone app development. Those 2 guys that were being interviewed by Mixergy did exactly that.

I also see a few consulting offers lingering in a local job-board looking for an iPhone/Android developer. But most of them are unstable due to the nature of consulting. I don't think they're willing to pay the premium ($100-$125) anyway.

Some consultants might be able to charge premium during the first few years of a new technology (like iPhone), but they need to find the next big-thing again every 2 years.

The point is this: low entry barrier sucks.

When I look at Oracle, the barrier to enter is a bit higher (or so it seems) than being a developer and not too many people want to do the job. It's a niche. Just like what one of the HN-ers mentioned about how he did quite well with his freelancing/consulting gig (he's doing PHP, Drupal, and Wordpress) </rant>

1 comments

So, if I understand you correctly, you'd like a 9-to-5 job where you won't be forced into management and be able to keep your valuable skills to yourself while you work on more interesting things after hours?

I think I am currently in that situation. It's not all it's cracked up to be. First off, your time on nights and weekends is not as long or of the same quality as 9 to 5. You don't have the same energy level or focus.

As for the job, no job is immune to change. If you have skills that are valuable to your employer, you'll find that either your employer will overwhelm you with work and/or they'll seek to have your co-workers gain those skills to distribute the workload. This kind of stuff will make you more and more unhappy with your job and this will surprisingly make it harder to work on your side projects outside of work. If you put all your eggs in one basket by anchoring yourself to the Oracle stack, when you go to look for another job (because you're tired of your current job), prospective employers (and especially recruiters) will see mostly Oracle stuff and you'll be pigeonholed into jobs that are similar to your current job.

Don't make perceived stability the central focus of your job search (unless you have others that depend on you financially). Choose jobs that will serve you better with respect to your career goals. That may mean changing jobs more often than you'd like (but not necessarily so), but you'll get to where you want to be sooner.

I don't mind occasional OT (with compensation). Fact is, in where I live, companies can get away with lots of OT and not compensating them. I don't mind to go to management position late in my career. Not now, but maybe later.

Interesting things can have different means. To me, Google architecture (GFS, BigTable, MapReduce) are all interesting, but I have no desire to learn them for the sake of learning. Rails is interesting in the sense that I'd like to learn it, make a website using it, and take a poke at running a small business.

I'm also interested at the business of iPhone apps. I'd rather pay someone else to write the app than writing it myself. I prefer to focus on the operational side: making sure we have a website with good SEO and graphics design. Promote the iPhone apps and start making money (even with a low profitability margin).

But at the same time, I'm not a big gambler or a risk taker. Steady fixed income and experimental on the side is my sweet spot.

In short, I'd like to be able to run my own side business, be it iPhone apps or selling stuff online. That excites me more vs toying with various programming languages or solving hard algorithm problems. I prefer to talk with people than with machines. I don't mind to do occasional programming cause I like to build stuff. I just don't want them to dominate my whole life. I prefer not to be 40 or 50 and still hacking C, UNIX, Java, C# or Ruby for a living.