0%

一些重要的日子接踵而至,30岁生日,中秋,亚麻五周年纪念日。好多朋友问我30岁是什么感觉,我一般反问一句:你觉得29岁364天和30岁01天又有什么区别呢,以此来展现我的豁达。说我完全不在意是假的,但不似老友记里瑞秋和乔伊的那种在意。今天借此机会聊聊最近朋友推荐看的两本书《月亮和六便士》和《人性的枷锁》[1],出自同一位作者,毛姆。

小时候的我,是自认为天才的,一个字,狂!(现在承认起来真羞耻啊)主要那时候我眼中个人价值评价标准比较单一,学习成绩好就完事了,或者说,我只要完成这一个任务就行了。小学和初中的课程内容没什么挑战。典中典,小时候的梦想是:”当科学家”。[2]

让我们来看看《月亮和六便士》讲了一个怎样的故事 - “一个英国证券交易所的经纪人,本已有牢靠的职业和地位、美满的家庭,但却迷恋上绘画,突然弃家出走,到巴黎去追求绘画的理想。经过一番离奇的遭遇后,主人公最后离开文明世界,远遁到与世隔绝的塔希提岛上。他同一个土著女子同居,创作出一幅又一幅使后世震惊的杰作。在他染上麻风病双目失明之前,曾在自己住房四壁画了一幅表现伊甸园的伟大作品。但在逝世之前,他却命令土著女子在他死后把这幅画作付之一炬。”

我惊觉小时候的梦想太过于儿戏,甚至现在的也是。我看过书之前觉得梦想是说”哦这很cool,而且我似乎有一点点天赋,我想去做这件事”。现在我意识到,梦想在我嘴里太过于轻巧,让我忽略了其中的痛苦和煎熬。书中查尔斯为了梦想,放弃了优渥的生活环境,抛妻弃子,自我流放,贫病交加以致双目失明。他在一层层剥离自己的身份,他对任何事情都漠不关心[3]。梦想更像是一个诅咒,他说,”我必须画画,就像溺水的人必须挣扎”,这不是他追逐梦想,而是他被梦想俘虏了。实现或者说接近梦想的人,似乎都要忍受常人不能忍受之痛,他们偏执,自私,冷漠。这么一看,我离”天才”和”梦想”可太遥远了。

当然现实总对人重拳出击,不必要等到我看这本书。自认为天才的日子到高中就戛然而止。当你的同桌是清华哥并且你经常抄人家语文和英文作业的时候,你不得不承认自己是个小辣鸡。如果生活是一本小说,这时候正确的展开是我奋发图强实现逆袭。Well,现实是我迅速地接受了现实。我仍然在努力,但是当成绩一直没啥起色的时候,我放弃了去思考阻止我前进的原因,选择维持现状。我不再充满斗志,而是怀疑念书的意义在哪里。我掉进了虚无的陷阱。

类似的疑问伴随了我目前为止人生的各个阶段:大学里,选专业,冲着绩点高的去呗,选了个电气。进了电气,学专业课痛不欲生,又想这大学读了个啥。毕业想考研还是出国,华哥动之以情晓之以理说申CS,加上我本身对于专业课的不耐烦,那就CS。到了硕士,上课和找工作充斥了我的生活。工作之后,L4盼着升L5,L5盼着升L6。这个项目上线了,歇一歇,好,继续下个项目。短暂的目标能让我摈弃杂念,但是一旦闲下来,我觉得不行,太短视了,又开始琢磨人生的意义。我觉得还是需要有一些梦想,但是却说不清。为了说服自己,我把梦想,或者目标,调整成为了自由,或者说争取选择的自由 - “挣到足以让我的家庭好好度过此生的钱,不用为了五斗米而折腰,之后退休,去做一些想干的事”,朋友们知道我有一个很蠢的wishlist - 标题就是”等我有钱了”。

让我们来看看《人性的枷锁》讲了一个怎样的故事 - “主人公菲利普逐渐摆脱如下枷锁的故事:生理的残疾、宗教的束缚、艺术上天赋的缺位、经济上的不够独立、情欲的纠结以及他的爱情”。
书中有个人物,克朗肖,他的人生哲学是”为所欲为,只是要小心警察”,以利益驱动。我们的主人公菲利普一开始被说服了,他觉得这是精神上的”彻底解脱”和”绝对自由”。然后克朗肖死了,孤家寡人,穷困潦倒,毫无价值。 对于自由人来说,”为所欲为”的真理和命定论相伴相生,它们使他拥有最大勇气去行动,又不需要自己去承担行动的后果。然而这种无所承担却恰恰暴露出近代以来一种前所未有的危机,即虚无。[4] 最后菲利普因为当舔狗[5]以及投机失败露宿街头的时候,他反而悟了,开始坦然面对了,即使”生命毫无意义”,他没有放弃热爱生活。菲利普曾希望去游历,去西班牙去神秘的东方,但是最后,他选择在海边小镇行医,与心爱的姑娘长相厮守,这是他为自己找到的人生意义。书真的很精彩,我也推荐大家看,三言两语说不出精髓,应该能看到很多自己的影子。

