Categories
Software development

Protected: Typical daily working hours for Software Engineers

Reading Time: < 1 minute

This content is password-protected. To view it, please enter the password below.

Categories
Career Software development

Imposter syndrome

Reading Time: 2 minutes

I recall in year 1999, probably in that fall, once I met a gentleman who is the founder and president of a small IT outsourcing shop based in Peoria, IL. He was coming to Rolla to interview students for potential positions at his company. His questions are more interesting, I vaguely recall both he and I attended pretty good engineering schools in India and China respectively, but we didn’t attend most prestigious engineering schools such as IIT or Tsinghua University. He asked: do you feel you are inferior to the Stanford graduates? I said no and he agreed. He emphasized this point a bit: and the usual external perception and internal confidence comes with a degree from a prestigious university.

I have seen this phenomenon many times over the years. For example, in the IT/software industry, many people didn’t have formal education in computer science or computer engineering, and some of them will feel they are imposters or feel they are not qualified or confident. In fact my wife will joke with me re: this a lot. My degree is in mechanical engineering. I recall that gentleman I mentioned above majored in ME in college too. But we don’t need to feel that way. Formal college education is nice. At the same time we can leverage what we learned in our formal education, some overlaps with computer science and engineering; plus we pick up or learn from work, in the end we can do our job well and gain new knowledge and experience too.

This is applicable to other fields too. For example, I noticed a girl who didn’t take the traditional route of a singer or musician, in the end got a master’s degree in composition and in my opinion did quite well in her music (and creator) career. She also joked she is 野路子。That’s also one reason I wrote this post. In my opinion everyone is 野路子 – even those who went through all the so-called formal training. Because in today’s day and age, one has to learn or pick up whatever needed and not necessarily taught at school. Improvise. Adapt. Somewhat like the improvisation in jazz. It’s not easy as I observe last year my old daughter was so nervous when she was told she needs to improvise on vibraphone in suburban jazz band concert. In the end she did okay.

PS:

I wrote the above fairly quickly in early morning, on my phone. I just realized that my better half (my wife), though sometimes she jokes that I am not Comp Sci major, has similar doubts about herself in terms of career. She is a quite shy and self-conscious person, so I won’t dig deep in it if I could.

Reference:

Is Impostor Syndrome Holding You Back From Living Your Best Life? (VeryWellMind)

Categories
advice and tips Software development Technology Windows

Before return the company PC or mac

Reading Time: < 1 minute

Mainly double check PC and mac to see if there are any personal info left behind

Delete chrome/safari/IE browser history

Chrome=>setting, clear browsing data, check saved password/forms, delete user, delete cookies/Content settings

Safari=>delete history, privacy=>delete website data; reset safari

IE=>Internet options=>Browsing history

Delete files and folders

check myDocuments/my pictures on PC

check Downloads/Documents/Key Chain folder on Mac

check myNotes, or notes.txt on Mac and PC (applicable to me only)

Some notes for new Mac Users

short cuts, and things different from windows
command + s, command + c, command + v

delete is backspace, fn + delete for delete

Categories
Software development

Two observations on software engineering

Reading Time: 3 minutes

For a guy with a hammer, everything is a nail

Use SQL for everything

At Mastercard, I used to have a colleague who is great at SQL. And once I realized he used PL/SQL for quite complex business logic for a “promotion build” and it backfired. The customer noticed there were some inconsistencies and notified us. Upon further examination from yours truly, it appears the code has some logic flaw. Note the flaws in the PL/SQL is hard to detect, compared to code/app written in a more general purpose programming language such as Java and following proper testing procedure. The cost of that mistake is we end up sent about $40 k to the business customer (a bank). I can understand why PL/SQL is being used there, because that’s the main skill my former colleague had, and in other words, he has this hammer (SQL), and he was using it at every place possible. A second reason is my manager was probably under pressure to deliver that functionality, and he probably was not willing to or getting help from the dev team: and I knew we have quite a few Java developers there, and some of them are pretty good.

Performance Testing went too far

