writing

2016 Year in Review: Three Months After Joining Ant Financial2016 年总结:加入蚂蚁金服三个月

· Personal essays

Translated from Chinese — .

Editorial note: personal reflections are preserved; comments about others and incidental details have been shortened.

On this page

Every Job Change Is a Major Turning Point in Life

Joining Ant Financial fulfilled a “little dream” I had back when I was in a second-tier city.

A Bit of Long-Winded Background

In the summer of 2016, I applied for several roles through referrals. Some applications reached phone and video interviews, but none led to an offer at first.

These interviews showed me that technical experience alone was not enough: I also needed to explain my career changes, the problems I had solved, and the kind of work I wanted to do. I moved between overconfidence and self-doubt, and did not always communicate naturally.

My experience in 2015 included a short role, time as a full-time parent, freelancing, and an attempt at entrepreneurship. I had not presented that period clearly on my resume. Looking back, I could have explained those choices more coherently, without trying to guess why each application failed.

After about two months, I decided to return my attention to my current work and keep learning.

However

On a social platform I came across the WeChat of an Ant Financial colleague, and added him. I originally planned to interview again at the end of the year, but there were no more quotas at year-end. So I submitted my resume a fifth time (this time, on the resume, I laid out those free months of 2015 more clearly).

This time I had zero hope (because it was already August, and I didn’t want to interview anymore; I figured I’d wait until after the new year). I just wanted to make another friend, and it’d be even better if I could help solve some problems day to day.

But this time Ant Financial valued my past C++ experience more, and valued reverse engineering skills more. I also felt more at ease explaining my experience and goals.

After 1 month of work handover and vacation, I joined Ant Financial on September 20th.

After joining Ant Financial, I focused on Alipay’s performance and stability. This gave me a chance to apply both my C++ experience and my interest in reverse engineering. For me, finding work that matched those interests mattered more than the outcome of any single interview.

However

After joining, both life and work changed enormously compared to before:

  • Commute of 1 minute became commute of 50 minutes
  • Working 8 to 11 hours became working 9 to 12 hours

This way, the time I spend with family at home each day decreased by 3 to 6 hours (2 hours commuting, plus 1 to 4 extra hours of work).

Terrifying. This is what really experiencing the life of a Beijing office worker is like.

So, I urgently need to find a new balance among life, work, and learning.

When I first started working it was often like this:

  • 24 hours = 2 hours commuting + 12 hours working (10am to 10pm) + 8 hours sleep + 2 hours (washing up at home)
  • 24 hours = 2 hours commuting + 13 hours working (11am to 12am) + 8 hours sleep + 1 hour (washing up at home)

But I saw many colleagues around me were like this:

  • 24 hours = 2 hours commuting + 10.5 hours working (10:30am to 9pm) + 8 hours sleep + 3.5 hours (at home)

And many were like this:

  • 24 hours = 2 hours commuting + 12 hours working (10:30am to 10:30pm) + 8 hours sleep + 2 hours (at home)

For me, with a family, I eventually balanced out this plan:

  • 24 hours = 2 hours commuting + 10 hours working (10am to 8pm) + 8 hours sleep + 4 hours (with family)
  • Excluding lunch, the actual working time is 9 hours, which is normal. But this schedule is already very luxurious compared to colleagues around me. You can see everyone works very, very, very hard.
  • I can only say that normally I leave at 8pm; if there’s a special situation, when overtime is needed I can’t slack off.

Speaking of working hours, a few terms come to mind:

  • Credit vs. toil: I firmly oppose “toil”—if something wasn’t done well, it just wasn’t done well; no amount of toil helps.
  • Attitude vs. results: similarly, no results, make up for it with attitude. That doesn’t work!

Think of beautiful youth—I came here to apply my technical abilities and unearth technical value, not for so-called toil and attitude.

Three Months’ Gains

Three months felt like a year had passed.