我愈发希望自己能够面对任何一种生活的状态。目标啊,梦想啊,名利啊,自由啊,或许不是生活的意义,但是它们是支撑我去探索生命意义的拐杖。关于梦想和自由的答案我还没找到,希望自己在路上,如果终我一生没有找到那也没有关系。

啰里八嗦了一堆,很多问题从小到大我可能一直没有时间去好好想,乘此机会好好捋一捋。再次感谢我的家人朋友们,你们是我生命意义中很重要的一部分。

[1]《人》一书中还cue到了《月》一书的主人公,梦幻联动,”毛姆宇宙”实锤了。
[2] 我妈偶尔会把这件事情拉出来说,她可能有点学历崇拜的。硕士刚毕业的时候我妈怂恿我说”你去读个博士吧,搞搞科研”。我说你可拉倒吧,我几斤几两自己还是有数的。
[3] 对,他是个彻头彻尾的asshole
[4] 这段我有些观点引用了https://book.douban.com/review/2198305/
[5] 其中包括菲利普出钱资助绿他的人私奔??类似情节在《月》一书中也有出现,我建议作者改名”牛姆”

叠甲 - 所有的tips都是我感觉我可以提前考虑到的地方,不代表一定就是最好的方案,毕竟签证不确定性就很高。

Checklist 我准备的材料

我把面试只用到了护照和I797原件😅

  • 护照
  • DS160
  • 预约面试成功的确认信
  • I797
    • 最新的一张原件和护照被一起收走了,最后会被一起还回来
  • I129 & E9089(aka LCA)
    • 应该在律所帮你file H1B的package里面
  • 签证费的付费证明
  • 照片
    • 我在漂亮国拍的照片被工作人员无情吐槽: 美国拍的照片质量都很差😅 - 在此拷打公司badging office。但她还是抬了我一手,并给了我一个建议Tip1 : 护照照片可以在加拿大拍,随处可见的London Drugs,使馆附近就有。我看到有个姐们就是因为照片不过关所以重新去拍照片再排队,挺浪费时间的。
    • 工作人员:你照片什么时候拍的?我: Augest 23rd 2PM PST. 工作人员蚌埠住笑了:你大可不必这么详细。一般回答last week/month就好了
  • 在职证明EVL
  • 工资单 paycheck(最近3个)
  • 银行证明 statement(最近3个)
  • 简历 (朴素说人话版)
  • W-2 (最近1个)
  • SSN
  • 驾照
  • EAD Cards
  • Offer letter
  • I20
  • 成绩单 & 毕业证
  • Job description
  • I140 approve notice
  • I94

Timeline 时间线

  • 2023-8-21 周一 9AM: 达到使馆
    • 我预约的是9点45,提早到了,但是可以进。排在我身后的印度姐姐预约的11点多,但是也直接进使馆了感觉并没有人查😅。但网上也有说提早去被赶出来的,大家自己判断
    • 使馆对面就有一个public parking
    • 手机可以寄存,包我是没带,手抱着材料
    • 使馆的流程可以看看这个帖子,图文并茂
  • 2023-8-21 周一 10:30AM: 面试结束
    • 面试官问的问题
      • 你的工作是什么。我说software engineer,woot.com,他问这是个网站?我说对,amazon subsidiary, serves retail customer的。我刚想科普一下工作内容,被无情打断,看来他根本不敢兴趣😅
      • 你在这儿读的书?我说对,在LA, USC,computer science
      • 你的收入是多少。我回答了年收入,就基础工资
    • 面试官最后会直接说你已经被approved,大概一周(虚指)能拿到护照
    • 我过了几个小时在这个网站 上查visa status,显示的是 Approved
  • 2023年8月22日周二 10AM: 这个网站 上查visa status,变成的是 Issued
    • 这一步很关键,代表已经贴签。不然可能会有所谓的暗check/卡approved坑,详情请看这个帖子,写的很好。
    • 我选的取护照的地点是BLS,后来才知道是印度领事馆,这波属实是深入虎穴了😅。 BLS不会在你visa status issued时候给你发邮件的,所以你不幸也选了BLS,别紧张。如果你还能改,Tip2:选护照pick up location的时候,最好避开BLS。Canada Post会是更好的选择,我看网上选Georgia St拿到护照会比较快,比如周二Issued周三就可以拿了.
  • 2023年8月25日周五 3:15PM: 收到邮件提示我可以去取护照了
    • 周五下午3点15通知,4点半BLS关门,我在richmond,BLS在downtown,摆明了给我上上强度😅
  • 2023年8月25日周五 4:15PM: 取到了我的护照和I797
    • 排队的时候大家都反应大概等了得有一个星期
    • 网上有说法领护照的时候如果驾照地址和我现在居住地址不一样也许会被卡。因此我提前上DOL网站打印了change of address.实际上工作人员根本不在乎,可能周五他只想下班吧😅

