my”native”language: C #feel-good

Context: speaking to interviewers, colleagues, I like to say my native programming language is … C

See also post on CivilEngineers.

C is the first language I studied in-depth, in 1994. C was also the first professional programming language in my very first job

I’m proud of my association with C because

  • My dad is a specialist on 墨子. C is like 孔子. C never completely fell out of fashion for system programmers.
  • C is the most important language to Unix system programming (kernel, sockets, standard library…). As of 2019, system programing knowledge is growing progressively more important to my job interviews.
  • threading and data structure are among the top 5 most important and evergreen interview topics, both “born” in C.
    • Most thread implementations are related to system libraries.
    • all important data structures are low level and implemented in C more efficiently than other languages
  • In terms of depth — I think C, c++, java, c# have the most depth. I am slowly building my grasp of this depth. I think the accumulation is good.
  • In terms of of churn and accu — C is among the best. See [17] j^c++^c# churn/stability…
  • In terms of it’s relation to other languages — C is the #1 most important, as Confucius is in Chinese culture.
  • In terms of longevity — C is #1, the grand-daddy in the short history of programming languages. (C++ might come 2nd.) In contrast, all the popular languages will probably come and go — java, python, c#, javascript
Advertisements

##af 70 ..spend%%spare time meaningfully

Holy grail — Long-term sustainable (hopefully intrinsic) motivation + modest level of expertise, with reliable (albeit low) income and (a bit of) social value.

I need a purpose, a goal to work towards… Without it, the absence of a … job would create a void. Depression, lack of purpose, loss of energy. None of the below is easily achievable or easily available. Whichever I choose, need to work towards it.

  • Research would be ideal. I have proven aptitude in theoretical domains ..
  • xp: I think the RTS/NYSE work has more meaning as it impacts more users.
  • xp: devops effort has proven value to the local team
  • I might consider joining a start-up, which provides employment and learning opportunity for younger workers (perhaps in their 50’s?)
  • Teach (online) — Chinese/English, with emphasis on writing and vocab
  • Teach (online) — programming? threading, data struct, algo
  • Teach — statistical data analysis, If not outdated..
  • Teach — enterprise app design, If not outdated? Too competitive. They may not take in an old programmer.
  • Teach — financial math? After 70?
    • ▼this domain is too competitive and entry barrier too high. A lot of effort to cross it but demand is low.
    • ▼Limited practical value. more specialized, but growing demand.
    • ▼I feel I need interaction with people.
  • Two-way translation service, but I prefer interactions.
  • Chinese medicine?

Tim (RTS), a friend in his 50’s gave 3 points

  1. earn a salary to help kids pay student loan
  2. sight seeing world wide — costs a lot
  3. volunteering

##controversial decisions #home,imm,retire..#YJL

Hi Junli,

You don’t need to reply. This is my periodic review of “everything in my life”.

I have recently implemented a few controversial decisions about my career, investment, family..

(As an example, the biggest is moving back to U.S. alone and starting the green card process.)

I make major decisions carefully and slowly (unless decisiveness needed), but an observer may say I’m not a good decision maker and point out my track record. Actually I don’t remember anyone pointed them out, not even my family members. The person who point a finger at my “unwise” decisions is the “judge” in my head…

Here are some of those controversial decisions

  • I will not give up Singapore citizenship, and I will retire in Singapore, relying on the Singapore government for my retirement. Singapore system is much more caring and efficient than China or U.S. systems.
  • I plan to work till 70 or older, perhaps for a token salary. I will keep up my interview skills.
  • I have stayed away from most of the new technologies — javascript, mobile apps, big data, social media, noSQL, block-chain … Instead, I have embraced the shrinking domain of c++
  • I feel my relationship and communication skills are not my strengths so through a series of trials-and-errors I have decided to stick to a technical career.
  • I’m staying in Bayonne, planning to buy my first home here. The schools are just above average.
  • I have always preferred home locations that doesn’t need a car.
  • At age 44 I decided to leave my family in Singapore and come to the U.S. to start the GC process

c++^java..how relevant ] 20Y@@

