##strongER trec taking up large codebases

I have grown from a sysAdmin to a dev
I have grown from web and scripting pro into a java pro then c++ pro !
Next, I hope to grow my competence with large codebase.

I feel large codebase is the #1 diffentiator separating the wheat from the chaff — “casual” vs hardcore coders.

With a large codebase, I tend to focus on the parts I don’t understand, regardless that’s 20% or 80% of the code I need to read. I can learn to live with that ambiguity. I guess Rahul was good at that.

In a few cases, within 3M I was able to “take up” a sizable brown field codebase and become somewhat productive. As I told Kyle, I don’t need bottom-up in-depth knowledge to be competent.

In terms of count of successes taking up sizable brown-field codebase, I am a seasoned contractor, so I would score more points than a typical VP or an average old timer in a given system.

  • eg: Guardian — don’t belittle the challenge and complexity
  • eg: mvea c++ codebase — My changes were localized, but the ets ecosystem codebase was huge
  • eg: mvea pspc apportionment/allocation logic + price matching logic
  • eg: mtg comm (small green field), integrated into a huge brown field codebase
  • eg: StirtRisk personalization — I made it work and manager was impressed
  • eg: StirtRisk bug fixes on GUI
  • eg: Macq build system — many GTD challenges
  • eg: Moodles at NIE
  • eg: Panwest website contract job at end of 2016
  • ~~~ the obvious success stories
  • eg: AICE — huge stored proc + perl
  • eg: Quest app owner
  • eg: error memos
  • eg: RTS

Contract: unattractive to young developers

GregR convinced me that most of the young developers aren’t interested in Wall St contract jobs. I can’t remember the reasons but something like

In my experience the contractors I see are mostly above 40 or at least 35+. The younger guys (Nikhil..) tend to be part of a contract agency like Infosys.

The upshot — I have fewer strong competition. Most of the older guys are not so competitive in either IV or GTD on the job. In particular, their figure-things-out speed is slower.

##[15]types@Work2slow brain aging #campout

This is an important topic for the researchers. As laymen, I will just reflect on my personal experience — looki.

What kind of activity is considered “work”? I feel it’s the responsibility or commitment, obligation, consequences on users -> fear …

Most but not all the “work” is tiring. I suppose creative work can help keep the brain young.

  • IT — Learning a new tech in body-building mode doesn’t feel tiring to me, but how about to XR?
  • IT — A big chunk of everyday IT work (including troubleshooting) is partly creative and investigative. Can be brain-boosting.
  • Kids doing homework – can be tiring but at their age it won’t speed brain aging. How about adults?
— Avoid stressful, demanding jobs that require burning my candle on both ends.

Need to listen to the inside signals when working the long hours. When I work day and night on coding assignments, I was like my Dad and perhaps CSDoctor. I was driven by joy and burning pleasure, not pressure like in Stirt and GS. I feel my body knows if the pressure is positive or negative, pleasure or pain, so better listen to the signals and avoid aggravating the aging process.

Sudhir told me about encouraging environment vs fear… See blogpost on 5 external inputs

subOptimal $$valuable solutions#CSY

My friend Shanyou consistently holds a position like “I don’t need to find those better solutions (forget the “optimal”). If my solution is brute force or non-optimal, at least it works, so it will be good enough for many interviews and good enough for my coding drill. Many candidates can’t find even a brute force solution in the given time, so if I strengthen my capabilities to this level it’s valuable.

Admirable !

That’s inner strength — 定力
That’s much-needed focus
That’s undervalued realism
That’s celebration of every progress
That’s a pat on our own back

The all-or-nothing, single-minded pursuit of optimal solution can often wipe out my motivation, joy, satisfaction, self-esteem.

