##longevity rating: java is outlier ] language_war

Among languages, java is way ahead of the pack. We need to treat java as exceptional, outlier. With that, c++ looks rather solid and decent. Shall we merge this table into my pastTechBet.xlsx sheet? Partially merged, but no need to update the sheet.

longevity rating #bias tech skill mkt share prominence domains
80 % java robust 2000’s
40 % py rising 2000’s
50 % c/c++ fell 1980’s HFT, gaming,
telco,embedded, AI/ML
20 % c#/dotnet fell 2010’s
30% php ? 2000’s
10% perl FELL 2000’s automation
40% javascript rising 2000’s
30 % RDBMS/sql fell 1990’s
70 % socket robust 1990’s probably
90% TCP/IP dominant 1970’s
20 % MOM robust
90 % http stack dominant 2000’s
90 % unix “tradition” dominant beyond memory

tsn: what if I fail due2capabilities #Okao

Yet another revisit. See also post on dare2fail.

My intern David Okao asked “What if the west coast workplaces are too demanding? Can you cope?” I replied

  • As an adventurer, I don’t mind the risk… robust, resilient confidence
  • As an adventurer, I see myself as adaptable, a survivor
  • I may have my secret weapons
  • I may find my strengths such as domain knowledge, data analysis, trouble-shooting, efficient design, math(yes)

I then went over a similar discussion about MLP with Ashish, when I said —

  • If similar to Macq, I put up a good fight but still fail due to personal “capabilities”, I ought to feel positive about the whole experience.
  • I’m good at the job-hunting game so no real worries.

## delights]tsn: engaged,leverage

Sugg — I think we can try and develop a powerful habit to focus on the delights in our memory. Such a perception would help us focus on the delights in the current “struggle”.

The delight should NOT be related to anything “strategic “(mirage) My expectation was invariably way too high in terms of strategic value, leverage and ROTI, therefore underwhelming. These expectations were crushed by job market demand fluctuations.

In terms of engagement … my expectation was slight high.

Against this backdrop, there have been little delights, but stigma/respect (not salary!) was too huge as a factor and has overshadowed those little delights. For a perspective, please look at the spreadsheet “predict next 3-5Y job satisfaction”

I chose a python job at Macq .. engaged for a few months, to my delight.

I chose the c++ job at RTS .. engaged for 6 months, to my delight.

  • Reason: interviews — traction in interviews and also in GTD and zbs
  • Reason: interviews — socket QQ and linux system QQ .. was in-demand
  • Reason: QQ discussions with colleagues .. visible progress

Both job decisions produced good/superior leverage over 3-5Y.

I chose a c# job … engaged for a year and then disengaged, shorter than expected. Leverage was good.

I chose a Quant dev job … engaged for a year and never disengaged. Leverage was underwhelming.

I chose a c++ large scale eq OMS job … engaged for a few months. Leverage is unknown

tsn: esteem hazards^boosts

With the exception of c++, socket(mkt data), py(devops), c#, MSVS … looks like majority of ventures out of my tech sweet spot java/SQL/scripting… presents esteem-hazards (like health hazards) but dismal prospect in terms of self-esteem boost.

high-risk, low-return ventures, in terms of self-esteem?

Looking deeper, the esteem-hazard is really nothing but one mgr’s assessment. For my recent painful jobs, I continue to dismiss/ignore the possible boost to self-esteem —

  • I conquered some of my biggest technology fears — MSVS; c++ crash management; c++ large code navigation.. Other people may not agree, but my own experience proves that these challenges are harder than high-level dev (like web/scripting..). My fears about these c++ challenges were more deep-rooted .
  • OC — I built real mileage in c#. I even proved myself stronger than some c# veterans when I created a simple web server to dump log files for everyday troubleshooting.
  • Macq — I invented elegant solutions for splunk even though boss wasn’t impressed
  • .. many more
  • see more pointers in https://bintanvictor.wordpress.com/wp-admin/post.php?post=27139&action=edit

##[19]low-churn,easy domains4career{50

I am always looking for low-churn, accumulating skillset that I can rely on after age 50, without strenuous effort. Such effort is possibly harmful for the brain.

My chosen domains are not white hot domains attracting the young bright kids. I always hope to pick up these skills and try to build them into my “portfolio” of skill assets. If 3 out of 5 decline, I still have the other assets to provide meaningful employment till 70. I have more listed in my spreadsheets “techBets” + “marketableDomains”

  • 😦 #1 example Quant dev — turns out to be too competitive. Low churn but I need strenuous effort even now.. see quant≠sure good for aging dev (also ruthless march@technology)
  • 🙂 mkt data — feels better
  • 🙂 bond math — feels even better
  • VaR math?
  • FIX?
  • algo trading — I didn’t choose it because too competitive
  • — technical skills
  • 🙂 python — worked out well
  • 😦 c# — abandoned
  • 😦 swing — abandoned
  • 😦 MOM — fell out of fashion

 

##conquests since GS #j,c++..