See [17] j^c++^c# churn/stability…

C++ has survived more than one wave of technology churn. It has lost market share time and time again, but hasn’t /bowed out/. I feel SQL, Unix and shell-scripting are similar survivors.

C++ is by far the most difficult languages to use and learn. (You can learn it in 6 months but likely very superficial.) Yet many companies still pick it instead of java, python, ruby — sign of strength.

C is low-level. C++ usage can be equally low-level, but c++ is more complicated than C.

[18]top 4 IV(!! GTD)domains 2 provide 20Y job security

See also

Let’s ignore zbs or GTD or biz domains like mktData/risk here …

  • –roughly ranked by value-to-me
  • [c s] java? resilient in the face of c# and dynamic languages. At least 10Y relevance.
  • [c s] c++? resilient in the face of java. Time-honored like SQL
  • [c] abstract algorithm and data structures, comp science problem solving
  • [c n] tcp/udp optimization + other hardware/kernel/compiler optimizations
  • ……….No more [c]
  • py + shell scripting? no [c] rating since depth unappreciated
  • Linux and windows? at least 10Y growth, but no [c]
  • [s] SQL? resilient in the face of noSQL, but no [c]
  • bond math?
  • [n s] FIX? At least 10Y relevance
  • [c=high complexity in IV; shelf-life; depth appreciated …]
  • [n=niche, but resilient]
  • [s=survived serious challenges]

semi-retirement jobs:Plan B #if !! U.S.

I had blogged about this before, such as the blogger-pripri post on “many long term career options”

Hongzhi asked what if you can’t go to the US.

* Some Singapore companies simply keep their older staff since they still can do the job, and the cost of layoff is too high.
* Support and maintenance tech roles
* Some kind of managerial role ? I guess I am mediocre but could possibly do it, but i feel hands-on work is easier and safer.
* Teach in a Poly or private school ? possibly not my strength
* Run some small business such as Kindergarten with wife

##teaching the privileged to get ahead@@

It’s often easier, more lucrative to focus on the affluent consumers, but consider “value”.

Example — trading techniques. This kinda teaching doesn’t really have much social value, except .. risk reduction? Zero-sum game … you help some win, so other investors must lose.

Example — coach some brainy kids get into gifted classes. This is gaming the competitive “system”. Actually the poor kids need your help more.

Example — coach table tennis kids win competitions. Arguably you help improve the table tennis game, but how much social value is there? Mostly you are helping those few individual kids get-ahead

Many other teaching subjects do have social value

  • languages, writing
  • tech, math, science
  • programming
  • health care
  • financial literacy
  • arts

EarlyRetireExtreme: learning as pastime !! mainstay

The ERE author enjoys learning practical skills as a hobby. In fact, his learning programs could be more than a hobby, since he has no full time job.

However, I am very different human being from him. I feel very few such learning programs can the mainstay during my semi- or full retirement. Why?

  • I need to work towards some level of commitment, and a daily routine.
  • I need to make some contribution and be paid for it
  • I prefer interaction with other people

af 70,non-profit OK; voluntary work no

After my prime years, when I can only work half the time, I may be able to work towards some meaningful cause, but not completely voluntary work. If there’s no income, I will have low motivation to continue.

With a salary, I feel more commitment, more responsibility.

In our later years, my wife and I also have a non-trivial financial need. I don’t want to depend on my kids or welfare to support ourselves. I may have to continue my drive for more income.

prepare]advance for RnD career

Grandpa became too old to work full time. Similarly, at age 75 I may not be able to work 8 hours a day. Some job functions are more suitable for that age…

I guess there’s a spectrum of “insight accumulation” — from app developer to tuning, to data science/analysis to academic research and teaching. The older I get (consider age 70), the more I should consider a move towards the research end of the spectrum…

My master’s degree from a reputable university is a distinct advantage. Without it, this career choice would be less viable. (Perhaps more importantly) It also helps that my degree is in a “hard” subject. A PhD may not give me more choices.

For virtually all of these domains, U.S. has advantages over Singapore. Less “difficult/unlikely” in U.S.