This applies to performance testing (JMeter is a popular tool). When I worked at Ascension, my boss likes running performance testing via JMeter. Also at the time, we have an engineer who knows the tool. And once we ran performance testing without realizing that we sent emails in our testing, and our testing brought the company outlook server down to its knees 🙁 In hindsight, I felt this kind of testing is not really necessary. You can read some of the examples I listed in my blog post too. The lesson here again is: someone fell in love with the performance testing, or performance of the system. I am not saying it’s a bad thing, but the approach they were taking to me is very amateurish. And as you can read from my blog post, that’s one main factor a multi millions dollars project failed. Somehow the recent DOGE efforts in finding fraud and waste in the US government reminded me of that failed project.

Layoff to cut cost

Now Elon’s DOGE team seems got obsessed with cutting staff (hammer) in the federal government: which was first used during the Elon’s Twitter takeover. He is using that hammer again from his previous experience. In short term, if you cut staff, you may get some more productivity from the remaining staff, because the remaining people will be scared and have to work harder to make up the slack etc. But there will be longer term consequence. I don’t think it’s as straightforward as cutting staff at Twitter (X). But again Elon only knows hammer. He really doesn’t have other tools in his toolbox.

I am pretty sure this “hammer/nail” mentality applies to other fields as well. For example I saw quite a few Asian parents pushing kids to work harder (the main reason is those Asian parents mostly worked hard to get here), without realizing “work smarter” is actually way more important.

How to measure the productivity of software engineers

My short answer is you cannot. But for managers they cannot take this answer, especially at the places they have mandatory quota based layoffs, in America I recall Jack Welch is the one who started it: refer to Jack Welch: how he justified his famous ‘fire the bottom 10%” and Short-term profits and long-term consequences — did Jack Welch break capitalism?

And at Mastercard, in early 2019, yours truly was hit by that too. I was Lead Software Engineer at the team, but unfortunately I got into some “grunt” work, not necessarily code related, thus my GitHub stats was not great.

What are the grunt work? You may ask. And since you ask me: I would ask google. Here are the answers from Google’s Search Labs | AI Overview

======

“Grunt work” in software development refers to the repetitive, often tedious, and basic tasks that are necessary to complete a project, like data entry, basic code cleaning, configuration management, or setting up initial infrastructure, essentially the foundational work that needs to be done before moving on to more complex features or design elements. Key points about “grunt work”:

Example of grunt work in software development:

======

So my lesson learned from there, along with a similar lesson I learned from Ascension Health, is: coding more, and do less of the grunt work.

At least, when a manager who only cares about those stats come by (aka, someone like Elon Musk), I can point to the source code repository, and show her/him the stats.

In reality though, layoff is more than just the stats.

PS: came across this YT video – Aging Software Dev – Can You Still Compete After 40?

Categories
advice and tips Career Life Tips Software development

Layoff and other forms of rejections in life are not the end of the world

Reading Time: < 1 minute

What doesn’t kill us can only made us stronger — German philosopher Friedrich Nietzsche — his original words are: “Out of life’s school of war—what doesn’t kill me, makes me stronger.”

Five years ago today, 01-23-2019, Wednesday, I was laid off from the company I worked for about 3 and half years. I saved the below email in my Gmail account.

Hi Minjie,

You mentioned to me this morning that you had a work computer at your home. I wanted to let you know we’ll be sending you a pre-paid box for you to send it back in.

Please let me know if you have any other questions.

Thanks!

…………

That being said, if you were working for the federal government and recently got laid off because of Elon Musk’s DOGE’s purge, and if you like to talk to someone – I am available.

Potentially I can provide some advice re: how to get back to your feet quick. I can buy you coffee, do mock interview during lunch (I will pay), and pay your Uber ride fee, if you have an onsite interview and need Uber/Lyft.

In my career, I navigated layoff situations a few times, and I was able to find something relatively quick mainly in the area of software development. I understand right now it’s a very tough job market in the USA. But it’s still possible to find something. I am a strong believer of 树挪死人挪活。I believe layoffs are usually blessings disguised in curses. Somewhat like divorce during a truly horrendous marriage.

Reference: I talked about more about layoffs here in my 2023 blog post.

Categories
advice and tips Fun kids Life Software development

Reflections and moments in year 2024

Reading Time: 3 minutes