Until I left GS, I didn’t know how it feels to “conquer” a sizable, lucrative tech skill. Such a tech skill represents a specific job market with supply and demand.

  • perl? not sizable not lucrative 😦 Until 2011, Perl was my only core competency 😦 How lucky am I now !
  • coreJava QQ (as defined on WallSt) .. was my first conquest. After this conquest I haven been trying to replicate my success story, while many peers stayed in one firm in order to move up.
  • SQL? Many interview topics not explored, but now SQL is no longer a sizable job market:(
  • MOM? Not sizable
  • sockets? not so sizable, not yet conquered
  • bond math … was a small conquest
  • c++ QQ .. was my 2nd conquest, as experienced in 2017 onward
  • CIV .. was my 3rd conquest. Growing bigger, though I only rate myself B among west coast candidates.

eg@traction[def2] in GTD^IV #Sunil

Sunil is not the only one who tried but failed to break into java. Sunil was motivated by the huge java job market. I believe he had opportunities to work on (probably small) java projects and gained confidence, but that’s really the easy part. That GTD experience was completely insufficient to crack java interviews. He needs IV traction.

  • Zhurong also tried java
  • [g] Venkat actually got a java job in SCB but didn’t like it. I feel he was lacking GTD traction
  • [g] XR and the Iranian java guy had some c# projects at work but didn’t gain traction.
  • CSY had a lot to tell me about breaking into java.
  • [gi] CSY and Deepak CM both had java projects at work but no traction
  • [i=IV traction]
  • [g=GTD traction]

IV/QQ traction — I experienced better IV traction in c# than c++. I think it’s because half my c++ interviews were HFT shops.

GTD traction — I had good GTD traction with javascript, php …, much better than c++. My C# GTD traction was also better than c++. C++ is probably the hardest language in terms of GTD. As explained to Kyle, my friend Ashish experienced tremendous GTD traction but can he crack the interviews? Hiring teams can’t access your GTD but they can ask tough QQ questions.

##[19] am competent at..as a professional thanks2tsn

Background — When I listen to a professional musician or comedian from some unfamiliar country, I wonder if they are actually good. Similarly, when I consult a doctor or dentist, I wonder if they are qualified.

“Self-respecting programmer” — Yi Hai’s motivation.

I have been tested and proven on the big stage i.e. U.S. tech interviews + GTD

  • [p t w] java/c++/c#
  • [w] algo
  • [w] coding test
  • [t] SQL
  • [t] socket
  • [t] unix power user
  • swing
  • [p] web app developer across php, javascript, java
  • py, perl (and shell/javascript?) — are these professional games?
  • [t = long tradition over 20Y]
  • [w = worldwide contest]
  • [p = a well-known standard profession]

low-level^high-level expertise

See also my blogpost on wrapper^low-level API

Compare to laymen on the street, I have accumulated fairly deep, specific and demonstrable non-local expertise in two lucrative field i.e. software dev + finance

  • concurrency details (theory++) in real languages
  • dStruct choices and effective combinations
  • dStruct implementation details in java/c++/pyhton
  • SQL joins and tuning
  • sockets? no deep insight but my expertise beats most peers
  • Most standard algo problems are familiar to me
  • memory models, memory layout.. beneath c++ and java
  • drv pricing math, VaR statistics, bond math. My expertise goes beyond the degree

These trophies are won based on TSN, interviews and personal time investment … not automatically

— Let me focus on low-level vs high-level
Most of the dev expertise domains are low-level, consequently very specific — you either know it or don’t. I can even teach in these subjects. The more low-level, the rarer is the expertise. The laymen developers have a vague idea of the low-level details, for many reasons.

High-level understanding is often more useful (than low-level, theoretical QQ knowledge) in projects, but in job interviews, low-level knowledge is differentiator.

Practically all (98%) high-end java/c++ interviews use low-level questions as differentiator. I excluded the start-ups as I’m unfamiliar with them… Eg: Quoine.

In my dev (not system architect) interviews, they rarely asked high-level stuff like spring rationale, design patterns…
I tend to believe these questions can’t /separate the crop from the chaff/

The finance dnlg  also serves as differentiator among developers. The most specific sub-domains are quant math, the “architecture” and some of the jargon.

C++ is more low-level than java; java is more low-level than python…

Q: Paradoxically, C and assembly are even more low-level but not more valuable?
%%A: Some C knowledge is highly valued. For example, kernel knowledge is high-value and mostly at the level of C, compiler, assembly, and hardware
%%A: assembly expertise in device drivers or embedded is not really relevant to HFT, and too far from the money

MOM is not low-level and seldom asked.

sg19: risks@tsn

This time my TSN attitude is not driven by fear of stagnation, but a free-spirited, fun-seeking desire to explore.

My past TSN failures (and some successes) are the best guide. Given the multiple TSN failures, my expectation is rather low. However, the pain of stigma , confidence loss, impact on family can still be very real. That’s why I wrote in my blog that the safest job is back office java+SQL+scripting with low-calibre colleagues.

[17]predict 2-5Y job satisfaction #OC surprise

Q: did the learning actually help with my job interviews (am not salary-focused like Mithun)? This is a key feedback.
A: Yes to some extent

The “table” is subject to frequent change, so I keep it in recoll (was a google sheet). Here some notes:

  • stigma/appreciation/respect(zbs) — turns to be the #1 key to job satisfaction, but appreciation is tricky. Bonus can break it, performance review can break it, other things can break it too. I often felt like “damaged goods”.
    • In Mac and Stirt (and OC too), managers considered me good enough for transfer to other teams.
    • retrospective can be more negative than dissatisfaction then-n-there, for Macq, Stirt
  • salary + other income — turns out to be insignificant when I have inner confidence and self-esteem. It is still one of the most important factors. When it’s very high, it overrides almost everything else.
  • distractions — do hurt my O2 for GTD, zbs development and self-learning
  • traction — positive feedback, includes zbs growth, instrumentation, self confidence, IV, catching up or surpassing peers
  • strategic orgro/stagnation — turns out to be a white elephant.
  • Many of the top factors are “perceptions” rather than “hardships”
    • perceptions — self-esteem@comp; strategic tsn; engaging… #best eg@perception — peer comparison
    • hardships — mkt depth (job pool size); workload; family time; commute; salary

! OC job was actually not bad if there were some appreciation from boss. However, the new, strategic specialization didn’t bring enough satisfaction.

! Verizon job experience was rather positive. I was on the rise, in my prime. It all ended when I moved to GS. I should have quit GS earlier. Citi was the start of another prime period. Prime mostly in terms of self-confidence, self-esteem …

My prediction — to have a satisfying (not necessarily strategic) job next time,

  • I need the #1 factor — appreciation.
  • A well-paid java job will mostly likely make me feel good.
  • LearningSomethingNew and engagement will NOT be a deciding factor (Recall c#/py experiences). I will still make time to learn something, just like in 95G

 

## strategic TSN among%%abandoned

Q: name the most strategic trySomethingNew domains that I have since abandoned, given up, quit. How about the new plan to take on coding drills as a lifelong hobby?

Don’t spend too much time, because the answers are nothing new even though this is a decent question.

  1. — ranked by surprise
  2. algo trading? actually very few roles spread across a number of firms
  3. c#
  4. drv pricing quant
  5. real time risk as in GS, Qz and Athena
  6. RDBMS tuning
  7. MOM, async, message-driven design knowhow
  8. distributed cache like Coherence and Gemfire
  9. Solaris sys admin and DBA
  10. perl, SQL, Unix/Linux power-user knowledge? No longer a top 10 focus

—-

  • python? Not yet abandoned
  • web dev for dotcom? I did this for years then abandoned it. Many of the tech skills are still relevant like sessions, java thread safety, long-running jobs

[19]if I had stayed ] java

I think every tsn experience and proposal has some “buts”, so does it mean we should stop trying?

No. If I had stayed within java/sql/perl then I would have been worse off —

  • fewer job opportunities, less broadened technical base
  • slightly more worry about job security
  • more worry about churn
  • more worry about outsourcing
  • no differentiation from millions of java guys
  • left behind by some of the alpha geeks who branch out and establish new strongholds.
    • My technical mind is the BROAD-n-deep, curious explorer type so it is stifled if confined to java
  • sql and perl both falling out of fashion

But ….

  • possibly more competent in terms of figure-things-out relative to team peers
  • possibly fewer stigmas and more respect
  • ^^ These factors depend mostly on localSys knowledge
  • not so much stress, so much painful struggle in the beginning
  • possibly an architect role, provided I stay long and invest heavily in localSys

Was leverage good on my multiple tsn attempts after GS? reasonable leverage in some attempts.

##[19]if I were2re-select%%tsn bets #tbudget=30m

##[17] checklist@tsn #engaging provides a checklist but here’s a FRESH look, which may not be so in-depth, balanced, and comprehensive.

Q: Hypothetically, knowing what I know now, beside c++ and python, which trySomethingNew bets would I have chosen in 2010, after GS?

  1. mkt data and sockets
  2. forex, equities, options, IRS — I like the well-defined body of dnlg as entry-barrier. I learned it fast 🙂
  3. trading engine dev including pricing, OMS, connectivity
  4. risk analytics?
  5. devops?
  6. big data including hadoop, cloud etc?
  7. — not-so-great
  8. c# — heavy investment, a lot of legwork but insufficient ROTI
  9. MOM and Gemfire — shrinking demand
  10. swing? Fun but very poor job market
  11. quantDev? extremely disappointing job market
  12. HFT? entry barrier too high

low realized roti..cos I moved on quickly#MOM,c#

See the meaning of move-on

Analogy — (Trevor Tang) picking a major in medicine is a wrong bet if you are into technology, though medicine is a great major.

  • MOM roti? low but could go higher if I pursue an architect career in non-eq trading. The underlying tech is very flexible and mature and a winning bet
  • SQL tuning + complex query — roti can go higher if I go into big data or data analysis domains. The underlying tech is powerful, mature, adaptable and not dead. I think it will see a renaissance.
  • swing roti? very low but could be higher if I purpose a GUI career in dotnet. There is a lot of highly inheritable, portable skill even if swing goes out
  • drv pricing roti? can go higher if I stick to quant-dev career and move only within similar roles. However, if you move from volatility to yield curve to exotics, the accu became very thin

%%geek profile cf 200x era, thanks2tsn

Until my early 30’s I was determined to stick to perl, php, javascript, mysql, http [2] … the lighter, more modern technologies and avoided [1] the traditional enterprise technologies like java/c++/c#/SQL/MOM/Corba . As a result, my rating in the “body-building contest” was rather low.

Like assembly programming, I thought the “hard” (hardware-friendly) languages were giving way to easier, “productivity” languages in the Internet era. Who would care about a few microsec? Wrong…. The harder languages still dominate high-end jobs.

Analogy?

* An electronics engineering graduate stuck in a small, unsuccessful wafer fab
* An uneducated pretty girl unable to speak well, dress well.

Today (2017) my resume features java/c++/py + algo trading, quant, latency … and I have some accumulated insight on core c++/c#, SQL, sockets, connectivity, ..

[1] See also fear@large codebase
[2] To my surprise, some of these lighter technologies became enterprise —

  1. linux
  2. python
  3. javascript GUI
  4. http intranet apps

Forced2branch out@ java by age70@@

LotusNotes, FoxPro, Php, Perl-CGI programmers … had to branch out and take up new aggressive, colonizing technologies. Their massive T-investment (mostly GTD) in the old technologies has lost value.

Q: will I need to branch out of java till age 65@@

%%A: I don’t know.

In 2012 I thought I had to embrace the new technology of c# but now in 2019 I feel java dominance has grown, rather than eclipsed by c#

If I have to branch out to take up another technology, that colonizer will NOT be c++ or c#. I won’t speculate on other challengers.

[19] 2 reasons Y I held on to c++ NOT c#

In both cases, I faced steep /uphill/ in terms of GTD-traction, engagement, sustained focus, smaller-than-expected job market [1] .. but why I held on to c++ but abandoned c#?

[1] actually c# was easier than c++ in GTD-traction, entry barrier, opacity

Reason: GUI — 95% of the c# jobs I saw were GUI but GUI is not something I decided to take on. The server-side c# job market has remained extremely small.

Reason: in 2015 after Qz, I made the conscious decision to refocus on c++. I then gained some traction in GTD and IV, enough to get into RTS. By then, it was very natural for me to hold on to c++.

— minor reasons

Reason: west coast coding tests — python and c/c++ are popular

##taking on c# ] 2012 #j4..

See post on j4 stick2c++: Score big{losing@quant/c#

This review is mostly for future planning, not nostalgia

  • — Q: what were the motivation/j4 in 2012?
  • c# was #1 on front end in banks + some buy-side… Now it is losing mind share to web GUI. Very little heard on WPF.
    • lousy technology bet
  • c# was challenging java in a small number of banks … Now it has taken too long to mount that challenge
  • After the “conquest” of java (QQ and GTD), I felt c# was fairly close to Java and a “low-hanging big fruit” compared to c++ and python
  • I witnessed a few systems with java back-end and c# front-end and a demand for versatile developers….Now there are very few.
  • On Wall St I saw more c# than c++ jobs … now unsure. Python and java have since gained market share from c# and c++
  • — Q: why I stopped pushing on the c# front? See 2 reasons y I stayed with c++NOT c#
  • I don’t like the Windows platform. My focus has shifted away. No single big reason.
  • The absolute amount of energy (and time) I had to spend on both GTD and QQ were precious. The “focus shift” means a huge write-off, and disappointing ROTI, comparable to the MSFM write-off.
  • — Q: how was my …. –>  planning and execution?
  • I feel 80% successful. I feel in my c# first 12M I gained more confidence (5/10) than my java first 12M
  • experience (in GTD and … also IV) grew from 0 to 5/10 in windows __serverside__ dev and scripting, c# language
  • attending interviews remotely… Worked to some extent
  • taking on a wide range of c# GTD tasks … worked, including WCF, Excel, WindowsService, vbscript integration, …
  • chipping away at the biggest GTD rock namely MSVS .. worked. Now more confidence
  • — intangible gains { c# endeavor , a fresh look as of 2019. NO…. No need to consolidate with the above
  • self-image boost in absorbency, sustained focus and deep-dive.
  • Precious engagement for 12M. Over the last 20Y, some of the best months were in those 12M.
  • i’m no long afraid of a decline of java in the face of a Microsoft challenge. Right now, java is challenged mostly by python and javascript
  • removed most of my fear of joining a windows dev team like Ashish’s
  • insight into the evolution and cross pollination among the big3 languages
  • leverage? not bad
  • market depth? good except the high-end usually requires WPF
  • MSVS was a scary monster. After my c# experience I became familiar with this monster.

##elusive^achievable gains{tsn

When I try-something-new, i aim at multiple target ‘gains’ as in a pyramid

  1. strategic value, long-term orgro is the most elusive, comparable to HuKun taking his brother as role model. Biggest success I can think of is c++ (thanks to lots of IV). More strategic is my rental property investment
  2. salary hike is one of the least likely [CVA]
  3. I hope to open up new job markets at similar pay. I enjoy a wider range of opportunities and being in-demand
    .. but what if the new “market” is unsuitable?
  4. I hope to broaden my capability-base incl dnlg.
  5. I don’t want all my eggs in one basket… hedging
    .. but the broad base may not be so relevant
  6. I hope to build my self-confidence about learning
    .. but sometimes not much self-confidence boost
  7. I hope to keep my mind young, active and engaged, rather than doing the same boring job over 5Y. i hope to avoid wasting my precious spare time – burn/rot
  8. (Not really about tsn) i also want to strengthen my position, extend my lead on the body-building race. This effort takes huge amount of energy

case study: swing — rare engagement + orgro, thick->thin but abandoned !

case study: c# — i made sacrifices for deep-dive, and in return experienced rare engagement + orgro + thick->thin. I have since given up the direction, as c# is not so relevant to my current direction.

## any unexpected success@tsn@@

## past vindicative specializations is more comprehensive, but in this blogpost I want to start on a clean slate and answer the question —

Q: I have explored far and wide… for new domains, new challenges, so are there any unexpected successes of try-something-new?

skill discovered proven over %%strength 1-5 val 4 GTD val4IV
unix shell + unix admin 2000 Catcha 2Y 3 4 1
! perl 2000 Catcha 3Y 4 #many years ago 2 1
LAMP+js 2000 1Y 2 0 0
! python #popularity no surprise 1Y 2 #xp@Mac 2 3
! socket #and tools 2017 never 1 #lowLevel 3 if relevant 2
!! threading concept+java impl 2010 4Y 5 #theoretical 0 5
! x-lang collections 2010 5Y 4 #lowLevel+theoretical 1 5
! x-lang OO 2010 NA 4 #lowLevel 0 4
white board coding [1] 2011 2Y 2 @WallSt 0 3
c++instrumentation/build tools
! bond math 2010 Citi 1Y 2 1 if relevant 2
option math 2011 Barc 1Y 3 2 if relevant 1
fin jargon 2010 4Y #mvea 3 #know what’s relevant 2 2
finSys arch #abstract 2010 2Y 2 3 3

[1] Am more comfortable on whiteboard than other candidates.

Explanation marks means Surprise

SQL expertise(+tuning)as competitive advantage: losing mkt val

Opening example — I have received very few selective/tough SQL interview questions. The last interview with non-trivial SQL is Lazada.

If you want to rely on SQL/RDBMS skill as a competitive advantage, you will be disappointed.

I think many teams still use SQL, but use it lightly. Simple queries, simple stored proc, small tables, no tuning required. Therefore, interview questions are dumbing down…

I believe I over-invested in SQL. The last job that required any non-trivial SQL was 95G…

strategic value of MOM]tech evolution  is about MOM, but similar things can be said about SQL and RDBMS.

This is a cautionary tail in favor of TrySomethingNew. If my friend Victoria stays within the familiar domain of SQL/Perl/PHP/Apache, then her skillset would slowly lose market value.

Don’t forget — TSN can have low ROTI. We have to accept that possibility

engaging[def1] #marketableDomainXp.xls

Let’s keep this in blog , not spreadsheets.

“Engaged/engaging” means level of mental engagement, including traction, level of interest and positive feedback loop. This depends on many things such as trySomethingNewStrategic. In retrospect engagement may not mean much, but it does affect my satisfaction then and there, which is important according to Theodore Rubin.

Engagement is a major determinant of medium-term job satisfaction. Because of it I walked away from CVA, Barx and other higher, easier java jobs.

This factor is notoriously n inherently elusive, unstable (strategic). Engagement is impermanent, then-and-there, like joy and sadness. I once found wafer fab spacesuit fashionable! Big data, wpf, quant, swing, FIX, kdb, … were once attractive to me. What’s engaging used to be stategic trySomethingNew, but look at other blog posts… It’s hard to identify an endeavor as long-term engaging.

When I was into option math, I didn’t want any low latency or connectivity projects.

I think soon I could lose interest in mkt data or latency.

However, even in a 5Y java/c#/python job, I believe i can find engaging challenges.

Q: On marketable-tech-xp.xlsx, which factors on row 2 help keep my mind engaged?
– Some form of complexity is always helpful. There are some on Row 2.
– Poor “market value” always decimates my “engagement”. There are some protective factors on Row 2.

The job_satisfaction_predictor spreadsheet compares past jobs in terms of engagement.

 

 

## past vindicative specializations

see also — For the “domains nlg” (first 5 rows), marketable_domain_xp spreadsheet is more comprehensive but not necessarily more updated.

Quant and other Unsuccessful diversifications aren’t the focus here, but are listed below the table.

 scales 0-5 mkt value given my direction robust
demand
entry barrier accu achieved %%expertise
among peers@WS
tsn: determination
+sacrifice
I was delighted wage ROI val4IV
mktData #socket  4 growing not everyone has xp  2~3 2 #few worked@socket-level 2  5 some 2
bondMath  2 robust math is not natural
to most dev
 2  3 1 #spare time++  3 some 2
orderBook, OMS, FIX #Eq/FX  3-4 robust medium 1 #cod`IV 1 3 #CVA sacrificed  3 none
forex #sg 2 robust medium 1 1 0 #spare time 1 none
c++  5 ok not
growing
higher than I thought  5 #critical mass  3 5 #huge sacrifice  2 minimal
coding drill  5 Growing high 4 #XR disagrees  3 2 #spare time  5 none 4
python  4~3 growing low  2  3 #unknown 1  4 none
bash scripting + unix #devops  2 robust medium  4  3 0  3 none 1
threading xLang 5 growing high  4 #critical mass  5 0 4 some 5
(abstract?) xLang collection internals 5 unexpected strength the deeper the harder  4 #critical mass  4 0 4 some 5
RDBMS 3 shrinking low  4 #critical mass  4 0 #spare time 1 #under-whelming none
[00-06] web dev 1 sustained high growth low  5 #critical mass  3 0 3 none

–algo practice for IV
^ good amount of accumulation
^ my confidence is boosted esp. in c++
^ I’m rising to the challenge of coding test growing popular

–Python
^ boosts my IV confidence
▼no critical mass yet
▼low traction
▼don’t know my expertise relative to peers

–option domain knowledge including BS:
▼ much lower demand than bond math

— C# and XAML
^ Microsoft is a major force
▼not aligned to my current direction

–MSVS:
^ was my Achilles heel, now slowly gaining confidence

–C++ GTD and IV
^ I made real progress in 1) GTD and 2) IV but not during Mac days — wrong job nature
^ deepens my java understanding
▼ those high paying domains (HFT, quant) are too hard to break into

