今天我想说说politics on offices(or fights on better cubicles or offices, think bigger cubicles, corner offices and so on 就是大家都想要好的cubicle 或是office). Not the traditional good old office politics. 不是办公室政治,而是关于争抢办公室的故事。
1. Never trying to take back the bone already in a dog’s mouth. 英语里的谚语,从巴菲特的伙伴查理芒哥那里听来的,不要在狗的嘴巴里试着去拿回已在她嘴里的骨头(英文原话:The one way, the only way to get that dog to bite you was to try and take something out of its mouth after it was already there.)。
我做码工的地方我好像基本上没有独立的办公室。上面提到的煤炭公司算是有一些办公室,当然也有工位cubicles,也就是我等小不拉子们坐的位置。煤炭公司(Arch Coal, now Arch Resources post the bankrupcy and re-org)其实一开始我有个semi-private 办公室。我老板把我安排到一个角落里的办公室,那里原来是一个美国小伙,desktop technician 如果我没记错。我一次,我才刚去不久,我有点咳嗽,他好像很不开心。
我以前去过微软,应该是2002年,我有朋友在那里上班。我去有西雅图时去了他办公室,一个人一间,没有窗户。他说他们一般是赶进程的时候才会去办公室。微软在Richmond, WA 的园区很像一个大学校园,有树有湖。他说有个湖叫 Lake Bill, 据说是有一回庆功,大家一高兴,把比尔盖茨 (Bill Gates) 扔到湖里去了。我记得有两个车位是有名字的(Bill Gates, Steve Ballmer 当时微软的CEO),其它位置随便停。这一点我觉得很不错。后来我去了一些地方,等级分明,停车位也有很多各种讲究。其实也是公司/单位文化的一个反映。
我自从上班以来好像就没有办公室。我在罗拉读研究生的时候有。有时候还只是一两个人的办公室(semi-private). 但是也有坏处,我刚来美国不久,我常去一个TA的办公室,我在我的桌子上放了一个数码相机,后来我发现我的相机不见了。这个办公室旁边有一个Lounge, Soda machine, 等等。我走开一下,很多时候会把门开着,可能是有人在那里顺走的。或者是有办公室钥匙的人。后来我有了一个更好(privacy)的办公室,我捡到一个可以折叠的沙发(可以睡觉):有一次有一两个晚上因为要赶RA的工作,就在在办公室里睡觉(这个好像跟微软的部分员工,在开发Windows NT的时候,为赶进度,在办公室门板上睡觉一下(我是从网上和从我的朋友那里听来的)。另外一次,我捡到一个旧冰箱。就差一个微波炉了。
First Job
言归正传。我的第一个东家是Unigraphics Solutions (后来的名字有EDS PLM Solutions,UGS,Siemens PLM Software 等)。最早的办公室是在村里西北脚的Earth City (Riverport Drive)最高的办公楼:我在这里不详述Earth City 和Riverport Drive了:有段时间我经常去星巴克,当时我很想附近就有:最近的星巴克是在旁边的270和St. Charles Rock Road (印象中这一家开开关关,现在是开的), 靠谱的一直有的星巴克在270和Page交界的West Port。现在这个办公楼是被本地较大cable/internet 公司租用。几年前(大概是)2019年初的时候我找工作,又去过那个楼。那个地方其实离村里的机场很近。我第一年在公司上班的时候,也住在附近的公寓。2001年九月十一那天,(我们应该都知道那天发生了什么),之后有几天,所有民航飞机停飞,感觉天空有平时没有的宁静。
我记得有一次,有个其他部门的同事工作三十周年庆祝。我当时的老板(美国人)私下里跟我们说,三十年前坐cubicle,三十年后还是坐cubicle。他说的是有点道理的。Sad but true. 当然我也记得我们的manager 和大老板的靠窗的corner cubicle 要大一些,大老板的cubicle好像还多一个挡板(better privacy)。
WFH
我的第二份工作AutoDesk是在家上班。那是2008年十一月份。公司有一些关于在家里上班必须有的一些条件,具体忘了,好像是说要有一定的空间。2020年因为疫情很多人开始在家上班,很多夫妻一起在家上班。我的建议是让老婆(boss)先挑办公室。 我有时候不喜欢总在家里呆着,就带上笔记本电脑去外面,当时一年多我去了 Barnes Nobel(书店), Borders(这个书店现在已经没有了), Bread Co and Starbucks. 可能去的最多的还是面包店。我去那一家面包店有十八年了,有一个我喜欢的位置。
AutoDesk 的工作可以在家工作(在当时不算多),但是也有一些坏处,比如说要差:有时候要坐小飞机。我记得大概是2009年春节我去了密西根一个小镇。坐小飞机不是很安全,那时真好出了一件事:Colgan Air Flight 3407。PBS有个相关的纪录片。
换工作 and Hearsay听说的故事
2010年初,我的老大快要出生,我也换了个在办公室(工位)上班的正常工作。但是我很快发现这个小公司我可能呆不久。美国大公司(大锅饭)和小公司很不一样。这个小公司大概是两个人合开的。理论上我们有一个小组都是Union Pacific(UP) 的合同工, 两个老板(President and VP)以前帮UP做过事,现在他们帮UP维护两个系统:系统是关于运输和财务会计方面的(Accounts Receiveable and Revenue Integration Systems)。那一天(大概是2010年2月中的某一天)我们有三个人一起开始(这是其中的一个同事)。老板不直接管我,他们让两个project leader (相当于tech lead)管我们。我想有两个理由他们不喜欢我。一个是我不能提供剩余价值。什么意思呢:就是我发现我的两个华人朋友(老员工)除了做UP的事意外呢,还帮老板他们做其它的项目(比如说一个户外活动商品的网站等等)。还有一件事,我是后知后觉,我发现他们对我下午三点多的时候出去走15分钟很有意见。类似的问题,我大概每天九点左右到,四点多走,他们也有意见。
我大概做了半年多意识到这个问题,开始努力找工作。我问了我自己的朋友,也问了我的华人同事,感觉我除了找新工作没有其他好的办法。因为老板们会听project leader的话,而我没有多少说话的机会。在美国公司上班久了可能大家会知道公司内部等级是非常森严的。但是我找工作的速度没有赶上他们的速度。其实这个也是因为大公司和小公司的差别,大公司吃大锅饭,老板不会斤斤计较,小公司就相反 – 我当时还没有意识到。有一次,我太太告诉我家里有不明的烟 (look for “minor scare”),这个火可不是开玩笑的。我马上就离开公司到家里,没有跟同事打招呼事后也没说。我事后听说对我不满的project leader 以前曾经跟另外一个同事以拳相向,同事之间动手在美国是比较少见的事情。不过我想那个家伙也不奇怪。
关于美国上班地方的一些暴力的统计:Workplace violence: homicides and nonfatal intentional injuries by another person in 2020. There were 392 workplace homicides in 2020. There were also 37,060 nonfatal injuries in the workplace resulting from an intentional injury by another person.
*** 以下我会慢慢更新 I will clean up below soon, may start a new story as this one kinda getting long ***
More cubicles
Arch coal: my cubicle moves (small shared corner office, cubicle near CTO, the cubicle near the “office fight”); and the girl who “lost” office. For that matter, heard from coworker helping set up CNN cable for ACI CEO, and oh, she helped the Outlook password change (same time on laptop and iPhone), this used to be an issue for me (one best practice is change it in one place 1st, let it sync in, before opening another app. 环保分子抗议。
EHI (2013): I left too many Panera bags there (quote my friend)…
MC: I found out I no longer have a cubicle: after open office remodeling and back to work. Nobody told me (some may know).
Standing desk and Open Space? Hype or doing actual good?
Asc: Edmundson, Cortex (big boss has better cubicles, just tables; open office remodeling – phone room).
I maytalk about job searches, interviews (both from job search and from the hiring point of views), and hardware next, using my own stories, so stay tuned (hint: hardware itself is not the most important). 大家有什么想法意见,也可以在下面留言,或发email到:minjie.xu@gmail.com 🙂
Yesterday at a WeChat group, I wrote 昨天在一个微信群里我写到: 我(My LinkedIn Profile 我的领英链接)在美国工作23年迄今呆过十个庙。。。 话说完后我想起来十个庙,与多数码工相比,也真是不少了,平均2.3年(2年4个月)换一个工作。还好只是换工作😂
又想起在罗拉时,有一回是参加大公司招新的大学毕业生的介绍会(一般会有免费的比萨🍕饼,对我这样的穷学生来说诱惑力还可以)。有一次好像是听Honeywell公司的老总(possiably Michael Bonsignore):你们这些年轻人(当时我还不是大叔),从大学毕业到退休,大概平均会有七个工作。这个与他们那一代人一辈子,大概三十四十年的打工生涯,大多为一家公司打工的情况大为不同。
是在学校找的。我当时是博士生,但是我感觉我的基础太差,最主要我当时很想出去工作了(我觉得做很多事兴趣还是相当重要的)。2000年,正好也是美国纳斯达克的最高点 (“The dot-com bubble burst in March 2000, with the technology heavy NASDAQ Composite index peaking at 5,048.62 on March 10 (5,132.52 intraday), more than double its value just a year before. By 2001, the bubble’s deflation was running full speed.”),我记得我在3月20日面试一家软件公司,并拿到Offer。我记得大概是1999年夏天,学校有不少研究生同学在圣路易斯找到软件开发的工作。记得九九年时的起步年薪大概是五万美元(或稍多一些)。我2000年三月开了五万五,老板挺爽快,给了我五万六。一方面是中大型软件公司,另一方面当时市场也不错。十年以后,我发现在圣村,软件工程师起步的薪水大概是六万的样子。当然2000年到2010年美国的通胀不算严重。
读音乐专业后来成为高级码工的人我见过一个,在2000年秋天在罗拉的UMSL extension 一起上过面向对象的设计课程的一个美国人。面向对象是什么其实不是那么重要。你就把它当成2000年的dot com frenzy (internet bubbles), 或者相当于现在的AI, chatgpt 就可以了。那些新的东西是有用的。但是同时我们必须认识到good old human intelligence, good old 4th grade math are probably more useful and long lasting. 说到那个音乐系的哥们,他后来是村里还不错的咨询公司的Principal Software Engineer. 记得他当时开个宝马三系,还有点拉风的- 基本上相当于现在的特斯拉(3/Y系)吧。我当时开的是91年丰田卡罗拉的手动。我自己是罗拉机械工程硕士,在读研期间上了几门计算机课。我在国内自学过一些计算机,考过国内计算机程序员水平考试(复旦大学负责主办的)。但是我的编程水平真正提高应该是我的第一个东家。
我昨天在油管上看到一个华人小老弟的一个关于找码工工作的视频,觉得不错,先放在这里。还有这一个,好像是亚裔的小妹(HOW I BECAME A SOFTWARE ENGINEER | no CS Degree, career change + advice. I agree with her on the part that money is not everything, which is pretty relevant for me at this time of my career. I guess it’s harder to say for her at her stage of career as she just got started, nonetheless it’s even more impressive when I think about it.)。 这两个视频都是英文。正好可以练一下英文,至少在我所在的美国中西部,面试一般还是英文。Btw, I found Travis Media has this video on interview and job search that’s very good.
Career Ladder
Title for (application or software) programmer or 码工,software engineer, application or software developer. Or just a coder at informal settings. 我可能以后会讲一下升职和常见的career ladder. 比如说奈飞的L5 是相当于谷歌的L多少。我想我们华人除了比小孩爬藤以外,在硅谷的华人码工不少会在意这个级别,因为级别与工资奖金💰是挂钩的。当然我现在的观点,钱不是最重要的因素,但是多刚刚起步的码工来说,一般因为家庭和职业的原题,这个还是比较看重的。我印象中有些老板也同意或说过类似的说法。
People who have impact on my career (not a complete list yet)
Reading Time: 4minutesSinking hole in our neighborhood main street? We try to find the root cause.
Back to coding. When working on the same file at the same time, the old joke is try to check in your code change before the other girl (guy) does. This way you don’t have to worry about the merge (meaning, put in your code change while keeping the other person’s code changes). In this day and age though, when working in a team, with the code review process, etc., we cannot count on we always be the 1st one to check in code changes. Thus, comes the “merge hell”. And I thought I was in that for a moment last few days, as I didn’t know a lot code has been changed for the repo (feature branch) I was reviewing and tried to merge. But it didn’t turn out as bad as I thought.
Some observations I have. Some are well known: one is don’t keep the feature branch for too long. I think the recommendation is a day or 2 (source 1, source 2). But we kept it much longer than that. To add to the complexity, I saw meaningful amount of refactoring being done in another branch (which I need to keep as well, at the same time it complicated my feature branch merges).
The approach I took eventually: initially I accepted everything in my feature branch, and I quickly realized that won’t work. So I took the opposite approach, I accepted everything in the dev branch (after the other feature branch is merged), and then I pick and choose my feature branch changes, and put in those changes. Ran local build and tests.
Btw, on testing front, I observed a locally hosted (localhost) Web Service (WS) calling another WS locally vs calling the WS hosted on #AWS #K8 has performance impact: roughly 15 sec vs 45 sec. I yet to test the scenario of caller WS on AWS.
My good old days
I cut my teeth on “code merge” about 20 years ago, when I was working for a software company. We didn’t have agile and all the jazz. But we were doing the modern day agile and did software dev in an increment way. Every 2 weeks different dev branches (teams) of the company merge our code changes to the central repo, and we call it integration. Since we have annual release of our software, we pretty much do about 20 phases (2 weeks x 20 = 40 weeks) for a release. Each team has a person that is responsible for the build and integrate the code to the central repo (not full time job, just once every 2 weeks, and the total time spent is about 8 hours the most for every 2 weeks). And yours truly was the integrator. And I had to resolve the merge conflict sometimes. And in some cases I need to get other teams involved to make sure my merge is good. I recall we used PerForce for source control, and KDiff3 at the time.
SpotBugs
Just as I thought I was close to be done. I encountered a few SpotBugs issues. Mainly there are 3 types, as shown below.
2. The default getter and setter generated by Lombok has a potential security issue. The solution is to make a deep copy. Refer to this SO thread 1, thread 2 and thread 3. For me I found out I need to do a null check in the setter (we don’t want to set something to null, it throws null point exception too).
3. And last but not least, it didn’t like multiple instances of hard coded strings being created in the same file. This is a low hanging fruit – just create a string variable for that.
I think one common question may come up is how SpotBugs compares to Sonar Qube. My impression is SpotBugs can be run locally, and per the “fail earlier, fail faster” motto in the Agile development, this is excellent. As for Sonar (or Sonar Qube) my recollection is we usually configure it with a CI tool such as Jenkins, and we usually need to proactively look at the results ourselves: we likely can configure it so that at least it can email us the failures in a CI build. But either way it seems local build capability is either not there or hard to achieve.
“Reviewers felt that SonarQube meets the needs of their business better than FindBugs. When comparing quality of ongoing product support, reviewers felt that FindBugs is the preferred option. For feature updates and roadmaps, our reviewers preferred the direction of FindBugs over SonarQube.”
Bonus Advice
I probably solved more coding problems by stepping away and taking a walk… or driving on the way to home after work. Once I couldn’t resist the temptation to try it out so I turned around 😂 #walking#driving#coding (warning: always pay attention to the surroundings while drive or walk, the physical safety of you yourself and those around the you are the most important).
(Update 01-Nov-2023) I found an issue with “merge commit”. I did not do the rebase or at least I did not use the git rebase command. What I did: I go to the “target branch” in my local, do a git pull (get the latest code), then go back to the “from branch”, do a git merge target_branch, now the “from branch” is updated with the “target branch” most recent code change, and I would no longer have “merge commit” in my Pull Request (from merge branch to target branch). Note the code change was pushed into the merge branch using the command “git merge feature_branch”. Note this is a 3 way kind of merge, from “my feature branch” to “from branch or merge branch”, and the code change eventually goes to “target branch”. We like to have only the relevant code changes (commits) from the “merge branch” to “target branch”. Read this doc if you like to learn more about advanced merge.
(Update 11-Dec-2023) Thought this one is funny. The gradle build on my local worked fine, but SpotBugs test failed on the CI (Continuous Integration) build. I don’t have access to the CI server. And I guessed it’s the unused variables I just added. So I added a bit loggings for the two new variables I just introduced. And it worked: now the CI build is good.
For parents of the Ladue school bus riders: here is the SafeStop app (Android on Google Play, iOS, and the School Access Code is here). The app started working for me again (tracking and notifications, for the most part) on September 11, 2023 for the new school year.
I am on iPhone and I set up the bus routes (you can scroll down the web page to get to the route for each school ), added my kid (you may find your kid’s student ID either from the ParentSquare Android App, iOS App, website or the Infinite Campus), and added the bus to my kid, etc.
Here is a blog post that laid out all the common steps and screenshots, if needed.
If anyone needs help setting up the app, please let me know. I can do Zoom if needed . This app is not the most reliable app I personally used. But I also understand it gave some parents and caregivers peace of mind sometimes.
(Update 11-03-2025) Come across this Chinese blog post 被裁员是祸是福 -没准是柳岸花明又一村 and I agree. In English it’s called blessings disguised as curse 🙂
(Original) A touchy topic. I have been in the tech industry for almost 23 years, and I have seen my share of the layoffs. I saw the layoff very early in my career, and the most recent ones in last year or so amid the big tech post pandemic layoffs.
Layoffs are usually not pleasant. But putting emotions aside, I recall an older wise gentleman once told me: it’s not necessarily a bad thing, as it gives an opportunity for someone to look beyond the daily grinding, to reflect, to pivot or reposition and hopefully find something better or more suitable for someone (not exactly words, here someone is actually yours truly back in the early 2019).
Also sometimes the old timers (the good old employers) will ask in the employment history section during a job app: have you ever being involuntarily terminated from an employer? While I am not a lawyer (my wife is), but my legal advice here is: this is somewhat like the situation when I was in the US Consulate in Shanghai back in 1997, when the visa officer asked: what’s your plan after the graduate school? One thing I was 100% sure is: I was not going to say that I planned to stay in the US for good 🙂 I think an honest answer then is probably “I don’t know” or “I am not sure”. Remember in 1997 although the Hong Kong was returning to China, at the time the US was still way ahead of China, with the exception of the Chinese food here. There were a lots more economy developments in China compared to the US since then.
Two traumatic layoffs that left me impression
It was Oct 11, 2001, a month after the Sept 11, 2001. We knew the layoff is coming, after our company bought a rival company. The day came and it was not the 1st time I saw layoff, I think I saw a smaller layoff shortly after I joined the company in fall 2000. But Oct 11, 2021 is probably by far the worst in my career, we had 3 coworkers being let go on that morning. I worked closely with one of them, and the coworker cried or sobbed when the news broke. Her husband also worked at our team. Later the department manager rallied or tried to console the people who being left (we had about 30+ people, mostly devs). And we also learned the overlapping dev team at the acquired company were all let go. I recall there were quite a few ethnic Chinese people, who probably had similar background with me, but they may have came to the US a few years earlier than me. A side note amid all this is a QA engineer (test engineer) was laid off, and a few weeks ago during a townhall he asked question to the CEO about layoff 🙁 That day the company laid off about 18% of the people, and that’s probably 1,300 people.
Another case, while at the Mercy Health, we also knew the layoff was coming. And this time around we lost our QA engineer again (see the pattern here?), as well as an old engineer who cried / sobbed quite loud. I vowed to myself: never put myself into this kind of position when I reach his age (which is getting closer and closer, btw 🙂
My own share of layoffs
I had experienced 2 layoffs myself so far. Both times I was a bit surprised. But I think the second time it worked out for me better as my severance package is better, also due to the timing, it helped us bought our single family house at the right time before pandemic in summer 2019 (so here is another side benefit in addition to the career pivot).
The 1st time it was a bit sour taste. But I was not totally caught off guard either. I know one or two project leaders (they are more like team lead, not managers) didn’t like me. And I couldn’t do much to change the situation (the dynamics). The layoff came, the admin assistant was really nice actually. Looking back I think she is one of the few people who probably knew a few days in advance. I calmed down and negotiated a calm exit before my China trip then (year 2011, I had to email recruiters when I was in China, which is not ideal). I got a contractor position quickly after I came back from China. In this particular case, I actually learned that individual who said bad things about me before my manager(s) once got into a fist fight with another coworker there. I think looking from another angle, avoid toxic people at work place is a good idea 🙂 I do recall the evening in which I just lost my job, and I went to the Bread Co, thinking I would probably spend say $15 off my $40k savings: I may have seen a friend there, but I forgot exact who etc. I did couple interviews before the China trip, and no offer before my flight 🙁
Technically there was another case that I was laid off, in Nov 2013, very briefly. My contract job ended and they gave me 2 weeks notice via my recruiter. And I recall I saw a “Lord’s Prayer” in the weekend I learned the news, while at a friend’ friend home attending the 1st friend’ baby shower. That “layoff” left me a sour taste as well. But luckily I was interviewing before this and was able to quickly secure a new job offer in a few days.
Strategies
I think the most important thing to remember is never assume your job is there tomorrow. Because we have very little control. CEOs came and go, and little guys (or girls) like us can be let go really at any time. Never assume your work is so important that your boss or your company will keep you forever.
Along those lines, make sure you have the urgent savings account, which should at least cover 6 month of living cost: thinking mortgage / rent, grocery, gas, car payment (if applicable), and health insurance (remember if you pay out of your own pocket, it will not be cheap, as companies usually subsidize some cost aa a part of the benefit). This part is important because it gives you a peace of mind when you got the layoff. Note not every company offers generous severance package. The money you have will also help you have some breeze room when looking for new jobs.
Also get prepared. Always get your resume or LinkedIn profile updated. Test the market once a while. For coders (programmers, developers, software engineers), make sure you do some coding every day / week etc., don’t just sit there and do nothing. Learn something new if there is not much coding work. Nowadays there are so many online free resources for one to learn. In face, in terms of job market, for developers (software development engineers), the job market is usually pretty good. So as long as the developer knows something and can contribute, he/she usually won’t be in the job market for too long. I cannot say that for other positions in the IT job market, e.g., recruiter jobs are very much business (econ) cycle, so there is this famine and feast kind of situation. Similar can be said for the Quality Assurance (test engineer) and manager positions. I saw a director at the credit card got laid off, initially that individual worked for a contractor position as project manager, until eventually going back to similar position as before: took couple years.
But again here we need to be mindful that we are the ones who are responsible for our own careers: e.g., there is a manager position opening up at a software company or an IT shop, and someone hinted that you jumping at the opportunity. Remember what I just said: in terms of the job opportunities disparity between devs and managers, or architects for that matter. At one time of my career, I did become an architect as well, but I decided that was not for me longer term. I like to be closer to the coding.
Tips
Remember try not to be emotional. Also you are entitled to ask “why the layoff on me”? Although the answer is usually “the position is eliminated” or something similar. Remember the employer usually has better resources in terms of legal expertise or lawyered-up. In reality just like in the situation of “being dumped by your significant other”, there is usually signs or legit reasons whey it happened. Ideally you should know and not be caught totally off guard. And hopefully you were waiting for the severance package. For that my advice is not to sign anything on the spot. Just like an offer letter, you may want to bring it home, cool down, talk to someone, before signing anything official.
Also sometimes looking back the writing is on the wall or the hints are usually there. Like the two traumatic (large) layoffs I mentioned above. Get prepared before the actual layoff happens (again refer to the strategies above). No need to overly worry about the look the admin assistant gave you though, just be prepared when you work for someone or a company, you know in the USA the employment is at-will: meaning people can let you know anytime. This is quite different from the families. And don’t got tricked into thinking company’s sometimes misleading “we are families” kind of talk. We are in a employee / employer relationship, for now. We don’t know what’s going to happen tomorrow.
Last but not least, don’t use your company device for anything that’s in your private life. An example, your kids pictures, your family pictures, if you have company iPhone, try not to use it for those sort of things. And if you do, as a minimum try to make copies and delete the pictures on the phone before turning it in. You know the iPhone has settings that allow you to do that, and do it as needed. You never know what other people are going to do to the company devices that you turn in.
Psychological Impact
I don’t think this is trivial. I believe just like being dumped by your first significant other (boy friend/girl friend, husband/wife), this “being rejected by someone” feeling is usually hard, but at the same time it’s also quite common and normal. If you always got what you wanted, and were never rejected by someone, congrats 🙂 I think some of the websites will use the first name or name of your 1st boy friend or girl friend as an option (btw, this does not work very well in the Muslim countries, from what I heard). The reason for that is simple: people would almost never forget that name 🙂
Over the time though, we can overcome this “being rejected” feeling. It never goes away. But it can be controlled, and hopefully we can direct to something or some endeavor that we can use our passion there.
Another potential side effect, is the stigma associated with layoff, which is totally unnecessary – and I touched those good old companies’s specific question “have you ever involuntarily terminated from your job”? Again not legal advice just ignore those. Things don’t always work out as we liked. As long as we learn something and try not to make same mistake (again and again), we are making progress 🙂
Job Search
Last but not least, some job search observations / tips. Related to that, some may point out that although in the US, the employers cannot discriminate against applicants’ age, in reality though, this is still a factor and most employers in fact have preferences on employees’ age. I recall in the company I worked for 8 years, and I know a coworker worked there for 40+ years, and I heard he was laid off after I left (I resigned from that company in Nov 2008, yes it was during the financial crisis :-(. His layoff has nothing to do with my leaving, and I believe there is age factor there.
(Update 09-10-2023) Came across this video “One peril facing job-hunters? Being ghosted” at CBS Sunday Morning. This is actually quite common during a job search, from my experience. Don’t take it personally and move on.
(Update 09-20-2023)How Virtual Layoffs Became The New Normal For Workplaces. Btw, I just learned another contractor got laid off at my work place (my impression is current work place is pretty bad towards contractors, as I was at the other end of the table about 10 years ago, they did give me 2 weeks notice, so it softens the blow a bit). Talking about contractors or contingency workers in the IT and software industry, this is a very common way for an employers to add more people when needed, and get rid of them when not needed. Quite brutal in the sense of “job security” or “provide for family”. Something to keep in mind when jumping ships. || Also from SubStack: Layoff lessons: Four things I wish I knew.
(Update 12-18-2023) Came across this blog post from a former colleague, looks good. From my personal experience, healthcare is a tough industry to work.
Reading Time: 5minutesThe VUE apartment, off Old Olive Road
(Update 2026-05-11) GRAESER STATION (not sure if CC will approve this). If my memory is correct, the neighbors rejected a previous redevelopment plan for a QT gas station.
At the same time, in recent years, I saw quite a few new apartments development along the Olive road, and all those apartments fall inside the School District Boundary. I think I even saw a sign for the townhouse project at Dielman and Olive road, and I quote: ……boundaries of the award-winning Ladue School District and its new $65 million high school & and current $126 million dollars of improvements to the elementary schools……
Naturally there is some anxiety among some current residents and some administrators (and school board members too?) regarding the potential crowding of the schools.
Pre-mature Worry?
From our recent past experience, though. This worry may be pre-mature. Two new apartments developments, the Vanguard Heights, and the Vue, did not bring as many new students as the school district initially feared. Spoede Elementary School made room for the apartments residents, but the apartment residents didn’t come to the party, for the most part. I don’t know about the Oliver apartment and Old Bonhomme Elementary, but it seems it’s similar to the Vanguard Heights and the Vue, from my casual observation.
Next up, it’s going to be the Olive Crossing: look we are going to have 181 new apartment units. Start panicking, people 🙂
And then there is this massive development at the former Bayer Lindbergh west campus: that one is planned to open in year 2025. Note the Olive Crossing project didn’t complete at the beginning of school year (2023 to 2024) as their banner said, so we may assume similar slack for the Bayer campus project.
One may ask why so many apartment developments. One reason I think is the soaring home prices (this is a national trend after the pandemic, btw. I used an example in Jackson Hole, WY in the recent CBS Sunday Morning video), rising mortgage rates, and the affordability and availability of single-family houses in the school district. Another reason is peace of mind in terms of not worrying about the home maintenance work (apartments) and yard work. Note for the condo or townhouses, the owner still has to be responsible or maintain something (AC, furnace came to mind). Anyway in St. Louis County, some of the houses in the city of Ladue, and Frontenac (both are located in the LSD) are expensive, along with the Town and Country.
My priority on school district
I think this is probably interesting to some new people coming to the district. I do believe most parents want the best of their kids when they grow up, in terms of education and career (or business) opportunity. I have lived in the district since year 2005. And in last 8 years or so, I have 2 kids going to the school here.
For the parents, I think the number 1 thing in the America (this is true across the world, I think), is the safety of the kids. When I say America I think people would understand the unique America problem.
Back at the end of the day, we do what we can, and we have to take some risks in life. As old Chinese saying goes – 因噎废食,we cannot stop eating food for the fear of choking. That way we will stave (to death).
Back to school it’s important to know the kids feel safe at school. Sometimes it’s small things, or small gestures, e.g., the other evening, my 13 year old suddenly realized she likely left the school iPad at library. Mom was worried, my 13 year old wasn’t. She said, she will likely get it back in the morning. So this is opposite to what I talked about the other day. Another time I learned from my younger one saying she fell during the recess, there maybe some push when the kids went off to the playground. But it’s really minor and I don’t think the kids were doing it intentional, if any. Middle school may be a bit more challenging though, from what I heard. And there is high school.
“Los Altos High School culture pushes students to participate in a college applications rat race, piling on taxing course loads and extracurriculars in an effort to stand out from their classmates in college admissions.”
I think this is a thread probably worth its own post, and I will write more as my older one going to high school next school year 🙂
I think of one reason that the developers build more apartments in the St. Louis area (both city and county) than single families houses is due to “perceived lack of demand” for single family houses, and I just noticed other booming cities have more housing development, as shown in this YT video.
Other apartments developments I saw/heard recently: Kirkwood downtown, Westport, Grand Ave (near SLU) and Manchester (near Sam’s Club).
Years ago when I think of AI, I only think about the autonomous driving (driverless car or self driving car). The tech behind it is so called “deep learning“, and it’s a part of Artificial Intelligence. Now it’s all the Chatgpt and Generative AI, or in Chinese tech community, AIGC (AIG generated content) is on the rage.
Is it AI or just computer vs human? I recall I could not beat the computer on chess.com (I believe it’ just the computer algorithm behind it, there is no machine learning behind the scene) easily. Note I am not a very good chess player. But I recall Google has this AlphaZero and it beats chess world-champion. The latter probably has some artificial intelligence and some machine learning capability.
Personally I like Apple’s way of roll out AI as time goes approach. For Apple: over the years I noticed iPhone in particular would guess where I want to go, I think it probably looked at my calendar and the usage of map app. Also I like the “featured photo” and “memories” feature on the iPhone photos app very much. The other day I saw the feature photo on my iPhone was my old daughter 1st school day picture. I know Facebook and Google photos can probably do that too. But for Facebook I think I would need to upload the photo that day. Not sure about Google, because I used Android at most for 1 year or 2, among my last 13 years use of smartphone.
Apple rarely rolls out things or features when they are not ready. I recall the rumor (a while ago especially) there was talk of Apple Car. But till today there is no Apple Car been seen in the real world, which is quite different from Tesla, Alphabet (Google) Waymo and Cruise (GM).
Impact on other people’s livelihood
The main worry in addition to invasion or erosion of privacy, is the AI could potentially take over people’s jobs. One area is in the creative arena, artists, writers etc. Below is a real story.
I related question I have: how many of the Twitter Chinese porn video are made by AI, those #pigButcher style of videos. Also this one made by AI
Again, Google, Microsoft, and Meta can’t stop talking about A.I. — here’s why Apple rarely mentions it.
Microsoft $MSFT and Google $GOOGL executives said the word AI or a version of it 145 times during todays earnings calls – CNBC
AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI… pic.twitter.com/PuUS9ndIfJ
This is something I felt we were doing sometimes in the agile software development. It goes like this, we analyze a problem, and we come up with some sort of solution / architecture / design. But during implementation we realized we missed something, especially on the consideration of things like performance. We know we cannot work on the stories forever, so what do we do? We create a new “performance” story and put it in the backlog, meanwhile pushing the existing story forward. This is okay for one time but not every time, in my opinion.
Also, recall a code section in which sometimes people tend to overlook.
Those are scenarios are different
if(condition 1) { // do something 1
if(condition 2) { // do something 2
}
}
vs
if(if(condition 1) {) { // do something 1
}
if(if(condition 2) {) { // do something 2
}
PS: came across this tweet – “coding is 95% copying and pasting”. I think the author may said it in a joking tone. For me seriously I am guilty of this quite a bit in my career. Once I cloned (copied) the javascript code (framework) for a tree structure, and later I started to regret it. One reason I copied was I didn’t know how to properly use an Object Oriented approach there. Also during re-rewrite projects (hope you don’t have to work on those), sometimes there are quite a bit copy/paste as well. I understand sometimes there are valid reasons, e..g., if we just do a “life and shift” without intension to change any business logic. In practice though, there are usually room for improvement during rewrite.
Also, once a business analyst shot me an email shortly after I asked doing a DB update for a month end job. And that person quickly realized the reason for that update and retracted the email or the question. It still shows the sign of a not well organized place though. Believe me that’s not the most disorganized place I worked so far 🙂
(11-06-2023) Design with Reach has some deals for the Herman Miller chairs. The website popup says 20% off (not sure if it can be stacked on the existing 25% off offer).
(09-25-2023) And now I realized I had an issue with the jeans. Googled it and it seems people were talking about it on Reddit. For now I am just going to use a seat cushion. Figured a seat cushion is probably cheaper than a pair of jeans (I have story for the jeans price too 🙂
(07-11-2023) Came across this one – again I am for #reuse #recycle and #reduce.
(06-19-2023) I changed 3 wheels out of 5, all out of necessity 🙂 || Separately, just came across this how Herman Miller tests its chair.
(06-11-2023) One of the wheels broke. I bought a replacement wheel set from Amazon and replaced it in one minute (btw, later on, I found the price is cheaper on eBay. Note this is not unusual, I mean the price difference). I saw a few choices for the wheels. and decided to go with the more expensive “Amazon’s Choice”. Here is a very short YouTube video explaining how to take out the old wheel and put in the new one. I also found there is a headrest for the Aeron chair (FB, used, $98 + $9 shipping); and it’s available on Amazon as well ($152). || Some day I will work a separate post on buying/owing the Herman Miller Aeron chair.
(Update 06-05-2023) I bought a used Herman Miller Aeron classic from an office that’s closed down, near where I live. I feel good about it so far. The other day I just realized this thing is heavy, about 48 pounds per Amazon. Btw, I found this PDF adjustment guide from the Herman Miller website too.
(Original 05-2023) The high-end office chair is not cheap, it costs more than $1,000. Let’s say a chair of $1,350 (note Haworth Fern is in that range), typical workers work 2,000 hours a year. Let’s say a typical worker sits 60% of the time, 1,200 hours sitting on a $1,350 chair. A dollar an-hour chair sitting cost. The chair lasts at least 10 years though. So it’s more like 10 cents an hour chair sitting cost.
Why is a chair important for office workers?
Weight problems, back problems, and other ergonomic chairs may help out. As explained by this YouTube video by Ahnestly (Dan Ahn) here. I don’t want to go much into detail here. I think for normal office workers (people who sit before the computer every day for a while), a good chair, a good posture, and even keyboarding, mouse/trackpad clicking/tapping are all important. Remember, your personal health is your responsibility. And I think standing desks could be a fad; see this Harvard Medical School article for reference. Wearing the Apple Watch (or other equivalent watches, that remind people to stand up and stretch a bit after sitting for a while), and standing up once in a while is the way to go.
Where to buy?
I see 2 (or 3) choices:
Buy new (from the manufacturers or from retailers), usually via the website (e-commerce, such as Steelcase Leap at the manufacturer’s website, Steelcase Leap chair at Amazon, note the Amazon link here is my Amazon Associate link) nowadays. With today’s logistics, they could be shipped from the warehouse quickly, via UPS, FedEx or Amazon. The customer just needs to open the box and start to use it.
Buy preowned. There are also “like new” such as this 3-month-old Haworth Fern asking for $900 (picture shown below), “refurbished” sometimes with warranty and buy used still in good condition. This is somewhat like buying a used car, we need to pay a bit more attention here. It seems nowadays CraigsList (sample search Steelcase chair on local CraigsList) and Facebook marketplace (sample search on FB for Herman Miller Aeron) are two popular places to look. || I think on coming Monday 05-22-2023 I am going to proceed with/check out this one on FB marketplace that’s very close to my home. Note like buying used cars, the prices for used office chairs vary, and again Ahnestly (Dan Ahn) explained it very well in one of his YT videos too: this one is specifically for Herman Miller Aeron (and I tried to follow his instructions when I checked out the chair). Btw, I also created a YouTube watchList for office chairs.
If one likes to have neck support (headrest)
From memory, it seems Steelcase Leap V2 (Amazon*; Steelcase) is a popular chair with headrest option.
The business of office furniture makers
It seems the manufacturers (mainly Haworth, Herman Miller, and Steelcase) do not have a business model like the iPhone. Typically people upgrade iPhones every 2, 3, or 4 years. Office chairs last more than 10 years.
Also, some knockoff products (e.g., this one on local Craigslist) may have an impact on the brand names (Haworth, Herman Miller, and Steelcase). What exactly is “equal to or better than Herman Miller Aeron Chair”, anyway? From the picture, the shape looks like Herman Miller Aeron Chair (picture shown below). It seems this person is doing it (selling used chairs) as a business.
It’s more a consumer win/manufacturer “did okay or lose a bit” kind of situation.
Danger zone
I have had some brief interactions with two manufacturers. In Spring Festival 2009, I visited Haworth for a business trip when I was working for Autodesk. Then recently I started looking into Steelcase stock ($SCS). I heard the Steelcase for 1st time probably back in 2009 when I asked Haworth folks who are the competitors. The two companies are close by, Haworth is in Holland MI, and Steelcase is HQ’ed at Grand Rapids, MI. When I visited Holland, the airplane is from STL to Grand Rapids (I recall it was an old MD DC airplane).
Investor Day presentation (webcast; PDF) for Steelcase 05-04-2023
Quick thoughts after doing office chair research
For Steelcase, a unique problem is its vast used inventory in the market, this is evident on the FB Marketplace and on CraigsList. It will take some time to digest those inventories that were a result of the pandemic (and work from home).
*Note the Amazon link is my Amazon Associates link. Your price will be the same, but I may earn a small commission if you click through the link and buy.
(Update 01-07-2024) Was doing some hashtag#productionSupport this past week, for the most part. At one time, it reminded me once at the credit card company, we let the one (out of 6) node (server) running for 8+ hours during the maintenance window, before we brought the other 5 nodes back online. hashtag#theFunhashtag#withProductionhashtag#SRE
(Original 11-16-2022) Had a production incident recently after production deployment. I was not intimately familiar with the oracle index charge (drop) and impact on other apps (lack of visibility and lack of perf testing environment). It’s hard to prevent this sort of thing from happening but I think as developers we should learn from those mistakes and try to avoid similar mistakes in the future.
For production incidents, it’s best for the dev team (or production support team) to know before the customers call in: especially in the case of external customers. I recall at my immediate previous employer, during pandemic we had this “Screen and go” web app. One morning the app went down: it turns out to be the auto scaler issue. Another time the Twilio SMS were blocked by the carriers. We found out both via the customer service desk.
Technical Assessments
At the credit card company I worked at a while ago, we have this thing called technical assessments for Change. Change is usually a production deployment of code / infrastructure change. The author of the Change need to add the technical assessments of the impacted team, I recall in one change I had to include 16 external teams tech assessments. It took some time and effort for me to get their blessing. But the plus side of all this, if we did this for the mentioned incident above, the incident may not happen (if the impacted team did seriously evaluate potential impact to their apps).
Btw, I just realized I did not write a lot on production, other than this one.