US Virgin Islands

月初的时候突然很想休假,于是就订了一周来US Virgin Islands的行程。这地方从纽约来很方便,四小时的直飞,不需要签证。除了汽车靠左行驶之外其他都跟美国一样。两年前这儿被飓风破坏得很厉害,还好现在重建的已经差不多了,旅游起来并没有什么不便。我是感恩节之前这周来的,刚刚开始进入这儿的旅游季,但游客还是挺少的,各种地方都不怎么需要预约,停车也很容易。这儿的游客感觉一多半都是游轮停靠一日游的,我在的这周有一天有三四条游轮靠港,于是那天就感觉到处都忙一些。

停靠的游轮

国家公园

我来这儿是住在机场所在的St. Thomas岛,这个岛有个城市,居民比较多,商业也比较多。旁边的St. John岛则大部分都属于Virgin Islands国家公园。我来的第二天就乘汽车轮渡去了St. John岛。这个国家公园主要就是一条路,沿途有各个海滩和观景点,hiking trail并不多。我去了这几个海滩:

  • Trunk Bay:可以租浮潜装备。拍出来很好看。有个浮潜的”underwater trail”但其实一般。
  • Hawknest Beach:可以浮潜。珊瑚和鱼还可以。
  • Francis Beach:这个地方我走了一个小trail才到海滩,不推荐这个trail。。路上除了一个修了一半废弃的房子之外没太多好看的。这儿也可以浮潜,据说是一个有可能看到海龟的点因为海底的水草比较多。然而我并没有看到,只看到一大群黄色的小鱼。
  • Maho Beach:这儿是另一个比较有可能看到海龟的地方,我在这儿看到了两只!先是一只小的,还不时浮上水面换气。然后又看到一只大的,背上还吸着两条看起来像小鲨鱼的”suckerfish”。
Trunk Bay

去完这些海滩之后我便一路开到了最东边的Salt Pond走之前查到的一个徒步路线(Salt Pond to Ram Head)。这个路线总共往返2.5英里,我去之前以为是小菜一碟,结果走得异常艰苦。这个trail大多是在海边走,几乎没有什么阴影。在30度的天气里晒着太阳hiking还是有点可怕的。更恐怖的是沿着海边走的时候旁边的海水还会反射阳光,有种被双面烘烤的感觉。

这个trail会路过一片散落着很多白色珊瑚的海滩,还会看到各种本地动植物。有一种红色个头很大的寄居蟹,会在路上走来走去,见到人就装死。还有长得有点少儿不宜的仙人掌。Trail最后爬上一个叫Ram Head的小山头,第二天我在博物馆看历史的时候看到说St. John曾经奴隶和奴隶主打仗,最后很多奴隶被逼到这个山头自杀了。。地方虽小历史却很real。

寄居蟹
珊瑚

St. Thomas

我之后的两天行程基本就在St. Thomas盘桓,比较空。。很多时候都是坐在海滩上看书。有一天搞了一次Scuba潜水,是我第一次潜水还蛮激动的。试过之后觉得还不错,在珊瑚礁不那么浅的地方可以离要看的东西更近一些。不过控制上浮下潜什么的还是有点难的。。好几次莫名其妙的就浮起来或者沉下去了。相比之下浮潜容易掌握许多。在St. Thomas我去过的这几个海滩里面强烈推荐Coki Beach,很多大鱼,而且会游得很靠岸边。基本上在齐腰深的水里就可以看成群的鱼了。我潜水也是在这里玩的。Sunset Harbor Beach在一个resort里面,是个不错的看日落的地方,旁边吃饭的Sunset Grill也不错。

去了一个TripAdvisor上review很好的海盗博物馆,看起来很游客向。看完之后出乎意料的觉得还不错。里面讲了一堆US Virgin Islands当年是如何成为海盗乐园的。还有现代如何打捞这附近的沉船里的文物。有个模拟打捞硬币的机器就是个大型抓娃娃机。

这儿两年前那次飓风还是很严重的。有几个大酒店直接就完全毁掉了。现在去玩最明显的痕迹是路边随处可见遗弃的车辆。有的车窗被砸,有的长满藤蔓,还是有点独特的。

另外这几个岛上到处都是野生的鸡。一开始我是在一个炸鸡店旁边看到,还以为是他们散养的。后来在各种地方看到,才确认这些就是野生的。。我在Sapphire Beanch躺着的时候有几只鸡在旁边绕来绕去的,还啄了我脚一下。

