[求职] 资深 Android 工程师, 7 年工作经验

2023-09-18 11:20:48 +08:00
 mthli

2023 三月初离职,八月初开始找工作。

目前面试过的岗位有:

以上岗位均一轮游。

总的来说目前面试确实有难度,接下来也不知道还能投递哪些公司和岗位。

所以我把自己的简历发出来,期望找到一份 社区方向 或者 RTC 相关的工作。

👉 简历RESUME

8233 次点击
所在节点    求职
76 条回复
codele
2023-09-18 18:03:15 +08:00
同在找工作中,现在看有一些手机厂商和车载座舱的 android 岗位。
whyrookie
2023-09-18 18:06:04 +08:00
你这样的都找不到,我这样的就更难了😢
mthli
2023-09-18 18:27:03 +08:00
@lee1997

1. 如果是运行在 Native 上,你需要先搞定编译流程(对于 Android 主要是在 Mac 上编译比较麻烦,需要改造编译脚本;你也可以用专门的 Linux 编译机编译)。

2. 对于服务端,一般来说会选择 SFU 架构,这方面有很多开源实现,我们最早也是基于 mediasoup 改造的。mediasoup 也有第三方开发的 Android / iOS demo 可以参考,但最终并不是直接使用这些 demo ,大部分逻辑都重构了。

3. 如 2 所述,为了方便后续扩展和维护,你需要搞懂具体用到的框架的连接流程,比如信令的发送时机、断网重连怎么恢复流的状态,用户(主播或观众)的状态等,这些可以理解为状态机的迁移过程。也方便后续改造或者精简信令(提升连接速度)。也会涉及音视频采集和渲染的工作,但是这部分 WebRTC 本身已经处理的挺不错的,不用过多关心。

4. 最终呈现出来的对外 SDK API 的形式可以参见声网的文档(对于不同业务,需要的功能是声网的子集) https://docportal.shengwang.cn/cn/All/API%20Reference/java_ng/API/rtc_api_overview_ng.html

5. 如 4 所述,公司内部的 SDK 需要对不同业务的特点做支持(问题排查)和优化,比如银行认证关心通话成功率和画面清晰度、直播关注延迟和流畅度等。如果之前没有的特性也需要添加,比如直播在视频帧里要添加 SEI 信息,客服可能要添加铃声的混音等等,需要对音视频格式和 FFmpeg 混音有一些了解(其实我之前也没什么了解,现学现卖)。

还有其他的内容,比如协助集成一些自研的网络库、音频 3A 算法之类的,也是需要对 WebRTC 的源码有一定的熟悉度。嗯,大概就是这些。
mthli
2023-09-18 18:28:52 +08:00
@androidzai 主动提离职的,当时公司有 n+2 (可以搜一下当时的虾皮新闻)。不走就继续干,现在不用找工作了哈哈。
BruceLi
2023-09-18 18:34:23 +08:00
@mthli 西电毕业的啊,有兴趣回西安工作吗,做边缘计算操作系统和相关产品研发,正在招 iOS 和安卓原生开发。
anjingdexiaocai
2023-09-18 18:40:55 +08:00
mark 下,3 月到现在也有半年了,为啥就这几个面试呢?
mthli
2023-09-18 18:49:01 +08:00
@anjingdexiaocai 八月才开始找工作呀。之前都在搞 GPT ,做了几个小玩意自己不是很满意
mthli
2023-09-18 18:49:32 +08:00
@BruceLi 不考虑回西安了,我不是西安人
LXVC
2023-09-18 19:10:34 +08:00
不是你的问题,是环境的问题,加油。
xlsepiphone
2023-09-18 19:18:49 +08:00
还好 19 年就没搞 Android 了,还是躺平好。
lee1997
2023-09-18 19:26:06 +08:00
@mthli 哇!感谢回复!请问下日常用什么 ide 去看/改 webrtc 的代码呢?目前用 clion/Android studio 都不能很好的支持,特别是想点到具体的实现之类的。
cassiaesemen
2023-09-18 19:58:46 +08:00
@mthli 10 年 Android 路过,现在基本没面试机会,麻了。
zhouqian
2023-09-18 20:06:33 +08:00
大佬! Forked from mthli/Ninja 是我在 Github 上 fork 的第一个项目(仅仅 fork :p )。
leexsh31
2023-09-18 20:24:13 +08:00
我在字节 rtc 可以内推
v7
2023-09-18 20:57:12 +08:00
来 TikTok 上海再试一下?
waylife
2023-09-18 21:36:07 +08:00
大佬加油。
cuzval
2023-09-18 21:46:19 +08:00
请问简历是用什么模版生成的啊?
miKaSaAkerMan
2023-09-18 22:12:54 +08:00
pdd 考虑么
mthli
2023-09-19 00:01:12 +08:00
@lee1997

我一般还是用 VS Code 看代码的,也用 VS Code 改代码( Android Studio 有时候也会用)。

AS 更多还是用于打断点,能打断点比直接去看代码梳理逻辑要容易很多,我之前也写过一篇断点调试的文章(但是现在新版本看评论似乎已经不生效了,可能要调整一下) https://webrtc.mthli.com/basic/webrtc-breakpoint/

除了打断点之外,还需要熟悉一下 WebRTC 的线程模型(和 Android Looper 比较像),以及信号槽机制(可以理解为观察订阅模式),单纯看 WebRTC 代码基本够用了( WebRTC 也封装了大量的第三方库,但这就是另外的话题了)。

最后如果你用 AS 看代码的话,直接导入 WebRTC 源码,索引会爆炸的( CPU 占用率 100%),所以要屏蔽一下第三方库的索引目录,比如可以在项目的 build.gradle 里这样写:

```
idea {
module {
excludeDirs.add(file("${webrtcIncludePath}/testing"))
excludeDirs.add(file("${webrtcIncludePath}/third_party"))
excludeDirs.add(file("${webrtcIncludePath}/tools"))
}
}
```

webrtcIncludePath 就是你本地的 webrtc/src 的绝对路径。
mthli
2023-09-19 00:03:41 +08:00
@cuzval macOS 上有一个 App 叫做 Bear https://bear.app/ ,直接写好然后导出为 PDF 就可以了(导出为 PDF 功能需要付费,好在订阅费比较便宜,也可以随时取消,也有试用期哈哈,你在试用期里面导出 PDF 就就可以不付费了)。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/974769

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX