y employers prefers younger workers, a revisit

My neighbour Julius (of Indonesia) said

* younger employees mean lower cost
* more energy
* can map out a 10Y career plan for him

Below are my own observations and reading.

The younger guys often have more spare time available. Granted, many choose to spend it outside work, but a small percentage (30%?) of the ambitious, dedicated or hard-working individuals would *regularly* and voluntarily spend some of that at work.

For managerial roles, I feel a 30-something can be very effective. The relative short experience may not mean a lot.

For technical roles, the long experience of a 40-something is even less valuable. My own experience is most convincing. At 25 I was more formidable than many of my older colleagues. I was sharp,
fast-learning, self-driven, knowledgeable, possibly more experienced than them in a given technology.


labels: cope^pain^threat^GTD

I would say choose one among

gzCope, gzPain, gzThreat, GTD

In rare cases, use simultaneous categories.

Also, the relevant posts in the pripri/open blogs, I feel better move to this blog and mark them private. Easier to manage in one place.

GTD is more specific than Cope. In a sense, all GTD posts are also part of Cope but actually Cope is more about job market, moving up, choosing specializations.

oldest programmer in a team, briefly

I’m unafraid of being the oldest programmer in a team, for example in China or Singapore, as long as I’m competent. If my foundation is strong and I know the local system well, then I will be up to the challenge. It takes an amount of effort to gain the local system knowledge though. Consider GS, Citi, OC, Stirt and CFM.

More than half the times, contractors aren’t required to  gain that much local system knowledge.

Actually, Can be fun and stimulating to work with young programmers. Keeps me young. My experience might add unique value, if it’s relevant.

I can think of many Wall St consultants in this category.

##some of the worst technology churns#le2tanko


Here’s my expanded list of “worst” tech domains in terms of technology churn. Nothing but personal bias. For every IT professional, it’s his or her personal responsibility to identify these domains, and perhaps avoid investing (too much) into them.

Windowing GUI technologies – X-windows, PowerBuilder, Delphi, Borland c++, …
Web client GUI development — including Angular, Google Web Toolkit…
Windows administration – there seem to be many new utilities added every 5 years, replacing the old
scripting? My favorite — Perl — is now falling out of favor. Powershell seems to challenge vbscript.
ORM — too many new products. Hope to see a clear winner
Javascript libraries like node.js, angular, jquery, GWT
messaging — too many new products, spurred by web2.0

anything to do with big data —
* In-memory DB — too many new products

* Map reduce — I hope hadoop remains the standard

Web app development in general —
* java web development including struts
* Microsoft web development
* PHP? I hope this is a bit more stable, but there are definitely new packages gaining popularity

–churn-resistant domains
Oracle DBA
C++ key libraries — STL, boost
Unix admin (relative to Windows admin)
core java ie. at the core layer
SQL complex queries

What else do you think can be added?

[14]technology churn: c#/c++/java #letter2many

(Sharing my thoughts again)

I have invested in building up c/c++, java and c# skills over the last 15 years. On a scale of 1 to 100%, what are the stability/shell-life or “churn-resistance” of each tech skill? By “churn”, i mean value-retention i.e. how much market value would my current skill retain over 10 years on the job market? By default current skill loses value over time. My perl skill is heavily devalued (by the merciless force of job market) because perl was far more needed 10 years ago. I also specialized in DomainNameSystem, and in Apache server administration. Though they are still used everywhere (80% of web sites?) behind the scene, there’s no job to get based on these skills — these system simply works without any skillful management. I specialized in mysql DBA too, but except some web shops mysql is not used in big companies where I find decent salary to support my kids and the mortgage.

In a nutshell, Perl and these other technologies didn’t suffer “churn”, but they suffered loss of “appetite” i.e. loss of demand.

Back to the “technology churn” question. C# suffers technology churn. The C# skills we accumulate tend to lose value when new features are added to replaced the old. I would say dotnet remoting, winforms and linq-to-sql are some of the once-hot technologies that have since fell out of favor. Overall, I give c# a low score of 50%.

On the other extreme I give C a score of 100%. I don’t know any “new” skill demanded by C programmer employers. I feel the language and the libraries have endured the test of time for 20 to 30 years. Your investment in C language lasts forever. Incidentally, SQL is another low-churn language, but let’s focus on c#/c++/java.

I give C++ a score of 90%. Multiple-inheritance is the only Churn feature I can identify. Template is arguably another Churn feature — extremely powerful and complex but not needed by employers. STL was the last major skill that we must acquire to get jobs. After that, we have smart pointers but they seem to be adopted by many not all employers. All other Boost of ACE libraries enjoyed much lower industry adoption rate. Many job specs ask for Boost expertise, but beyond shared_ptr, I don’t see another Boost library consistently featured in job interviews. In the core language, until c++11 no new syntax was added. Contrast c#.

I give java a score of 70%. I still rely on my old core java skills for job interviews — OO design (+patterns), threading, collections, generics, JDBC. There’s a lot of new development beyond the core language layer, but so far I didn’t have to learn a lot of spring/hibernate/testing tools to get decent java jobs. There is a lot of new stuff in the web-app space. As a web app language, Java competes with fast-moving (churning) technologies like ASP.net, ROR, PHP …, all of which churn out new stuff every year, replacing the old.