总的来说就是签证是个不确定性很高的事,突发情况在所难免,hope for the best, prepare for the worst. 如果真的糟心,xhs会有人post一些帖子和更新也可以去交流一下。
最后感谢汪航艺的鼎力支持,8.15刷到的坑位,8.21就要签证,没有他的收留是真要大出血,ndnd

我从小就是一个怕孤独的人。

  • 所以,我有很多(?)朋友,也是真心享受和朋友一起玩那种快乐的氛围。总说要享受当下,但每次我玩得越开心,心里就会越害怕:“要是我们之后关系淡了怎么办”。我曾经偏执甚至于有些理想主义地认为,只要花时间去维护一段关系,它就有可能长久下去。但事实并非如此,太多的不可控因素了,可能突然间,就是你们俩这辈子最后一次见面了。

  • 所以,我从小到大没有正儿八经地独居过,从高中开始就至少有一位室友 - 高中10位(??),大学5位,研究生3位,工作之后3位[1]。室友是一个相当特殊的存在,毕竟朝夕相处,我也喜欢逮着人唠,聊着聊着感情就深了嘛。然而由于各种各样的原因,毕业,或是个人生活的变化等等,室友关系总会迎来一个终结。悲观一些说,联系必然不会像之前那么频繁,关系必然就会淡下去。

关系越亲近,越害怕失去羁绊[2][3]。当有类似的触发事件时,我的情绪波动就会很强烈。比如,每次和室友分别我总要眼眶湿润一下,百般情绪涌上心头,但又不想被别人看到,只能偷偷别过头去。过去一年我触发了多次强烈的情绪波动,整个人状态就很不对头。虽然年纪在增长,我好像没有变得沉稳,而是更激进了。在这里感谢朋友们的帮助和支持。无论是你们耐心地劝导,细致地分析,抑或是当头棒喝,甚至只是安安静静地听我唠叨或者发张沙雕图,都给予了我很多力量。犯蠢的事也没少干,希望你们谅解。现在回过头来看,我惊讶的是竟然放任自己沉浸于情绪之中,茶饭不思。why有一个很形象的比喻:“感觉我副驾驶上躺了一具僵尸”[4]。这其实违背我理性的信条。好在不少个深夜,我有机会扪心自问,你到底在纠结什么。

这儿插一张很有意思的图,藤本树觉得人死后会去电影院,我觉得是个不错的地方。

我琢磨出这么一个办法。一旦思绪开始不受控制地自由落体,就提醒自己:作为一个电影的导演和主演,你想给观众(也就是自己)呈现的是什么?我可以不太在乎别人的评价,但是不能忽视对自我的拷问。前几世的你难道想特么看你整天胡思乱想浑浑噩噩?我希望最后进场的时候能得到欢呼和掌声。人一辈子就900个月,醒醒吧哥们!!

这一次,看着空荡荡的公寓,我选择用力地和孙工握了握手:“这一年过得很愉快,以后常联系”。这样更像是男人之间的告别。

我好像没有那么害怕孤独了。该快乐还得快乐,但是不如意的事,就当人生历练嘛。我不会再迷茫了。

[1]这可以凑一个排了
[2]自从唐总给我解释了他对人与人之间羁绊的看法,我就迷上了这个词
[3]家人除外,血浓于水。FAMILY!
[4]虽然掉秤效果拔群lol

想起2022年中的时候,各个公司手里甩着钞票招人,10个人里有10个人想着跳槽。那时组里升职论资排辈我估计顺位比约基奇还低,日常工作能轻松应付,感觉到自己陷入了舒适区 - 唯一不舒适的是钱不够多。我寻思着,这不行啊,一拍桌子,大胆立下“三年计划” : 刷题!跳到另一家公司拿大包裹然后干三年再回来亚麻空降L6 - 额,拿更大的包裹。当我兴致勃勃地开始执行计划时,计划赶不上变化,整体形势下行,我就被困住了。一年后,我升了Senior。那这是咋回事呢,我们不妨来回顾一下。首先叠个甲,纯粹个人观点和随想,没有普适性。