Travel Mishaps

One of the most memorable moments in 2024, for me at least, we already checked out the hotel in HK and got on the taxi to the airport, then our 14-year-old said, “I left my hoodie in the closet”. We already checked out thus cannot go back to the room directly. Had to use a concierge service. It seems took forever when we waited there. The real time is probably 20 to 30 minutes. We tipped the house clean staff who retrieve the hoodie 100 HKD. Same for the taxi driver. Adding them up it’s probably $20: I think we paid that hoodie a bit over $20 at the Plato’s Closet. But it’s not about money. I remember this because my wife was furious (more than anxious) when she and our 10-year-old waited in the taxi. The younger taxi driver drove fast to the airport (we did make sure we have enough time even with this mishap).

Presidential Volunteer Service Award (PVSA)

One of the proud moments as a dad: our 14 year old Serenity received the Presidential Volunteer Service Award 🥇 on December 31, 2024. Pictured below: she is receiving the certificate, the congrats letter from President Biden, and the Gold award pin from Rick Skinner, who represents the United Way of Greater St. Louis, the verifying org for this award. We (my wife and I) are thankful for all her teachers, from toddler program and pre-schools (pre-K), from Kindergarten to high school at the Ladue School District, her coaches and teachers who helped her in her extra curriculum activities: for teaching her the right things. I know sometimes I didn’t teach her or show her the right thing 🙁 . Her friends over the years too. Thank you all! And we hope she keeps up the attitude and efforts 🙂

My Panic Moment

I had my share of moment at work. One evening, I was acting as the technical lead representing the development team during our production deployment (rollout). I noticed an issue after the system engineer made the server configuration changes and restart. I quickly realized why: instead of adding a few parameters in the middle of the server start configuration, the system engineer did a replacement – in other words, he removed all the parameters from the location where we intend to replace until the end. And he repeated for multiple nodes/servers without confirming any node/server change with me 🙁

This could potentially cause longer outage as we planned, and could drag out our change windows from 2 hours to 4 hours or more. Luckily, the junior system engineer called his colleague who is much more experienced, and he came out and fixed the issue in under 20 to 30 minutes and saved the evening 🙂

The lesson for me here is making sure always backup the server configurations – earlier I did make some backups (not all) after my project manager suggested. Always be open minded and listen to colleagues even when I think it’s probably not necessary at the time – because we never know it could be handy down the road!

Categories
Fun kids Life Software development

Summer Break 2024 – little moments

Reading Time: < 1 minute

Below moment is likely not isolated to summer. Sometime between March and July this year (year 2024). One day I took MacBook on sofa, and sit about 6 ft from my 14 year old. We were at the two ends of the sofa (couch). Her response: dad, you are not going to sitting here for good, right? She was on her computer and wanted privacy. My sweet 9 year old said: dad, I want to sit with you 🙂

This morning (early June): while I was driving to my 14 year old to Clayton HS, and I got distracted, passed Ladue road while driving on Warson south bound. Basically I went to the Ladue Middle School – made turn at Price & past JBS, and my 14 year old said: it’s 1st time I saw JBS 🙂