For me, one recent focus (among many) is C#. Most interesting jobs I see demand WPF. This is high-churn — WPF replaced winforms which replaced COM/ActiveX (which replaced MFC?)… I hope to focus on the core subset of WPF technologies, hopefully low-churn. Now what is the core subset? In a typical GUI tool kit, a lot of look-and-feel and usability “features” are superstructures while a small subset of the toolkit forms the core infrastructure. I feel the items below are in the core subset. This list sounds like a lot, but is actually a tiny subset of the WPF technology stack.
– MVVM (separation of concern),
– data binding,
– threading
– asynchronous event handling,
– dependency property
– property change notification,
– routed events, command infrastructure
– code-behind, xaml compilation,
– runtime data flow – analysis, debugging etc

An illuminating comparison to WPF is java swing. Low-churn, very stable. It looks dated, but it gets the job done. Most usability features are supported (though WPF offers undoubtedly nicer look and feel), making swing a Capable contender for virtually all GUI projects I have seen. When I go for swing interviews, I feel the core skills in demand remain unchanged. Due to the low-churn, your swing skills don’t lose value, but swing does lose demand. Nevertheless I see a healthy, sustained level of demand for swing developers, perhaps accounting for 15% to 30% of the GUI jobs in finance. Outside finance, wpf or swing are seldom used IMO.

skill devaluation in IT^finance

I experienced/witnessed a few waves of skill devaluation in IT sector, but I feel financial skill is different.

– web master, apache admin
– microsoft certified, cisco certified
– unix admin winnt admin, exchange admin
– perl hackers
– ASP, cold fusion
– network security professionals
– structs

I think these skills either fell out of fashion or devalued to commodity skill. I feel any young or old techie can pick up each of these in a few months. In-depth knowledge is usually not required on the job.

Now compare with

– complex SQL against lots of tables
– socket
– time-series database
– low latency
– market data
– quant library
– bond math, option greeks, IRS pricing
– monte carlo
– stress test, scenario test
– VaR
– trade booking
– PnL

finance tech is non-mainstream in techland (elite)

Update – Si-Valley also need elites – small number of expert developers.

Financial (esp. trading) IT feels like an elite sector – small number of specialists
– with multi-skilled track record
– familiar with rare, specialized tools — JNI, KDB, FIX, tibrv, sockets, sybase
– Also, Many mainstream tools used in finance IT are used to an advanced level — threading, memory, SQL tuning, large complex SQL

If you compare the track record and skills of a finance IT guy with a “mainstream” tech MNC consultant, the finance guy probably appears too specialized.

That’s one psychological resistance facing a strong techie contemplating a move into finance. It appears risky to move from mainstream into a specialized field.

#1 evidence managers seek when keeping/terminating a consultant

update — Shuo (and others) suggests that boss relationship overrides all other performance metrics including productivity, but I feel Wall St is slightly different in terms of Salary and time-to-market.  If you get things done on time it really helps boss’s promotion.

I think boss relationship means the non-objective, non-measurable, non-quantitative evaluations of a consultant.
Q1: What do managers look at when keeping/terminating a consultant?
A: Note Some consultants are hired on prod support budget, but majority of consultants are hired on project budgets, so let’s focus on the latter. The key question in this case is

Q2: Can this guy implement required *functionalities* on time, so business can use them on time? Note it’s all about *business-value* [1]. Requires a, b, g but not c, d, f below

a) Familiar with current codebase in the system. You need to spend enough time in a given system. Every site is different. No portable knowledge.
b) practical java/sql/unix know-how. also eclipse, javascript, cvs, html practical know-how.
c) code quality — code smells like “copy-paste”. Managers don’t care about this.
d) test coverage
f) advanced knowledge of java/sql/threading/GC/collections …. — completely irrelevant to Q2 above. Managers don’t care about this.
g) code readability, if team lead worries about taking it over personally

[1] When managers ask (or present) progress updates, they prefers high level terms, so they could estimate 40% (or whatever) of the required “business value” are now achieved. The higher you hit the management rank, the more you need to communicate in terms of business value, time left, time spent, additional manpower needed …

When a critical project needs to be done on time, many managers prefer consultants because consultants don’t take fake sick leaves or “family leaves”, don’t go to trainings, and are generally experienced.

Managers generally feel FTE are here to stay. Consultants and FTE are equally mobile job hoppers, but consultants are more subject to budget cuts. This factor has a profound influence. I have seen or experienced budget cuts affecting consultants in Verizon, GS, and other companies.

young, productive developers #GS

Regarding my young GS colleague … He learns the production codebase very fast, so

* he can understand, in-depth, how and where all those complicated logic is implemented in production system
* he can understand what users mean, which is usually condensed in very terse emails, or quick phone calls
* he can quickly come up with quick solutions
* he knows what test scenarios are extremely unlikely so we need not handle them or test them
* he is faster navigating the code base from java to perl/shell scripts, to stored proc and big queries, to autosys and javascript, where business logic lives.

(I was weaker on all these aspects, for a long time.)

He’s more confident fixing existing codebase than architecting a rewrite. Limited experience. In this aspect, employer would see limited value in him.