+++ 运气

客观条件是我们这个小org太特么需要一个senior了,没有senior很多事情周转不过来。去年的一波跳槽风波,我由于手脚太慢,导致拔剑四顾的时候,公司都开始裁员了。手脚快的组里兄弟们跳了个一干二净。那时候每周一个散伙饭。我突然变成了后端组工龄最长的人,那自然而然就轮到我了。我更像是被推出来的一个代表 - “名誉senior” - 有了我很多地方就可以便宜行事。AKA风口上的猪。

+ 心态建设

我之前有个帅哥老板,长得有点儿像祖国人,能力很强。从他身上我了解到了

  • 正儿八经项目的管理该是怎样的 - 这点略过不谈,我不是很会
  • 面对不同意见正确的心态该是咋样的
    • 不气盛还叫年轻人吗?所以我初入职场很多遭遇到质疑的时候,不是先思考到底对方说的对不对,而是直接维护自己 - “你说的可能是对的,但是我一定没错!”。这个心态回过头来看是不好的,只要对面不是故意在针对我,那么ta提出的意见,一定是对解决问题有帮助的。Embrace a growth mindset.
  • 如何处理自己力所不能及的事情 - 简单来说就是摇人。

+ 学会问一个好问题 & 知其所以然

这两点一起讲是因为受到同一个人启发。2018年我刚加入组里的时候组里一共就4个人,其中一个senior,他看起来很凶,相处久了才发现他是一个很亚撒西的人(这是后话)。他写码如喝汤,我对他是满满的敬畏。 我刚进去问题很多,但不能只逮着一个人问,怕他们烦我,所以最后很大一部分问题我都不得不硬着头皮去问senior。每次我都贼紧张,因为他特别喜欢反问我。这就倒逼我

  • 学会问一个好问题。说实话工作中有两种问题很难回答:
    • 贼宽泛的问题。这是工作,不是哲学。你这让我怎么回答嘛,打小作文?一般这时候我就一句反问甩过去:你到底从我这里想得到什么。所以,我的理解是问以前尽可能地拆解问题。
    • 伸手党或者是那种单细胞生物才能问出来的问题(说实话后者第一次我完全可以理解,但是一而再再而三就不好了嘛)。我希望看到的是问问题的人做过了研究,试过了XYZ的方式,但是还是存在问题,甚至列出了觉得可能出问题的地方在哪里,等等。
  • 试着去理解问题的原理。Senior不单单是帮我解决问题,还给我画一堆图解释原理。说实话当年年轻的我不一定全听懂了,但是刻下了一个思想钢印:如果你想要触类旁通举一反三,还是得知道原理。莫非这就是破产版的第一性原理?

+ 贵人们

有太多的人我需要感谢了,很多与你们相处的点点滴滴我都记在心里。这里我必须插一张SCARE双雄(熊)的图。 篇幅有限我就不一一盘点了,如果想和我“忆往昔峥嵘岁月稠”,欢迎来私聊我:)

+ 解决问题的能力

我认为顶头老板们关心的啥:我给你一个问题,你能不能把这个事办好了,办得漂亮。沟通技巧,技术水平,组织能力通通是为了解决问题而服务。我觉得我有“在当前资源配置下解决复杂问题的能力”。是不是任何东西加了一堆限定词就感觉没这么厉害了?比如93%赛季冠军(对不起阿森纳球迷)。当遇到一个棘手的问题,老板信任我,我了解的技术也能支撑我解决问题的难点,我有认识的大佬可以咨询,我能管好一起干活组员的进度(毕竟呆了4年,确实是有一些面子果实的,工作比较容易开展),最后解决问题。慢慢地老板自然觉得把最艰巨的活交给你放心,机会这不就来了?

+ 建立和同事之间的信任

  • 首先为什么?
    • 同事的反馈会在升职中起到相当大的作用。
    • 你带一个项目,如果手下都是你的仇人那这边建议直接自爆,人心散了队伍不好带的。
  • 其次怎么办?我觉得没啥特别的技巧,无外乎四个字,真诚,时间。
    • 时间好说,感情嘛,慢慢培养。前端组是我们组的上游,每一个同事,我都能很快回忆起我们共事的经历,合作项目,解决SEV2,一起赶ddl等等,虽然可能过程很波折,但是最终都能圆满完成任务。这样一来升职的时候大家自然有好的故事讲。
    • 真诚我理解是“以直报怨,以德报德”。在力所能及的范围内尽力帮助有需要的同事,口碑这个东西会发酵的。当然也不是说来者不拒,学会拒绝也很重要 - 或者微笑地和ta说:XXX有更多的上下文,要不你先问问?对于帮助我的同事我会心怀感激,不吝啬赞美。对于已经发生的事情不抱怨(做人也是这样?)。比如一次我在新墨西哥玩的时候打牌真酣的时候被page,陪同事打了1个多钟头电话,虽然心里万马奔腾但是还是要保持微笑。