In theory I could choose an in-demand research domain within comp science, math, investment and asset pricing … a topic I believe in, but in reality entry barrier could be too high, and market depth poor

Perhaps my MSFM and c++ investment don’t bear fruit for many years, but become instrumental when I execute a bold career switch.

 

##criteria: domains2specialize over30Y

See also post on top 5 expertise I could teach.

In the US job market, people often ask “What do you specialize in?”. I think most non-managers in this industry, esp. the successful ones, do specialize in something. Whether you like it or not, you are often perceived that way.

Clearly, many professionals are jack of many trades (or a jack of few trades), and don’t have any real expertise, depth or insight. Depending on your view, this may not be a problem for them.

Like property evaluation, I have a list of criteria:

  1. theoretical complexity — so most peers can’t master it. I get lower stress. For example, Threading, statistics, pricing models, algorithms, data science? …
  2. market depth (entry barrier) — eg: quant is too hard to get into and very few jobs in the mid-range or low-end
  3. opportunities in research/teaching, for my later years. Relatively few choices.
  4. aptitude — (aka personal advantage) easier to add value and receive appreciation and recognition.
  5. Something I believe in or care about, such as personal investment, or health. Self-knowledge: If it has commercial value I will care about it.
  6. ———– Rest are secondary —————-
  7. pathway to self-employment
  8. (obvious) accumulation and low churn — Look at grandpa
  9. premium on job market — low priority in my later career
  10. Something related to early childhood education

Some specific domains (See the spreadsheet for more details):

  • concurrency in java/c++
  • raw market data processing in c++
  • risk mgmt + derivative valuation

pre-retirement planning: work till70]U.S.

Bigger than property investment, bigger than CPF annuity, bigger than my unit trusts is … healthy working condition.

Remember Connie’s PR chart? My Prime years could extend beyond 55, towards 70 .

In the US I could work till 70 and possibly branch out to other domains of specialization. Singapore only respects medical specialists.

Q: what aspects of health?
A: diet, fitness
A: weight
A: cardio
A: sleep

real J4 embracing U.S.: ez2get jobs till60

ez2get jobs; abundance of jobs — At the risk of oversimplifying things, I would single out this one as the #1 fundamental
justification of my bold and controversial move to US.

There are many ways to /dice-n-slice/ this justification:
* It gives me confidence that I can support my kids for many years. * I don’t worry so much about aging as a techie
* I don’t worry so much about outsourcing and a shrinking job pool * when I don’t feel extremely happy on a job, I don’t need to feel trapped like I do in a Singapore job.
* I feel like an “attractive girl” not someone desperately seeking on “a men’s market”.

Look at Genn. What if I really plan to stay in one company for 10 years? I guess after 10 years I may still face problem changing job in a market like Singapore.

network engineer^accountant@60: Raymond paradox

See my other posts on civil engineers.

I told Raymond about Junli’s lament over constant learning expected of an IT guy. It’s an imposed extra workload that eats into our spare time.
Raymond’s sister is an accountant, and Raymond is now in the infrastructure team. Raymond pointed out that network engineers don’t need to learn anything new. So the constant learning is not the key difference here.

We do see accountants in their 60’s but why we don’t see the same among network engineers? Perhaps it’s supply/demand.

Explanation – demand. Accountants enjoy much bigger demand. Every big or small company need accountants. Raymond felt only big companies need network engineers. If indeed one out of 50 professionals in each domain is 60+, then old accountants are easier to find because the absolute number is much higher than network engineers.

I feel network engineering is a more specialized domain. How about brain surgeons? Specialist too. The bigger demand doesn’t translate to higher salary — look at taxi drivers. So specialization is not the explanation.

Explanation – globalization. Supply is in Accountant’s favor. It’s less common to hire accountants from developing countries. (Those who have worked locally for years would be treated like locals.) IT skillset is more globallized and standardized, as standardized as it gets. Employers easily tap into overseas candidate pool. That’s Raymond’s observations. However, in the US there is also the presence of overseas candidate pool, but there are old techies. So overseas talent pool is not the complete explanation.