–MOM architecture, products…
▼falling out of favor
▼ not as widespread as I perceived. Probably used in finance and legacy systems

–javascript, php, mysql
▼not aligned to my direction

–gemfire
▼ market too fragmented

–EJB, Spring, Hibernate
▼falling out of favor

[18]comfort zone: java/SQL/perl

If you play safe and stay within the comfort zone of java/SQL/Perl, then don’t under-estimate the negative consequences such as

  • reactive rather than proactive
  • doldrums — see post on “y re-enter c++”
  • no deepening your understanding — a zbs
  • remain afraid and /uninitiated/ with the low-level details below JVM
  • uninitiated on latency tuning buzzwords — shallow QQ topics
  • speed coding test — unable to use python

##[18] questionable tsn bets: past+future

  • boost beyond shared_ptr
  • functional programming
  • JMS?
  • weblogic
  • sendmail, makefile,
    • In contrast better bets at that time include apache, freeBSD, dns
  • option math?
  • quant dev
  • —— above are questionable bets
  • —— a subset of vindicated bets i.e. paying off above minimum expectation. See also ## past vindicative specializations
  • sockets!
  • bash + scripting
  • bond math
  • py
  • FIX
  • c++
    • c++ multi-file build, gdb, valgrind
    • c++11 — recently it started to pay off
    • pthreads — recently it started to pay off
    • template details — recently it started to pay off
  • —— next 10Y