+ 管理自己的职业生涯

You own your career,这也是我每一任老板给我灌输的概念。我很少见到“舔狗式”老板,就是说追着要给你升职那种(可能我还不够强)。所以呢,主动一些,表现出自己的野心,给老板上上强度。我很多升职材料都是尽量自己多提供一些素材,帮老板减减负,双赢,毕竟自己也最了解自己做了什么。

- 技术

我不觉得我自己技术很强。我面对的是大量的业务逻辑,技术选型也不能说很复杂,高并发什么的一定抓瞎。论技术我一定比不过AWS的。学,学无止境好吧

- 商业写作

就是写one pager, six pagers之类的,语法,技巧等等。这方面我到现在仍然是依托答辩,我在努力学习答辩上雕花。

- 社交

我是尽可能避开happy hour和team event(团建),闲聊太特么尬了。我真要说话,那也只在聊到我感兴趣的地方插两句。所以社交在我看来没啥影响。当然啊,这不是说我和组里人关系差,熟悉我的朋友应该还是认同我是有一点幽默细胞的。我的老板大老板们,都贼能讲故事,我只要做一个耐心的听众,适当锐评两句。

? 动力

我对工作的热情会有峰和谷,也经常会迷茫,彷徨,有特别划的时候。而且也会和我个人生活的状态挂钩。不得不承认动力确实很难保持。Always day1?毕竟我身上肩负着要成为VP的别人的期望:)。

Memos Github Link is a lightweight, self-hosted memo hub. Open Source. Currently there are docs supporting manage hosting link on Render.com, Fly.io, PikaPods.com.

I tried to deploy Memos app on AWS with ECR, ECS Fargate and Application Load balancer(ALB). JUST FOR FUN. Because it is too EXPENSIVE. Memo is a long-lived app and almost certainly needs a load balancer. ALB by itself will cost $16.2/month.
My setup has no HTTPS, no CDK. It is against a lot of best practices :).

I will recommend using Fly.io

  • You can manage the whole thing at $0!
  • Automatic db backup to S3 bucket with easy setup
  • Easy to upgrade

I quickly moved to Fly.io after I finished this blog :)

Assume you already have a AWS account.

Local code change

Deploy to ECR

  • Search ECR in AWS console. Click Create repository, give it a name, for example, mymemos
  • You will see your docker on the dashboard. Click on your docker repository
  • Click View Push Commands, and follow the instruction there to deploy your app

Create ALB

  • Search load balancers in AWS console. Find EC2 and on left panel click Load Balancers
  • Click Create load balancer, choose Application Load Balancer
    • Give it a name, choose VPC and Security groups
    • Under Listeners and routing tab, click Create target group
      • Choose IP addresses as target type
      • Protocol HTTP and Port 5230
    • Select the target group just created
    • Click Create Load Balancer

Config Security group

  • I only have a default security group, select it. Under Inbound rules tab, click Edit Inbound rules
  • Add Type Custom TCP, Port Range 5230, Source 0.0.0.0/0
  • Add Type HTTP, Port Range 80, Source 0.0.0.0/0
  • Save it and go to outbound rules, Add Type Custom TCP, Port Range 5230, Source 0.0.0.0/0

Config ECS

  • Search ECS in AWS console, on left panel, click Task definitions
  • Click Create new task definition
  • Set Image Url to XXXXXX.dkr.ecr.us-east-1.amazonaws.com/mymemos, you can get it from ECR page
  • Set port tp 5230 with is the default in memos app
  • Click Create if you don’t want to do other fancy settings
  • Click Cluster on left panel, then Create cluster
    • Set Cluster name, add VPC and subnet
    • Click Create
  • Select the cluster you created
    • If you want to save money, consider Fargate Spot. 70% discount!!!
    • Under Services Tab, click Create
      • Under Deployment configuration, choose the family created in the previous step
    • Under Load Balancer, choose the ALB and target group created in the previous step
    • After service is created you should see a task running.
    • Go to your broswer with your ALB DNS name you should see the memo homepage let you to create an user
    • In the s3 bucket you should see a folder name with memos_prod.db/.

What’s Next