岛上的local food种类不多。一个是pate,大概就是大个儿的炸饺子,一个是炸鸡便宜好吃。餐馆倒是很多,好一点的基本都在各个度假酒店里,去吃吃也不错。

岛上的蚊子很多,很凶猛。作为一个很招蚊子的人我在这儿这几天基本是靠两种药过活:蚊不叮和叮不怕。。即使deet喷雾不离身,蚊子也总会见缝插针的叮到我,隔着衣服叮也已经是家常便饭。我感觉后来去海滩的一大动力就是可以跳进海水止痒。这岛上好多地方都标榜是Paradise,要我说,得没有蚊子才是天堂。。。

很多人都说BVI (British Virgin Islands)更好一些。我这次折腾了一趟轮渡去St. John之后不想再折腾轮渡了就没去。下次好了。

最后提一句US VI的亚裔游客奇少。。我来的几天虽然看到了几个中日泰餐馆,但一个亚裔游客都没看见,也是有点稀奇了。其实这儿对美国东部的人来说挺不错的,比夏威夷方便,比坎昆nice,不妨一来。

Born Remote

Cross-posting a blog post I wrote for Flux Engineering Blog.

Flux started as a remote company, with Max and Nick in California and me in New York. We had known each other for a long time and decided to build Flux as a distributed company from day one. Now Flux has three offices: San Francisco, New York, and Portland.

We are often asked how we handle the remote situation because it’s not very common to see an early-stage startup so distributed. My one-sentence answer is to see it as an advantage.

There are some benefits we can easily see in distribution:

  • Bigger talent pool. So you can hire people from multiple locations without needing them to move.
  • Lower cost, to company and to individuals. Bay Area and NYC are notoriously expensive. Portland is much more affordable. One of our team members actually moved from SF to Portland. We are all glad Flux can provide such an opportunity for him.

But what about the shortcomings? Communication gaps? Hard to bond? Below I’ll talk about what we do to make a distributed teamwork. Some shortcomings can actually be turned to advantages if handled well. That’s why I say we should see distribution as an advantage.

Asynchronous By Default

As a tech company, a majority of our production activities are software development, which is usually done better when people can focus without too much “tapping on the shoulder”. A distributed team structure makes “asynchronous communication” our default mode.

One signature of asynchronous communication is to do daily standup on Slack. We use a bot from Standuply and named it “Standup Steve”. Everyone answers questions from the bot, and compiled answers are posted on a channel. In this way, we get the basic caught-up without the hassle of dialing in a crowded call for 15 minutes.

For a given development task, an initial discussion usually happens in a weekly meeting, which is the only default synchronous communication step that circulates info to get everyone up to speed. Most following work happens asynchronously: writing design documents, coding, reviewing, testing, shipping.

We still do quick calls spontaneously from time to time, but the default way is to communicate in non-interrupting ways such as comments on tickets, wiki, and pull requests.

The default asynchronous communication pattern also enables more flexible work hours. We tend to do more communication and real-time collaboration during the overlapping hours between east and west coasts, and treat non-overlapping hours (morning ET and late afternoon PT) as unofficial “quiet hours”. If someone wants to travel somewhere (like Hawaii) and work remotely, or someone sometimes has an odd cycle (like a real night owl), it can work well as long as they follow the rhythm and people know when to expect them online and open for calls.

A side bonus of asynchronous communication is more knowledge gets written down. It’s natural to write a self-explanatory document to initiate a discussion, which naturally becomes the document and keeps records of some considerations. For deeper tech design discussions, it’s often more efficient that way, because people need time to digest and think things through.

Connect as Human

Human is social. People build initial trust more easily by seeing each other and feel they spend time together. This is true for remote/distributed teams and is probably the biggest “obstacle” people have in mind for remote working. There are a few things we do in Flux to make sure we connect in a more human way, besides codes and documents.

For example, we always turn videos on when having meetings. Face time, even through video, is precious. And it helps convey emotion better and reduce misunderstanding. That’s why we often see intense arguments, sometimes irrational, happen in emails or comment threads, but video or in-person discussions rarely escalate as quickly. We also grow more aware of this “phenomenon” and would switch to video calls whenever some discussion on Slack gets complicated.