Developing such a large App:

  • You must consider disaster recovery plans. Innovative technology needs a grayscale rollout plan.
  • Let data do the talking. Once an App has a large user base, data becomes important.
  • Releasing versions isn’t so casual. Every version is the joint collaboration of many people.
  • Read documentation carefully—the complete functionality of every API, leave nothing out.
  • Don’t fully trust Apple’s documentation. Don’t bet on the accuracy of Apple’s docs; consider disaster recovery.
  • Don’t let emotion replace thinking.
  • Don’t casually question others’ code; have evidence.
  • Give feedback promptly. Leave no gap for problems to occur. Don’t have a thought and then not verify it.
  • When you should express dissenting opinions, express them seriously, with reasons and evidence.
  • When answering questions in IM, consider completeness, and say it all at once. Don’t say it in segments. Problem, cause, scope, solution, time.

Live-Streaming App Development

Before joining Ant Financial (before September 20th), at my original company I participated in developing two Apps, “51VV” and “VV Live.” “VV Live” was the company’s new product; development started from scratch in March, with 5 consecutive months of overtime, and finally on the first day after I left (September 21st), it passed Apple’s review.

I never expected to leave so early. It’s always a bit hard to let go of a product developed with so much overtime. You can’t have your cake and eat it too.

Status of Planned Goals

2016 Plan

Did

  • Studied the source code of SDWebImage, YYCache, YYModel, MJRefresh, Aspects, Masonry, etc.
  • Read the books “iOS Application Security Attack and Defense in Practice,” “The Tao of Objective-C Programming,” “The Hacking Bible,” “Introduction to OpenCV Programming,” “Math for Programmers”
  • Admire navigation site https://admire.so: developed the Python backend.
  • LifeMail: 50% progress, not open-sourced, not finished.
  • Code learning platform: developed https://github.com/everettjf/XSourceNote but later found it not very meaningful, or rather the experience wasn’t good, so I gave up.
  • Tomato Read: https://github.com/everettjf/TomatoRead later, after the Alibaba Cloud server expired, I didn’t keep maintaining it.
  • Blog basically one post per month. Wrote a few articles at year-end and posted them on the internal network—I’ll count those too.

Didn’t Do

  • Source code I didn’t study: AsyncDisplayKit, MachOView, class-dump.
  • Security: didn’t continue to go deeper.

2016 Summary

I did many things, but not refined enough. A good product—you only need one.

Think of beautiful youth; do meaningful things.

2017 Plan

I made a mind map and posted it on git as a record, but I won’t make it public—I’ll open it at the end of 2017.

A simple list:

  • Study more source code
  • Write a book
  • Improve financial intelligence
  • Public blog, one post per month

Detailed mind map:

Portal(closed)(open on December 31, 2017)

整理说明:保留当年的个人复盘,精简了涉及他人的评价与无关细节。

文章目录

每次换工作都是人生的一大改变

加入蚂蚁金服,实现了我曾经在二线城市时的“小梦想”。

啰嗦下背景

2016 年夏天,我通过朋友内推,先后尝试了几个岗位。有的进入了电话和视频面试,但最初都没有拿到录用机会。

这些面试让我发现,除了技术积累,我还需要更清楚地解释自己的职业选择、解决过的问题,以及希望从事的工作。我在过于自信和缺乏自信之间摇摆,表达也不总是自然。

2015 年,我经历过短期任职、全职带娃、自由职业和一次创业尝试。那段经历在简历里没有梳理清楚。回头看,我能改进的是把这些选择讲得更连贯,而不是猜测每次面试没有通过的原因。

大约两个月后,我决定先把注意力放回手头的工作,继续学习。

然而

我在一个社交平台上看到了一位蚂蚁金服同学的微信,加了微信,本想年底再去面试,但年底就没有名额了。于是第五次把简历交了出去(这次简历上把2015年的那自由的几个月梳理的更加清晰)。

这次心里没有报任何希望(因为已经8月份,当时就不想再面试了,想过了年再说了),仅想着多交个朋友,平时如果能辅助解决点问题更好了。

但这次蚂蚁金服更重视我曾经的C++经验,更看重逆向工程的技能。这次我也能更自然地说明自己的经历和目标。

经过1个月的工作交接和假期,9月20号入职了蚂蚁金服。

加入蚂蚁金服后,我主要关注支付宝的性能和稳定性,能够用上过去的 C++ 经验和对逆向工程的兴趣。对我来说,找到与这些兴趣契合的工作,比某一次面试的结果更重要。

然而

入职后生活和工作都相比之前发生了巨大变化:

  • 上班1分钟 变为 上班50分钟
  • 工作8到11小时 变为 工作9到12小时

