在2014年离职之前,我在绿盟做开发代表,和一群小伙伴一起开心地做下一代防火墙。我主要负责开发……*.mpp,嗯,用微软project做我们的项目计划,不过,我们还真有个专职的PJM。所以,有空我也会写写PHP。2014年跟随我的前任领导兼大土豪,开始了一段创业之旅。首先,我们做了一个android APP,关于如何才能为android手机省电的。后来,土豪老板决定做个智能硬件,关于如何才能随时净化空气的高档产品。下面就是我这三年来,做过的一些事情。
阶段一:Android APP
充当Android开发工程师
之前没做过Android,另外我也不喜欢Java这种简单问题复杂化的语言。不过既然需要,那就学吧,所以我学了Java。学完java,写过android之后,除了不喜欢java,我连android也不喜欢了。写个旧函数吧,告诉你这个废弃了;换个新函数吧,告诉你低版本Android不支持。然后代码里面就是if-else,或者变成了一个自定义的函数封装。
充当Web开发工程师
其实就是弄了个公司的官网,搭在了AWS上面。
充当逆向工程师
用Procyon & Luyten 反编译了umeng的sdk,分析它发送的数据格式,然后用python实现了其中的一部分功能。当然,打死我也不会说为啥要做这样一件事。我能说的是相对于JD-GUI,使用Procyon的优点在于不会出现空enum。
充当IT工程师
公司成立之初,我搭了GitLab起来,我司的代码从开始就使用了git,在本地开代码分支比svn要好用,gitlab可以开issues,这相当于为我们省了bugzilla这样的系统;还可以评论代码,又省了review board这样的代码评审平台。鉴于人少项目小,CI的事情就没有做了。 当然,作为IT工程师,还有公司内部网络,员工IT支持之类的份内工作。比如wannacry出现的时候,我还用metasploit尝试攻击了每个人的电脑,以确保不会中招。
充当UI设计师
除了代码,我也偶尔客串一下设计师。画画小图标。比如这一组:
表示耗电量大
表示链式启动,即一个app的启动会带起来一桶app
表示不断重启,一种像小强一样生存的app
表示占用了大量内存
也尝试画过logo,我觉得还挺好的,不过老板不喜欢这个。
充当BD做推广
各个APP商店的上架&更新;什么什么首发位置的申请;什么什么编辑推荐;什么什么合作换量。有一天下载量巨大,找了一圈没找到是哪里,直到有人来问我“你们在xx是怎么做到首页的?”我一脸懵逼的实话实说我也不知道。跟LBE的合作换量,对接的小哥都离职了,我好像也没还上人家给我们推广的量。
阶段二:智能硬件运动净化头盔
我们的土豪大老板在做了一年多APP之后,决定公司转型开始做智能硬件——做个随身提供净化空气的头盔。这个跨界跨的还是有点苦逼的,对当时的团队来说,这是一个从0开始的过程。
充当产品设计师
无论如何总要先画个草图吧,比如这样的: 比如这样的: 这是在我学会用AutoCAD之后,画过的最NB的产品原型了。 后来,有个设计师入伙了,我的设计生涯基本也就告一段落了。
充当结构工程师
从外观设计到能做出产品,还差一个结构工程师。这和软件领域从界面设计到最终产品只差一个程序员是一样的。在摸索了很久之后,我才发现我们当时的情况“只差一个结构工程师”了。 这是一个小部件:
这是整个随身净化器的主机部分的3D图,以及最后经过3D打印之后的成品。定位柱,卡扣什么的该有的都有了。基本像是个东西了。
后来,我们有个牛逼的结构工程师入伙了,我的结构工程师的生涯也告一段落。
说真的,我一度产生过我觉得我没准还真能做个结构工程师的错觉,直到正经的结构工程师甩给我一本薄薄的《机械原理》,然后想起来上学时《通信原理》的痛苦体验,啊~~我讨厌所有工程领域的《xx原理》
充当电子工程师
按键本来是个简单的小件,附属于我的主机,而且我都做出软键盘的成品了。
这个被嫌弃说手感不好,另外灯光不均匀,要换成P+R键盘的话,就要自己做电路板了。难点其实不在怎么画电路,而在苹果电脑上常用的设计工具并不能用,比如AD。找来找去用了Eagle,结果做板子几乎都不接Eagle画的PCB,唯一接的一家要200块钱。愤而自己把PCB图导出成光绘文件,这样板厂不承担转化失败的责任,打样费用就只有30了。
我也一度产生过我能做电子工程师的错觉,直到有一次,烧录单片机的时候,连带我的苹果电脑都冒烟了。
虽然放弃了做电子工程师的念头,不过我知道怎么在苹果上用TI的msp430-gcc交叉编译出MSP430上的程序了,也知道树莓派怎么用GPIO输出pwm,从串口读取数据什么的了。
充当3D打印机的操作员兼维修工,兼模型制作
我们买了个Makerbot Z18的3D打印机,可以非常方便制作和验证产品模型。这里有个视频,可以感受下,对了我还会制作延迟摄影视频。
https://www.bilibili.com/video/av17446876/
但是吧,这玩意喷头总是堵,我现在已经会熟练修理Makerbot的3D打印机喷头了。
3D打印机打印之后的表面并不是那么光滑,会有一些纹路,像上面那个盒子。所以产品模型的表面后处理我也会做,比如下面这个头盔,用牙膏补土+水砂纸不断的打磨,从300号打到1000号,然后喷了漆。
充当各种杂役
还有些其他的工作,总要有人做 比如联系设计公司咨询设计外包的事情,联系手板厂咨询手板制作的事情,联系条码管理中心申请商品条码。
工作之外:我的业余时间
工作之余,也尝试做些其他的事情,比如:
安全测试和代码审计
土豪老板的朋友的网站,类似P2P,我抓了NB的小伙伴,他负责了渗透测试,我负责了PPT和吓唬人。OWASP Top10就能吓唬住不少人,不过听说OWASP最近又更新Top10了。
GoLang:
对,我看了看GoLang,总有人安利我应该看一看go。go的并发确实简单许多,当需要开异步任务的时候,直接“go”就行了。我的go只用来写了个数据获取的小程序 reits.topcaver.com ,把雪球上的美股reits收益率抓下来,存到sqlite里面。需要的时候我看看就行了。 不过我有点好奇的是,你们是怎么搞定cgo包的交叉编译的……比如sqlite3的这个driver:github.com/mattn/go-sqlite3
投资理财
在业余大部分时间里,我其实更关注了一件事,那就是钱,比如量化投资什么的…… 在uqer上写了一个bug策略,最好的情况下这个排位: 为什么说是bug策略呢……因为是真的有Bug,这个策略的卖出有问题,买了的卖不出去。然后呢,之前买进来的都是银行什么。那段时间正好是股灾和熔断期,策略本身并没有盈利,但是成了亏钱最少的人。直到现在,我的策略都没有能够跑赢大盘。
后来coursera上面gatech开了个计算投资,用Python+numpy+pandas做一些分析,并没有很深奥的东西,这是我第一次坚持完一个mooc,混了张证书。知道了些Sharp ratio之类的他们那个领域的单词。
后记
最近我开放了我的简历,把简历状态置为“我已离职”,猎头看到我的问总会这么问:“你最近在做什么?”,很难解释我最近在做什么。以至于朋友问我“想找个什么样的工作?”时,我只能尴尬的说……“你们缺领导么?我现在只能当领导了。”
PS: 如果你们看不上我不要紧,我还认识牛逼的设计师,牛逼的结构工程师,牛逼的电子工程师。(中介费对半分)