You can actually have fun on video calls. Last month we did our first “board game afternoon” on Zoom! We played Avalon with the help of a brilliant website Avalon.fun. It was an absolute blast! Games flew smoothly, so many funny moments and laughters!

We also do whole-company offsite! This week is the second time we gather from three cities to one place to spend a few days together. It’s useful to build initial connections and trust. And some “downtime” to connect outside work is invaluable in the long run. Flux is still small enough we can get everyone together and literally stay under one roof (a moderate house rental from Airbnb).

Last but not least, we have a few channels on Slack as our “water cooler” place, where we post funny stuff from internet or have casual chats. At this “family” stage, everyone knows everyone outside work. Personal details bond people together.

Toronto and Niagara Falls

这些年在美国境内玩了不少地方,但一直没去东部著名的尼亚加拉大瀑布。原因是听说加拿大那边的视角比较好,于是就一直等到拿了绿卡去加拿大比较容易了再去。今年终于找到了个合适的时间去了一趟。

周末一共去了四天。前两天在多伦多,基本上就是吃吃喝喝。逛了一天兼具自然历史和艺术的ROM博物馆(Royal Ontario Museum)。第二天则是去了当年抵抗美军打了一小仗的Fort York和十分touristy的Distillery步行街。个人感觉这几个地方比起来Distillery还不错,很惊奇的发现了一家清酒坊,还有live表演的水平很棒。

但总的来说多伦多的主要亮点还是中餐。。到达之后第一顿就开到中国城随便找了家馆子吃午饭,店里都没什么人,水平却很是可以,很现代,跟国内的馆子基本是接轨的,不像纽约的三个中国城分别给人时光倒流10/30/50年的感觉。于是这两天基本就在一直吃中餐。。还开车大老远跑去东边郊区去吃了家早茶,也很不错还有一些在纽约没吃过的早茶菜式。这两天只有一顿晚饭吃了个本地主打海鲜的法餐,海鲜做的不过不失,倒是额外点的一碟西班牙火腿十分惊艳。两天吃下来我们对多伦多的食物印象很不错。

后两天便是驱车前往尼亚加拉瀑布。这个瀑布坐落在美加边境,一路过去路边无数酒庄的招牌。瀑布旁边是一个酒店林立的小城,还有赌场,某些路口有几分Vegas的味道。我们住的是Marriott Fallsview,窗外俯瞰整个瀑布的view确实对得起这个名字(还有价钱)。在瀑布旁边的路上遛了一趟,然后坐了个几乎人人都要坐的轮渡到近处感受了一下马蹄瀑布的气势。两个小时之后就发觉这地方也没什么其他太多好玩的。据说在航空业不发达之前,尼亚加拉瀑布曾经是美东最大的蜜月胜地。然而飞机旅行兴起之后这儿就没有那么热门了。想想也的确如是,看到这等自然奇观,赞叹和被打动的心总是有的。巨大的瀑布又不花什么功夫就能得到最佳体验(站在边上看),是很适合蜜月这种场合。

晚上瀑布被射灯照成各种颜色,甚是妖异。还有十来分钟的烟花。第二天我们闲得无聊去了一下路上看到的一个寺庙,还有对门的一个沿着河看white water的景点,之后就打道回府了。

这趟加拿大之行还是比较满意的。首先终于去了一下这个从美国最容易去的国家,其次看了尼亚加拉大瀑布算是打了个卡。以后私人旅游应该不会特意再去这片儿了,去办别的事顺便玩玩还可以考虑。

火焰纹章:风花雪月

前一阵子通关了Switch上的火纹新作,英文名是很朴实的Three Houses,中文名却是很神奇的“风花雪月”。玩起来之后发现中文名还挺恰当。

这一作一上来就跟哈利波特似的,主角被扔在一个学校里,有三个学院每个学院的领袖都是一个家族的继承人,然后就可以选择这三条故事线中的一条来打。我选了黑鹫线。每个学院有八个角色,于是一上来就有二十四个角色可以对话互动,让人眼花缭乱。好在战斗的时候只有自己选定的学院的八个人,外加挖角挖来的人。早期能挖来一两个最多,之后如果认真送礼物培养好感度的话能挖来很多。但我也没仔细研究好感度这部分,于是基本就用早期阵容一直打完了。