The value of experience is higher in medical, accounting … and less in c++. I know c++ didn’t change a lot over 20 years, but ….? But the young programmers can accumulate the experience very quickly, often in a few years. The entry barrier is too low. Many aggressive, ambitious and determined young programmers can pick it up at home, just like I did. How about network engineers? Higher entry barrier. So entry barrier is still not the explanation.

Hongzhi pointed out Singapore salary is lower for accountants (not auditors) than network engineers. If indeed a typical old accountant earns $4k but a network engineer typically earns $8k, then this would be one valid contributing factor. The less lucrative/competitive jobs would be easier to get for an old job seeker.

Hongzhi also pointed out the Singaporean perception that every IT job skill is churn and therefore favors the young. The lay public doesn’t realize network engineering vs online app — have vastly different churn rates.

Q: why I don’t see a network engineer in their 60’s on the Singapore job market? Maybe there are but they are not job hunting! I think in Singapore there are electronic equipment engineers at that age.

## Y in sg(^U.S.)u can’t be developer till 65,succinctly

In the US, at 65 you could work as a developer. (Actually that’s not the mainstream for most immigrant techies. What do they do? Should ask Ed? Anirudh? Liu Shuo, ZR…)

Why SG is different? Here’s my answer, echoing my earlier posts.

  1. US culture (job market, managers…) has a tradition of being more open to older techies
  2. US culture respects technologists. Main street techies get paid significantly higher than SG main street techies
  3. high-end (typical VP-level) technical work – more comon to get in the US than SG, partly because wage premium is smaller, like 100k -> 150k

academic route as a long term career option#Sam UChicago

A letter never sent out…

Hi Sam

(This is more like a personal blog, to record my thoughts and conversations.)

I never considered those options you posed today

Q: 2nd master's degree?

A: I liked the part time study experience so far. Will take a 2nd Masters if someone pays for me.

Q: I did think about teaching at polytechnic level, but teach what subject?

A: Either IT or financial math, or perhaps data science — after I spoke to Bernie.

## top 5 expertise I could grow #teach?

The most sought-after Expertise I could develop.

#1 personal investment – FX/option, HY and unit trust investment

# tech IV by top employers, including brain teasers
# Wall St techie work culture
# financial dnlg, appealing to pure techies
However, some of these are hard to make a teaching career. So which domain can i teach for a living, perhaps with a PhD
  1. programming
  2. data science, combining finance with…
  3. comp science
  4. fin math

##[11]technologies relevant]2050 #inspired by architect story

Watching an in-depth documentary about an architect (I.M.Pei) in his 80’s, I started thinking (again) about what app dev technologies/experiences would be relevant when I turn 80. I think there will be more “winning” software tools (software are tools) adopted, each dominating a specific domain displacing old guards. But what about mainstream technologies? What are truly resilient in the face of destructive sea changes.

Note many of these technologies could be sidelined and dethroned but still relevant!

  • #1) C
  • #2) unix/linux
  • * [L] multi-threading basic constructs? All the basic low-level constructs are decades old, but not the high-level constructs
  • * [L] socket, tcp / ip
  • * unix, sql, network tuning
  • * [L] classic data structures and (only) those algo on them. STL was the pioneer.
  • * c++? less resilient than C, but since C++ compiler is usable by c developers, c++ features would be usable if not always relevant.
  • SQL and stored procedure coding
  • [L] memory management — pointers, allocation/deallocations, definitely relevant to ultra high volume, low latency apps(?) More generally, In “demanding contexts” (Scott Meyers) I feel mem mgmt will remain extremely relevant, perhaps beneath the surface
  • * GU? Requirement will stay but the constructs and the programming language/technique may change completely. GUI threading design seems to be consistent throughout.
  • * MOM architecture? probably yes but implementation may change so completely that your knowledge is utterly irrelevant. IBM MQ and RV are long-standing, largely due to the relevance of C.

# eor
* RPC, web service, corba, RMI… Resilient model, but not implementations
* [L] system calls? Actively used by few coders but relevant underneath the surface
* batch jobs? Requirement yes; implementation no.

[L=Low Level, closer to the metal, rather than application level]