Since this summer, I started to play some board game with my 10 year old (was 9 year old before this past July), almost everyday. This continued even when she was in the Children’s Hospital for a few days in September. We played “spot it” during those days. Our most recent favorite game is Montessori Trinomial Cube (we played a ton lately, I am pretty sure she outgrew it. There goes my original plan to sell it on eBay 🙂 “Trash Panda” is probably the most complicated game for me. And I am glad some days we got to play table tennis in the basement.

PS: for anyone reading, please don’t share this with your teen kids – I am worry about the I may have the Bruce Springsteen show/tickets moments as shown in one of the Growing Pains series 🙂

Categories
Edu-and-Ladue-School Fun Software development

‘Due Run

Reading Time: < 1 minute

今天一大早,我家大娃第一次出城比赛,不是钢琴🎹或其它乐器,不是数学,sci-only, 是 XC( cross country #越野跑)😂.

兵分两路,老爸(yours truly) 将跑第八个’Due Run. 大概算了下,God’s Willing, 等小娃高中毕业🎓,还有八个’Due Run.

结果:两个人大概都跑了34分钟多一点😂

PS: 拉肚学区啥都卷,小朋友们卷小朋友的东西,家长们卷’Due Run. 我记得有一回黄大神带了胜跑群的一路神仙们席卷了不少奖牌🏅😂

Btw, I signed up this year’s Olivette Turkey Trot. I probably ran my 1st Olivette Turkey Trot 5K in year 2018. I signed up in year 2017 but I chickened out at the last minute. I was on and off for a few years, I recall one year, probably year 2021, I signed up but we decided to go to Kansas City for a quick trip/family vacation at the last minute. This year I hope to make it and complete the race.

Last but not least, refer to Running, jogging and walking my blog post in which I talked all my running races so far.

Categories
Software development

Why Cisco’s market cap is far behind Google etc.

Reading Time: < 1 minute

Q: Can we say routers are simple and doesn’t have a lot of technologies?

A (by yours truly): 也不能这样说,路由器和相关技术,比如说load balancer (F5 等),firewall 等等还是有技术和市场的。思科当时的做法是支持所有去创业的员工,给投资,一般做得还行的后来都买回来。她家最主要还是dot com 那时候股价炒太高。

思科现在成长性比不过hyper scalers. 她近年买了app dynamics, splunk 等performance (production) monitoring 的软件公司。很久以前买过webex 

I gave it more thought: I think the main difference between Cisco and say other hyper scalers such as Amazon and Microsoft are: the latter found new growth driver, AWS for Amazon;  Azure and many other growth drivers for Microsoft (Xbox gaming, office 365, copilot and so on). In a way Nvidia is similar: they went from Graphics card, to crypto, and now to AI.

Google (Alphabet) is a bit different in terms of its business model change. Google is very lucky in the sense it quickly became the leader in the web search, and found a business model around search and ads (google ads, adSense for publishers). Later they bought YouTube and DoubleClick, and AdMobile. They invested early in the AI too, and they opened up what they use internally as Google Cloud: this is somewhat similar to AWS, but they kind of came to the party a bit late.

As I was writing this: Intel just announced it’s going to suspend the dividend and also has another round of mass layoffs.

Now we are talking about great business (Microsoft, Nvidia and so on), vs. so-so business (Cisco), and disastrous business (Intel).

Also, I just recall the pioneers of mobile phone and smartphone makers: Nokia, Blackberry and so on are all becoming irrelevant in the space now. Apple is the king of the smartphone as of this writing.

For tech companies: innovate, or die (or become irrelevant).

Categories
Software development

East or west, rewriting is the hardest

Reading Time: < 1 minute

再说说software rewrite:我在上班的地方,参加过两次rewrite (重写)的项目,现在的项目是其中一个,大概做了两年多了:中间换了不知道多少contractors,现在好像还没有看到the light at the end of the tunnels。每次此类项目,management 一开始都有非常optimistic 的expectations:但实际工作中不是这样。

Why rewrite is hard? Or the hardest?

I can think of a few reasons.

1) Management usually has very realistic (overly optimistic) expectations. I don’t know what kool aid the management drinks, but somehow there is current “sort of working system”, somehow lead them to think “what’s a big deal: we have done that”. The reality is: “sort of working” is not equal to “working as desired”. “Done that” does not mean “the original developers for the working system” are still around.

2) Politics: sometimes the company uses contractors as “scape goat”. I have seen that quite a few times. So when things are not going well, let’s just blame the contractors, let them go, and bring in new ones. And so on. This is madness too, because the company waste opportunities to learn from their mistakes, and to grow, and to make sure not to make same stupid mistakes again. But hey, admitting “we made mistakes” is just shameful, and “we never make mistakes”. “We are perfect”. Only the contractors make mistakes. This is obviously far from truth.

Also: I wrote the article below about 9 years ago:

Sustainable Software Development II : Rewrite And Star Performer

Reddit: Why exactly does most software rewrite fail?

Adobe: We Decided to Rewrite Our Software. You Won’t Believe What Happened Next!

amazingcto.com: How To Succeed With A Rewrite – And Why They Fail

google – famous software rewrite failure stories

Last but not least, here is a X thread I wrote on the topic.