learning nothing Strategic@a job@@ Normal !

Suppose after I stay on a job for 2 years, (beside lots of local system knowledge) I now only have some “familiar, un-fresh” tech topics to learn, like 2 of the following

  • Java — serialization, Eclipse, ..
  • Linux commands
  • Some domain jargons
  • Perl, or python
  • SQL
  • git
  • A bit of math # always turns me on!

… but none of the following

  1. algos
  2. low latency
  3. quant
  4. .. other hot domains but none guarantees higher income

Q: Would I lose interest and feel bored? Note 80% of my peers are in this situation. They are coping fine!
A: I think I will, but need to see the reality. Looking at my past “strategic” learning, I think many are similar to my TriTech direction — my naive preference for opamps design in my 1997 third year IA at TriTech — Nothing strategic after all.

Hoping for a job with something engaging and challenging is realistic and reasonable. Hoping for “strategic” is naive. For many years, I was driven by this TriTech motivation which inevitably made me feel I’m in the wrong job. (Only Barclays job felt “strategic” for 6 months.) Now looking back, ## past vindicative specializations shows a small number of vindicative examples. I feel that’s 30%, so most of my trySomethingNew or other specializations didn’t prove strategic.

However, Quartz is different. Learning something familiar but generic like java is still better than learning Quartz. Quartz is a killer.