这样,每天在家陪伴家人的时间,减少了3到6小时(上下班2小时,多出的工作时间1到4小时)。

恐怖。这才是真正体验到了北京的上班族生活。

于是,急需寻找新的生活、工作、学习的平衡。

刚开始工作经常这样:

  • 24小时 = 2小时上下班 + 12小时工作(早10晚10)+ 8小时睡眠 + 2小时(在家洗漱)
  • 24小时 = 2小时上下班 + 13小时工作(早11晚12)+ 8小时睡眠 + 1小时(在家洗漱)

然而我看周围不少同事是这样:

  • 24小时 = 2小时上下班 + 10.5小时工作(早10:30晚9)+ 8小时睡眠 + 3.5小时(在家)

也有很多这样的:

  • 24小时 = 2小时上下班 + 12小时工作(早10:30晚10.30)+ 8小时睡眠 + 2小时(在家)

对于有家庭的我,最终平衡出这个方案:

  • 24小时 = 2小时上下班 + 10小时工作(早10晚8)+ 8小时睡眠 + 4小时(陪伴)
  • 去除中午吃饭,其实工作时间是9小时,还是正常的。但这个时间相比周围同事,已经很奢侈了。可见大家都是很很很努力工作的。
  • 只能说正常情况晚上8点走,如果特殊情况,该加班还是不能含糊。

关于上班时间,就会说到几个词:

  • 功劳与苦劳:我是坚决反对“苦劳”:事情没做好,就是没做好,再苦劳也没用。
  • 态度与成果:同样类似,没有成果,态度来凑。这样没用!

想想美好的青春,来到这里,我就是为了发挥技术能力,挖掘技术价值,而不是为了所谓的苦劳与态度。

三个月的收获

三个月,犹如过了一年。

开发如此大型的App:

  • 一定要考虑容灾方案。创新型的技术要有灰度方案。
  • 用数据说话。App用户量大了,数据就变得重要了。
  • 发版本没有那么随意。每个版本都是很多人的共同合作。
  • 文档要仔细看,每个API的完整功能,不要有遗漏。
  • 不要完全相信苹果的文档。不要把赌注压在苹果文档的准确性上,要考虑容灾。
  • 不要让感情代替思考。
  • 不要随意质疑他人的代码,要有证据。
  • 及时反馈。不留任何问题发生的空隙。不要想到了但不去验证。
  • 该表达反对意见就要认真表达,有理有据。
  • IM中回答问题要考虑完整,一次说完。不要分段说。问题、原因、范围、解决方案、时间。

直播App开发

在加入蚂蚁金服之前(9月20日之前),在原公司参与开发了“51VV”和“VV直播”两个App。“VV直播”的开发是公司的新产品,3月份开始从零开始开发,连续加班5个月,最后离职后第一天(9月21日),苹果审核通过。

未曾想过这么早离开。加班这么久开发的产品总是有点难舍。鱼和熊掌不可兼得呀。

计划完成情况

2016计划

做了

  • 学习了源码SDWebImage YYCache YYModel MJRefresh Aspects Masonry等。
  • 看了书《iOS应用安全攻防实战》《Objective C编程之道路》《黑客攻防技术宝典》《OpenCV编程入门》《程序员的数学》
  • 钦慕设计导航 https://admire.so :开发了Python后台。
  • LifeMail:进度50%、没有开源,没有开发完成。
  • 代码学习平台:开发了 https://github.com/everettjf/XSourceNote 但后来发现意义不大,或者说做的体验不好,放弃了。
  • 番茄阅读:https://github.com/everettjf/TomatoRead 后来阿里云的服务器到期后,没有继续维护。
  • 博客基本每月一篇。年底写了几篇文章,发到了内网,也凑个数吧。

没做

  • 没有学习的源码 AsyncDisplayKit MachOView class-dump。
  • 安全:没有继续深入。

2016总结

事情做的很多,但不够精。好的产品,只需一个。

想想美好的青春,做有意义的事情吧。

2017计划

写了个思维导图,发到了git上,留个记录,但不公开了哈,2017年底公开。

简单列表:

  • 学习更多的源码
  • 写一本书
  • 提高财商
  • 公开博客每月一篇

详细思维导图:

传送门(closed)(open 2017年12月31日打开)