It’s a common and fatal de-motivation to tell ourselves (like XR … ) “There’s no value in pursuing non-optimal solution.” Well there ARE a few:

  1. pride and achievement from completion of a tough challenge
  2. ECT, speed
  3. syntax idioms
  4. self-mastery, internal locus of control, similar to my yoga practice
  5. absorbency — demonstrate to myself; self confidence in absorbency
  6. joy, self-satisfaction — see exactly what I want{cod`drill beside immediate IV #Rahul
  7. … Other blogs provide other perspectives

!! Many published solutions are non-optimal in O()
!! Most solutions out there are non-optimal in terms of concise implementation, even if matching the best solutions in big-O.

Some interviewers only care about big-O and don’t care about too many loops; Other interviews want an elegant, simple solution; The most extreme interviews (Indeed, FB?) score candidates on syntax and code quality too. Which one do you target? Realistically, I would take Shanyou’s target.

Q: your real goals, motivations for coding drill? Absorbency? Burning pleasure? Satisfaction (as Rahul puts it)? Maintaining a hobby?
So defocus can help. The focus on “optimal” creates negativity.

— Many non-optimal solutions are worthwhile.

  • Some of them offer insight into the structure, constraints… but may not offer enough insight to solve the problem
  • Some of them are non-optimal but optimal solutions to modified problems.
  • Some of them are non-optimal but break down the original problem into smaller, familiar problems. This process builds the xRef I need for thick->thin. The breakdown technique can be reusable.
  • Some of them offer reusable techniques
  • Some of them are non-optimal but very short and clever
  • Some of them (my homemade) are unique and innovative … worthwhile achievements.
  • Some of them are good enough for “2nd-tier” coding interviews

 

PIP@Macq: tough judge@%%design

If I were the judge, then Kevin’s solution may get rejected or rated mediocre.

I think the judgement can be unreasonably tough when the judge herself is a practitioner — consider Yang and Sundip Jangi.

On the other hand,

  • Yang liked my OO design in EOS
  • Sundip liked my personalization design

The outcome (PIP etc) doesn’t mean my work (i.e. output) is sub-standard. The outcome has many reasons and causes.

I need to be fair and impartial to myself. [[learned optimism]] uses the three P’s. One of them is Personal.

##%% predictionS @prob(PIP)=unreliable

  • [o] RTS — I estimated 20->30-40% risk but actually zero
  • [o] OC — I felt I was doing nothing for months (20% risk) but they offered me a transfer
  • [o] citi — I wasn’t productive (30% risk) but they extended my contract for 6M
  • [u] Macq — I felt I was decent (2% risk), but expectation was way too high
  • [u] Stirt – I felt I was moving up (2% risk), but headcount pressure came as surprise
  • [u] barclays — I did superb job (0% risk) but head count pressure came as surprise
  • [u] 95G — I did superb job (0% risk) but head count pressure came as surprise
  • [o=overestimate of prob(PIP or layoff)]
  • [u=underestimate]

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

##fully engaged+!ROTI still beats boredom

Every learning direction has naysayers, and virtually all learning efforts generates low ROTI. ROTI and strategic investment are holy grails, mirages or white elephants.

We can’t dismiss $ROTI but I think we really need to look beyond $ROTI — too elusive. As Mithun put it, java multithreading alone can fetch you highest salary.

Fully engaged for a few short months but without ROTI is actually not bad. It’s like satisfactory sex without simultaneous climax. I enjoyed the journey, without worrying about the destination.

I’m able to fully engaged for a few months, while my peers can’t!

I have blogposts on spare time usage. Tech learning (even the non-strategic topics) are among the most productive. There’s really nothing more worth learning.

  • — most of these are failed technology bets, but 10x better than not engaged (i.e. boredom)
  • 2012-2013 c# study
  • HFT-specific QQ topics
  • MSFM
  • 2011-2012 self-learning volatility
  • self-learning swing
  • MOM study
  • gemfire study
  • — less disappointing ROTI in terms of self-confidence, thick=>thin/zbs, mobility, broad-base
  • bond math, socket, FIX, data structure, algo, threading,
  • coding drill, including c++ language experiments
  • specific SDI and pure algo challenges

##specializations fac`same IV quizzes 20Y on#socket !! c++11

(tagline: the most churn-resistant specializations.)

Socket IV questions have remained unchanged for 20Y — Unmatched stability and churn-resistance, but not necessarily accumulating

  • Preservation of t-investment
  • Preservation of accumulation
  • Preservation of deep learning? Socket programming has modest depth.

Q: Beside the specialization of socket programming, are there other specializations that are dominated by the same old QQ questions 20 years on?

  • [S] classic data structures
  • [S] classic sort/search algorithms on int-array, char-array, list ..
  • [S] classic traversal algorithms on trees, general graphs
  • [s] classic recursive, DP, greedy algorithms beyond graphs
  • [S] pre-c++0x core-C++ (a specialization!) questions are largely unchanged. C++11 questions are rooted in the old knowledge base.. BUT most of the c++11 QQ topics will likely fall out of interview fashion
  • [s] cross-language concurrency primitives.
  • unix file/process/string/signal manipulation
  • unix shell scripting — low market value
  • [S] SQL — including join, index design … but seldom quizzed in depth nowadays
  • [S] regex — seldom quizzed, but often needed in coding
  • [S=classic, well-defined specialization]
  • [s=slightly less well-defined specialization]

Now the disqualified skills

  1. JGC + jvm tuning — high churn over 20Y
  2. TMP — new features introduced in c++11

##gains{Stirt job loss

immediately after I joined Macq, I realized I have traded up for a better job, better in every way.

  • gain: self-confidence that I can comfortably handle the ensuing financial impact on family
  • gain: self-confidence that I have survived again, albeit with a scar
  • gain: a protective scar — as of 2019 I’m still traumatized but slowly I’m healing from inside
  • gain: lesson learned the hard way — avoid FTE
  • $gain: compensation package more than covered my bench time but still I prefer the … something else instead of the compensation

denigrate%%intellectual strength #ChengShi

I have a real self-esteem problem as I tend to belittle my theoretical and low-level technical strength. CHENG, Shi was the first to point out “你就是比别人强”.

  • eg: my grasp of middle-school physics was #1 strongest across my entire school (a top Beijing middle school) but I often told myself that math was more valuable and more important
  • eg: my core-java and c++ knowledge (QQ++) is stronger than most candidates (largely due to absorbency++) but i often say that project GTD is more relevant. Actually, to a technical expert, knowledge is more important than GTD.
  • eg: I gave my dad an illustration — medical professor vs GP. The Professor has more knowledge but GP is more productive at treating “common” cases. Who is a more trusted expert?
  • How about pure algo? I’m rated “A-” stronger than most, but pure algo has far lower practical value than low-level or theoretical knowledge. Well, this skill is highly sought-after by many world-leading employers.
    • Q: Do you dismiss pure algo expertise as worthless?
  • How about quant expertise? Most of the math has limited and questionable practical value, though the quants are smart individuals.

Nowadays I routinely trivialize my academic strength/trec relative to my sister’s professional success. To be fair, I should say my success was more admirable if measured against an objective standard.

Q: do you feel any IQ-measured intelligence is overvalued?

Q: do you feel anything intellectual (including everything theoretical) is overvalued?

Q: do you feel entire engineering education is too theoretical and overvalued? This system has evolved for a century in all successful nations.

The merit-based immigration process focus on expertise. Teaching positions require expertise. When laymen know you are a professional they expect you to have expertise. What kind of knowledge? Not GTD but published body of jargon and “bookish” knowledge based on verifiable facts.

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

theoretical complexity!!guarantee4 relative-adv #STIRT

  • case: Stirt curve building, fixed income risk..
  • case: Qz technical complexities? But not theoretical, so I can’t read a book and then reason about it.
    • given more time, I will develop some in-depth understanding of Qz
  • case: code generator for python and excel add-on

I’m not so fast penetrating the cognitive barriers (built-up of local brain power), but theoretical complexity is still my relative advantage.

Somehow, all of these cases happened in Singapore, in perm roles! I guess as contractor I’m given relatively isolated, carved out, well-defined projects.

GS tech challenge !! beyond me

My GS technical challenge was tough but i conquered it convincingly! There were some technical challenges beyond me (such as the initial rule-engine rewrite project), but most technical challenges were within my grasp.

Somehow, over the years a negative self-image has overshadowed the positive evidence.

  • Everyone said I was technically good enough.
  • My mortgage solution code review were well-received. Mark then organized a “seminar” where I presented my mortgage solution to more than 10 guys.
  • Yang was tough but he liked my designs in errorMemos.
  • I grasped errorMemos code-base quickly, cleaned it up and were able to add new features quickly
  • I convinced many that I was a local technical expert in my team. Perhaps Chad was even stronger but that doesn’t change the above fact — consider Roger Federa.

unexpected longevity@FOSS

Conclusion — my tech-bets and investment in many FOSS technologies proved to be correct. In contrast, only a few of my tech bets on commercial softwares are correct — MSVS, Oracle, Sybase, Excel+VBA,

I didn’t want to spend too much effort analyzing the forces around FOSS, but to my surprise, those forces keep growing and evolving.

  • Eg: weblogic was once dominant, but left behind by Tomcat and Jboss
  • Eg: Microsoft has to contend with Linux, Java, Apache
  • Eg: Oracle has to keep developing OpenSolaris, and MySQL
  • Eg: IBM, Oracle … have to support Linux
  • Eg: SUN, HP-UX all lost the battle against Linux. SUN has no choice but OpenSolaris
  • Most of them have to face the stiff challenge by a single FOSS — GNU/Linux

Because a FOSS needs no revenue no payroll to stay alive, there’s no survival risk or financial uncertainty in a FOSS project. Therefore, a FOSS often has better longevity.

Some of the most influential, dominant, enduring and low-churn softwares are FOSS and are unlikely to change:

  1. linux, BSD-unix
  2. java and GCC
  3. python, perl, and most scripting languages
  4. most development tools in *nix
  5. many javascript frameworks
  6. many browsers

Q: what forces power the FOSS and provide the energy, momentum?
A: alpha-geeks who want to create a impact and legacy?

Apparently, you need just one (or a few) alpha-geek to create a formidable competitor to a software vendor’s army of developers.

tech screening passed(but still rejected): pat on your own back

Always remember that before you invested months of serious effort, you couldn’t pass the tech screening.

One of my fundamental principles — focus on tech screening and don’t worry about offer. Once I pass technical screening, it becomes a beauty contest or personality match. If interviewers don’t like a competent candidate for age, face, language, lackOfHumor, communication style (often related to culture, nationality and up-brining) …, then I will grin and say never mind. Sooner or later someone will like my personality.

They may say candidate is cocky, opinionated … There’s no right or wrong here. Another interviewer may not feel that way.

The average programmer doesn’t have an off-putting personality, definitely not in an interview, so for every 3 interviewers who don’t like him, there will be some interviewer out there who likes him.

 

## +ve keywords]%%annual appraisal

I really don’t want to care too much about manager’s comments. Those comments tend to hurt deeply. They often reflect the manager’s personal agenda, never a balanced/unbiased view. The keyword list is designed to counter some of the negative comments.

  • [zed, catcha] versatile, broad-based
  • [GS] ownership
  • [GS] client relationship
  • [GS, Chartered] attention to details
  • [GS] code quality. I was asked to present and publish
  • [GS, Mansion] technical strength
  • [GS, Barc] analytical
  • well-planned
  • [Barc, GS] knowledge sharing
  • [Barc, GS] personal sacrifices
  • [95G] architecture design
  • [Mac] good at team working across departments
  • [Mac] adaptive to new tech; fast learning

+! 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.

## retirement disposable time usage

See also my framework: Chore^Pleasure activities

  • exercise in the park everyday .. like grandma
  • reflective blogging — likely to be a big time-killer
  • reading as a pastime? GP said at his age, he still loves reading and has many good books at home, but has insufficient physical energy
  • sight-seeing, burning your cash reserve? Grandpa said he is physically unable to
  • — now the more productive endeavors:
  • volunteering for a worthy cause?
  • helping out as grandparents
  • ! … semi-retirement is clearly superior as I would have a real occupation with a commitment and a fixed work schedule

Grandpa pointed out that there are Actually-bigger factors than finding things to do

  1. cash flow
  2. health

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