##[18]realistic 2-10Y career planning guidelines

Background: not easy to have a solid plan that survives more than 3Y. Instead of a detailed plan, I will try to manage using a few guidelines.

  • –top 5 “guidelines” [1]
  • respect/appreciation/appraisal(esp. by manager) — PIP/stigma/trauma/damagagedGood. Let’s accept: may not be easy to get
  • Singapore — much fewer choices. Better consider market-depth^elite domain
  • Expertise accu or sustained focus — holy grail
  • ——– secondary:
  • family time — how2get more family time #a top3 priority4Sg job
  • trySomethingNew — may/not be justifiable
    • stagnation — could be the norm
    • engaging — keep yourself engaged, challenged, learning, despite the stagnation
  • interviews — Let’s accept : extremely important to me but much harder in Singapore. Even in the U.S. I may need to cut down.
  • distractions — Let’s accept
  • Peer pressures — Let’s accept.
  • Entry-barrier — could be too high for me in the popular domains like algo trading
  • non-lead dev role — Let’s embrace. Don’t feel you must move out or move up. Hands-on coding is gr8 for me. Feel good about it
  • Shrinking Choices — many employers implicitly prefer younger programmers
  • Entry-barrier — could be too low for some young guys — the popular domains will have many young guys breaking in
  • Churn — Avoid