本作不是战棋游戏常见的那种一关一关的结构,而是有个月历,然后每个月结束的时候打一个主线剧情的关卡,其他时候每周自己可以选择做一些不同的事情。基本上每个月一定会做至少一次的事情是散步,也就是在学院里跑来跑去跟所有人对话。对话量相当之大,而且还是全程语音。本作战斗其实又比较简单(我选了困难难度但还是挺简单的),于是感觉对话的时间比战斗的时间还多,很容易错觉在玩galgame。好处是人物塑造确实不错,角色虽多,但每个人都有很多细节,形象很立体。坏处是感觉不够hardcore,估计DLC新加的疯狂难度会补足一下这一点。

三条故事线使得这游戏的可重玩性很强。剧情里还有数次选择感觉会影响主线剧情的分支。我只所以没怎么努力挖角也是觉得如果重玩的话还会用到那些别的学院的角色。但是最近好游戏很多(Astral Chain和Monster Hunter World),所以通关之后也就搁置了。回头游戏荒或者想玩战棋的时候拿出来二周目好了。

North Cascades National Park

月初去Portland出差之后去西雅图周边hike,顺便去了据说人很少的North Cascades国家公园。

去了之后我大概明白为什么这个公园离西雅图这么近但访客很少了。主要的一条横穿公园的公路上几乎没什么“景点”。仅有的一个viewpoint就是看Diablo Lake。这个湖很绿很好看,里面有人划自带的皮划艇。不过就这么一个点儿实在不值得开车几小时来看。所以这个公园游客才这么少,连门票钱都不收,纯免费。

Diablo Lake

但这毕竟是个在一堆大山中间的国家公园。风景还是有的只是不太容易看到。我选了一条Hidden Lake Overlook trail,八英里,上下3200英尺,爬上山脊去看群山环绕之中的一个隐湖。不得不说美国人民在给湖命名方面想象力相当匮乏,这些年去过数不清的Hidden Lake, Long Lake, Mirror Lake。。。

到这个trail起点的路上我就先被路况被吓到了,好好的高速路上开着,导航突然就让我往旁边的一个全是大坑的土路上走。停车研究了半天才确认这确实是去trail起点的路,然而这路上全是水道井盖儿大小,半尺多深,鳞次栉比的大坑实在看着瘆人。我在那儿犹豫了半天看见好几辆SUV跌跌撞撞的冲了上去,只恨自己只租了辆Camry。这时候突然冒出一辆蓝色小车,看起来甚至像电动的,居然也停都不停的冲了上去,看得我都愣了。于是我也心一横开始往上开,硬是把车开出了坐船的感觉……折腾了半天居然也到了。

我开走之前错误的预估了这个trail的难度,因为hiking project上只给打了蓝黑色的标记我就以为是moderate而已打算走一下热身的,走起来才发现这正经是个strenuous的。。无数的上坡,越往上路还越难走,爬石头踩雪的路段都有。以后得仔细看看数据了。

Hidden Lake

虽然走完已经废了,但这个trail的景色还是很值。前面一段是在树林里,可看的不多,好处是不晒。。走三分之一之后进入高山草甸景色的地带,这儿就很好看了。满山草地里点满了野花,到处是融雪汇成的小溪沿着山势奔流而下。随着不断攀高,周边的几座雪山一一从近处的山脊背后浮现出来。最后的三分之一路程则是在乱石和积雪中间穿行,路边还偶尔会看到上来扎营的人的帐篷,在刀削一般的岩壁下面显得十分渺小。翻过山脊看到深蓝色的Hidden Lake那一刻,有种feel alive的感觉。看到湖之后再往上爬一段乱石还可以到一个巡山的人住的小屋,先到的backpacker可以在这儿过夜。下山的时候发现远处的雪山因为光照角度的原因傍晚看不太清,这个trail还是比较适合早点爬。下到山脚树林里的时候天都暗下来了,树林里面更暗。这时候还遇上了几拨在往上走的人,每次在trail上遇到这种情况我都很好奇他们是打算干啥。。感觉天黑都上不到适合露营的地方。其中还有一家子是拎着水桶抱着被子的架势,令人咂舌……

去完这个trail之后,我歇了一天又去爬了Mt. Pilchuck。这个据说是西雅图附近很热门的一个trail,确实人也不少。令我大跌眼镜的是到这个trailhead的路也很破,也一堆坑,还很长!难道以后来PNW这边hiking都应该租越野车?