[1] I didn’t say “priorities”

 

c++^bigData^crypto #SG

Workload (Figure-out-faster-than, team caliber, manager expectation …) are far more important, so let’s not spend too much time comparing :

  • –c++
  • see blog .. my view on java
  • –jxee/bigData
  • 🙂 many “commodity” jobs but often paying rather well.
  • 😦 i feel as a “specialization” this is low quality — high churn, low depth, low complexity,
  • 🙂 but I might be able to leverage it for future positions. I think my full-time python, full-time SQL, web app dev experiences provided the same leverage, albeit no-depth
  • –crypo —
  • 🙂 many small shops capable of paying
  • 😦 low chance to deep dnlg

9 income sacrifices: often2avoid stagnation

Update — relevant for my hibernation decision.

I demonstrated a habit of giving up higher income, in order to keep learning something of strategic value ( or managing mgr expectation )

  • before it’s “too late” — i.e. before the opportunity disappears
  • The prospect of blood-letting (wasted cycles) is too painful.
  • I felt my peers were moving ahead of me, while I stood still.
%sacrifice higher income forgone lower income to gain … ROI realized intangible ROI strategic?
2002 50% Zed ->SCS presales none brave
2003 40% SCS ->self-employ entre none brave
2004 70% Sperion ->self-employ entre none brave
2007 10% est. UBS/Headstrong GS branding unsure
20012 7% Barc #Swing 150k picked OC 100% c#, quant dev learned enough to crack some c#IV confidence no:(
2015 10% est. sign-on increment Macq lower mgr expectation year1 bonus as a self-image boost #short-lived no:(
2017 10%+ Pimco C++/FI offer 100+/H c2c picked RTS 100% c++ more c++ offers yes  [1]
2017 10% java jobs picked RTS c++ more c++ offers ensued yes 🙂
2018 10% java jobs picked mvea c++ c++ job market cracked c++ skill is harder, rarer conviction
2018 15% CVA picked mvea low-latency high-volume eq trading big OMS framework job satisfaction yes 🙂 [3]
—-  —- —————
2013 not a job [2] UChicago formal math training Master’s degree, branded uni confidence in math; self-confidence no:(

[1] In 2017, I felt my c++ had not reached the critical mass despite my long self-study. A power drill was required to break the stone wall. The RTS full time job turned out to be that power drill.
[2] For the UChicago motivation, there’s a separate blog post.
[3] no regret taking this lower offer!

trySomethingNew : avoid perm jobs@@

There’s a high risk of under-performing. In a perm job, that invites warning, perf improvement, bonus fear — all forms of stigma-phobias.

With contract jobs, I can operate without the fear of stigma!

Here, “under-performing” mostly refers to “figure-things-out slower than team peers”, which (usually but) doesn’t always attracts those stigmas. Ultimately it’s the manager’s assessment.

Stirt/Quartz – For example, my figure-things-out speed was not slower than my peers and not slower than Barcap 2nd half, but still i got the stigma.

Citi — for an opposite example, my figure-things-out speed was rather slow but I didn’t get the stigma. I got renewed once.

#1 career SAFETY enhancer@past5Y #muscleBuild`IV

See also I can professionally qualify as …

From 2010 to 2015, “IV muscle building” was my #1 career safety enhancer. That’s why I had so much “joy”. That’s where I invested so much time and money.

  • MSFM to open “new market” or at least cement my position on the quant-dev job market
    • SQL is, intriguingly, similar
  • c++, c#, py
  • swing– as a distinct job market segment

Now in 2017 I don’t see it as my #1 career safety enhancer. In retrospect, I find it not very simple to reach a conclusion.

One factor — I think core java skill demand turned out to be extremely robust (whereas c# and c++11 were underwhelming)

One factor — traditional pricing quant is shrinking as a job category

One factor — For both high end c++ and quant domains, bar is much higher than anticipated.

##(IncInc)most effective 10Y direction to INCrease INCome

Reality! We better embrace reality, not ignore it.

  • new skills like py, hadoop, data science? I see low chance of increasing my income, but I could be wrong
  • some specialist role, perhaps
    • risk/pricing analytics? questionable premium
    • low-latency algo trading in c++/java? unlikely … Get Real
  • hands-on architect (different from specialist role)
  • (perhaps maintenance mode) app owner, and grow in a big company?
    • must be a high value application
  • high-end contractor (probably@ibanks)? most practical
  • coding drill? practical 🙂
  • portable instrumentation zbs
  • [p] portable GTD skills (eg instrumentation)
  • [p] improve localSys learning process to speed up get-over-the-hump
  • [m] algo practice
  • socket QQ/GTD? not directly increasing my income but prevent income decline
  • [m] low level QQ topics in ARM, linux, STL, concurrency
  • [m=muscle building for iv]
  • [p=can help me take on a high-paying lead dev role. If too tough, then we can still count on these items to help improve our stress profile; self-esteem; job security; bonus… ]

+! trySomethingNew] sg, what could I have(possibly)got

See also past vindicative specializations

  • I would still do my MSFM
  • I would still fail to get into algo trading or quant dev — too few jobs and extremely high bar
  • I would likely fail to get into leadership roles. I was considered for leadership roles at 1 to 3 companies

However,

  • I could possibly have focused on a specialization such as risk system + some analytics
  • would probably have joined citi, barc, baml, UBS, SC or .. in sg
  • probably java or swing or connectivity
  • would Not have achieved the c#/py/c++ ZBS growth
  • would Not have the skills to get this ICE raw mkt data job or the other c++ job offers.
  • no guarantee to become a manager or app owner. There could be many old timers in the team.
  • possibly less stress and pain. Lower chance of performance stress (#1 biggest stressor), because my GTD/KPI would be higher due to my java/SQL zbs.

[17]orgro^unconnecteDiversify: tech xx ROTI

Update — Is the xx fortified with job IV success? Yes to some extent.

Background – my learning capacity is NOT unlimited. In terms of QQ and ZZ (see post on tough topics with low leverage), many technical subjects require substantial amount of /laser energy/, not a few weeks of cram — remember FIX, tibrv and focus+engagement2dive into a tech topic#Ashish. With limited resources, we have to economize and plan long term with vision, instead of shooting in all directions.

Actually, at the time, c#+java was a common combination, and FIX, tibrv … were all considered orgro to some extent.

Example – my time spent on XAML now looks not organic growth, so the effort is likely wasted. So is Swing…

Similarly, I always keep a distance from the new web stuff — spring, javascript, mobile apps, cloud, big data …

However, on the other extreme, staying in my familiar zone of java/SQL/perl/Linux is not strategic. I feel stagnant and left behind by those who branch out (see https://bintanvictor.wordpress.com/2017/02/22/skill-deependiversifystack-up/). More seriously, I feel my GTD capabilities are possibly reducing as I age, so I feel a need to find new “cheese station”.

My Initial learning curves were steeper and exciting — cpp, c#, SQL.

Since 2008, this has felt like a fundamental balancing act in my career.

Unlike most of my peers, I enjoy (rather than hate) learning new things. My learning capacity is 7/10 or 8/10 but I don’t enjoy staying in one area too long.

How about data science? I feel it’s kind of organic based on my pricing knowledge and math training. Also it could become a research/teaching career.

I have a habit of “touch and go”. Perhaps more appropriately, “touch, deep dive and go”. I deep dived on 10 to 20 topic and decided to move on: (ranked by significance)

  • sockets
  • linux kernel
  • classic algorithms for IV #2D/recur
  • py/perl
  • bond math, forex
  • black Scholes and option dnlg
  • pthreads
  • VisualStudio
  • FIX
  • c#, WCF
  • Excel, VBA
  • xaml
  • swing
  • in-mem DB #gemfire
  • ION
  • functional programming
  • java threading and java core language
  • SQL joins and tuning, stored proc

Following such a habit I could spread out too thin.

##xp@career diversification

  • biz wing — in addition to my tech wing. I learned a bit but not enough. Not strategic
  • quant? diversify. The on-the-job learning was effective and helped me with subsequent interviews, but further push (UChicago) are not bearing fruits
  • data science? diversify
  • big data java jobs? stack-up
  • —-tsn hits good mkt depth, or hits poor leverage
  • 😦 quant dev, real time risk
  • 😦 hft
  • 🙂 py
  • 🙂 mkt data
  • 🙂 socket
  • 🙂 c#
  • 🙂 windows dev
  • —-tsn within the tech space, where I have proven strengths
  • py? bearing fruits. Confidence.
  • unix -> web dev -> java? extremely successful
  • [10 Citi] c++? slowly turning positive
  • [12 Barc] swing? positive experience
  • [12] dotnet? reasonable
  • [14] real time risk, in-house framework (Quartz)? disillusioned
  • [17] raw mktData
  • [18] high-volume, low-latency equity Order Management
  • [18] FIX? diversify

##respect,$,familyTime,spareTime..all benefit from强项

If I take a 强项 job, I kind of sacrifice my muscle building and TrySomethingNew, so I better get good money …, but now I feel I don’t have to.

A typical 强项 job would use (the most complete list)

  • math, analytics
  • high volume data processing
  • unix wizardry
  • heavy text processing
  • heavy SQL
  • heavy scripting
  • some http programming
  • data analysis, perhaps using SQL, scripting etc
  • some combo of java/c++/c#/swing
  • threading

personal advantages: trying west coast

See also https://1330152open.wordpress.com/2016/06/27/stickyusa-sgp-5-advantages-each-personal-view-610/

  1. Advantage: no kids with me. Easier to adjust
  2. Advantage: no house yet. Easier to move
  3. strength: algo interviews
  4. strength: I could be good at optimizing, research, scalability — natural not artificial complexities
  5. strength: attention to details — more valued in product companies than on Wall St
  6. Advantage: web technology is probably easier than c++
  7. strength: I’m a calculated risk taker

no IV muscle growth]sg..really@@

Common reason: no IV to give feedback on any “muscle growth”

Common reason: Most if not ALL of the growth areas have since become non-strategic, due to the limited job market

  • c# —  Actually my c# had tremendous and fast growth, no slower than my 2010-2012 peak period, but there was no IV to verify it
  • py — was growing fast in Mac, but no full time python jobs
  • quant — I went through a hell of growth in quant-dev, but gave up
  • c++ tool knowledge — was growing in Mac but not a QQ topic at all.
  • c++ optimization for HFT — I read quite a bit but can’t pass the interviews 😦 so I gave up

what in addition to java^dotnet

Hi JunLi

A few days ago I said something like “enterprises application development usually choose between java and dotnet”. A few qualifications

* Where stored procedures are required (or clearly superior), then obviously java and dotnet must give way to the stored procedure language, such as pl/sql and Transact-SQL.

* Where shell/perl/python scripts are required (or clearly superior), then obviously java and dotnet must give way. However, most enterprise applications use less scripting languages than compiled languages.

* C++ is probably the third biggest language in enterprise app development. I have personally witnessed the important role of C++ in financial and telecom systems. I believe that in both financial and telecom, C++ offers somewhat better performance.

* Python was adopted by JPMC, BAML and Macquarie.

* PHP is increasingly chosen by enterprises such as facebook, yahoo, NBC-Universal and MTV.

By the way, software vendors and system programmers favor C more than java and dotnet. (JVM and the dotnet compilers were probably written in C), but our focus in this discussion is “enterprise app development” rather than platform/library/tool development.