├── README.md
├── github-resume.css
├── images
├── image-20220127144756728.png
├── image-20220127144935660.png
├── image-20220127145315638.png
├── image6.png
├── image7.png
└── logo.png
└── resume-template.md
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | # markdown-resume
12 |
13 | typroa 简历主题, 保证导出 PDF 简历**刚好一页**
14 |
15 | ## 1. 功能
16 |
17 | * **简单**: 因为不用关心排版, 只需要关心内容
18 | * **面试加分**: 因为面试官也是程序员, 能给面试一定加分
19 | * **一页PDF**: 因为一页的简历更合适面试求职, 该样式会保证简历刚好一页
20 |
21 |
22 | ## 2. 效果
23 |
24 | 
25 |
26 | # 快速开始
27 |
28 | ## 1. 安装 typora
29 |
30 | ### 1.1. 下载
31 |
32 | 官网地址: https://typora.io/
33 |
34 | 中文地址: https://typora.cn/
35 |
36 | ### 1.2. 安装
37 |
38 | 安装过程很简单, 就不赘述了
39 |
40 |
41 | ## 2. 将 github-resume.css 复制到 Typora 的主题文件夹
42 |
43 |
44 | 打开typroa-> 文件 -> 偏好配置 -> 外观 -> 打开主题文件夹
45 |
46 | 
47 |
48 | 
49 |
50 | 重启 typora
51 |
52 | ## 3. 更换 typroa 主题
53 |
54 | 
55 |
56 | ## 4. 导出 HTML
57 |
58 | 修改本项目下的简历模板 resume-template.md 之后导出 HTML
59 |
60 | > 当然你也可以更加自己的喜好不使用 resume-template.md 模板, 自己写一份
61 |
62 | 文件 -> 导出 -> HTML
63 |
64 | 
65 |
66 | ## 5. 打印 PDF
67 |
68 | * 使用浏览器打开导出的 HTML
69 | * Ctrl + P 打印, 选择打印机为 PDF
70 |
71 | 需要调整的内容!
72 |
73 | 1. **去掉页眉页脚**
74 | 2. **调整边距(建议最小)**
75 | 3. **调整缩放(刚好一页即可)**
76 |
77 | 
78 |
--------------------------------------------------------------------------------
/github-resume.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --side-bar-bg-color: #fafafa;
3 | --control-text-color: #777;
4 | }
5 |
6 | @include-when-export url(https://fonts.loli.net/css?family=Open+Sans:400italic,700italic,700,400&subset=latin,latin-ext);
7 |
8 | /* open-sans-regular - latin-ext_latin */
9 | @font-face {
10 | font-family: 'Open Sans';
11 | font-style: normal;
12 | font-weight: normal;
13 | src: local('Open Sans Regular'), local('OpenSans-Regular'), url('./github/open-sans-v17-latin-ext_latin-regular.woff2') format('woff2');
14 | unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
15 | }
16 | /* open-sans-italic - latin-ext_latin */
17 | @font-face {
18 | font-family: 'Open Sans';
19 | font-style: italic;
20 | font-weight: normal;
21 | src: local('Open Sans Italic'), local('OpenSans-Italic'), url('./github/open-sans-v17-latin-ext_latin-italic.woff2') format('woff2');
22 | unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
23 | }
24 | /* open-sans-700 - latin-ext_latin */
25 | @font-face {
26 | font-family: 'Open Sans';
27 | font-style: normal;
28 | font-weight: bold;
29 | src: local('Open Sans Bold'), local('OpenSans-Bold'), url('./github/open-sans-v17-latin-ext_latin-700.woff2') format('woff2');
30 | unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
31 | }
32 | /* open-sans-700italic - latin-ext_latin */
33 | @font-face {
34 | font-family: 'Open Sans';
35 | font-style: italic;
36 | font-weight: bold;
37 | src: local('Open Sans Bold Italic'), local('OpenSans-BoldItalic'), url('./github/open-sans-v17-latin-ext_latin-700italic.woff2') format('woff2');
38 | unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
39 | }
40 |
41 | html {
42 | font-size: 10px;
43 | -webkit-font-smoothing: antialiased;
44 | }
45 |
46 | body {
47 | font-family: "Open Sans","Clear Sans", "Helvetica Neue", Helvetica, Arial, 'Segoe UI Emoji', sans-serif;
48 | color: rgb(51, 51, 51);
49 | line-height: 1;
50 | }
51 |
52 | #write {
53 | max-width: 2000px;
54 | margin: 0 auto;
55 | padding: 5px;
56 | padding-bottom: 50px;
57 | }
58 |
59 | @media only screen and (min-width: 1400px) {
60 | #write {
61 | max-width: 1350px;
62 | }
63 | }
64 |
65 | @media only screen and (min-width: 1800px) {
66 | #write {
67 | max-width: 1750px;
68 | }
69 | }
70 |
71 | #write > ul:first-child,
72 | #write > ol:first-child{
73 | margin-top: 10px;
74 | }
75 |
76 | a {
77 | color: #4183C4;
78 | }
79 | h1,
80 | h2,
81 | h3,
82 | h4,
83 | h5,
84 | h6 {
85 | position: relative;
86 | margin-top: 1rem;
87 | margin-bottom: 1rem;
88 | font-weight: bold;
89 | line-height: 1;
90 | cursor: text;
91 | }
92 | h1:hover a.anchor,
93 | h2:hover a.anchor,
94 | h3:hover a.anchor,
95 | h4:hover a.anchor,
96 | h5:hover a.anchor,
97 | h6:hover a.anchor {
98 | text-decoration: none;
99 | }
100 | h1 tt,
101 | h1 code {
102 | font-size: inherit;
103 | }
104 | h2 tt,
105 | h2 code {
106 | font-size: inherit;
107 | }
108 | h3 tt,
109 | h3 code {
110 | font-size: inherit;
111 | }
112 | h4 tt,
113 | h4 code {
114 | font-size: inherit;
115 | }
116 | h5 tt,
117 | h5 code {
118 | font-size: inherit;
119 | }
120 | h6 tt,
121 | h6 code {
122 | font-size: inherit;
123 | }
124 | h1 {
125 | font-size: 1.5em;
126 | line-height: 1;
127 | border-bottom: 1px solid #eee;
128 | }
129 | h2 {
130 | font-size: 1.25em;
131 | line-height: 1;
132 | border-bottom: 1px solid #eee;
133 | }
134 |
135 | /*@media print {
136 | .typora-export h1,
137 | .typora-export h2 {
138 | border-bottom: none;
139 | padding-bottom: initial;
140 | }
141 |
142 | .typora-export h1::after,
143 | .typora-export h2::after {
144 | content: "";
145 | display: block;
146 | height: 100px;
147 | margin-top: -96px;
148 | border-top: 1px solid #eee;
149 | }
150 | }*/
151 |
152 | h3 {
153 | font-size: 1em;
154 | line-height: 1;
155 | }
156 | h4 {
157 | font-size: 1em;
158 | }
159 | h5 {
160 | font-size: 1em;
161 | }
162 | h6 {
163 | font-size: 1em;
164 | color: #777;
165 | }
166 | p,
167 | blockquote,
168 | ul,
169 | ol,
170 | dl,
171 | table{
172 | margin: 0.8em 0;
173 | }
174 | li>ol,
175 | li>ul {
176 | margin: 0 0;
177 | }
178 | hr {
179 | height: 2px;
180 | padding: 0;
181 | margin: 16px 0;
182 | background-color: #e7e7e7;
183 | border: 0 none;
184 | overflow: hidden;
185 | box-sizing: content-box;
186 | }
187 |
188 | li p.first {
189 | display: inline-block;
190 | }
191 | ul,
192 | ol {
193 | padding-left: 30px;
194 | }
195 | ul:first-child,
196 | ol:first-child {
197 | margin-top: 0;
198 | }
199 | ul:last-child,
200 | ol:last-child {
201 | margin-bottom: 0;
202 | }
203 | blockquote {
204 | border-left: 4px solid #dfe2e5;
205 | padding: 0 15px;
206 | color: #777777;
207 | }
208 | blockquote blockquote {
209 | padding-right: 0;
210 | }
211 | table {
212 | padding: 0;
213 | word-break: initial;
214 | }
215 | table tr {
216 | border: 1px solid #dfe2e5;
217 | margin: 0;
218 | padding: 0;
219 | }
220 | table tr:nth-child(2n),
221 | thead {
222 | background-color: #f8f8f8;
223 | }
224 | table th {
225 | font-weight: bold;
226 | border: 1px solid #dfe2e5;
227 | border-bottom: 0;
228 | margin: 0;
229 | padding: 6px 13px;
230 | }
231 | table td {
232 | border: 1px solid #dfe2e5;
233 | margin: 0;
234 | padding: 6px 13px;
235 | }
236 | table th:first-child,
237 | table td:first-child {
238 | margin-top: 0;
239 | }
240 | table th:last-child,
241 | table td:last-child {
242 | margin-bottom: 0;
243 | }
244 |
245 | .CodeMirror-lines {
246 | padding-left: 4px;
247 | }
248 |
249 | .code-tooltip {
250 | box-shadow: 0 1px 1px 0 rgba(0,28,36,.3);
251 | border-top: 1px solid #eef2f2;
252 | }
253 |
254 | .md-fences,
255 | code,
256 | tt {
257 | border: 1px solid #e7eaed;
258 | background-color: #f8f8f8;
259 | border-radius: 3px;
260 | padding: 0;
261 | padding: 2px 4px 0px 4px;
262 | font-size: 0.9em;
263 | }
264 |
265 | code {
266 | background-color: #f3f4f4;
267 | padding: 0 2px 0 2px;
268 | }
269 |
270 | .md-fences {
271 | margin-bottom: 15px;
272 | margin-top: 15px;
273 | padding-top: 8px;
274 | padding-bottom: 6px;
275 | }
276 |
277 |
278 | .md-task-list-item > input {
279 | margin-left: -1.3em;
280 | }
281 |
282 | @media print {
283 | html {
284 | font-size: 10px;
285 | }
286 | table,
287 | pre {
288 | page-break-inside: avoid;
289 | }
290 | pre {
291 | word-wrap: break-word;
292 | }
293 | }
294 |
295 | .md-fences {
296 | background-color: #f8f8f8;
297 | }
298 | #write pre.md-meta-block {
299 | padding: 1rem;
300 | font-size: 85%;
301 | line-height: 1.45;
302 | background-color: #f7f7f7;
303 | border: 0;
304 | border-radius: 3px;
305 | color: #777777;
306 | margin-top: 0 !important;
307 | }
308 |
309 | .mathjax-block>.code-tooltip {
310 | bottom: .375rem;
311 | }
312 |
313 | .md-mathjax-midline {
314 | background: #fafafa;
315 | }
316 |
317 | #write>h3.md-focus:before{
318 | left: -1.5625rem;
319 | top: .375rem;
320 | }
321 | #write>h4.md-focus:before{
322 | left: -1.5625rem;
323 | top: .285714286rem;
324 | }
325 | #write>h5.md-focus:before{
326 | left: -1.5625rem;
327 | top: .285714286rem;
328 | }
329 | #write>h6.md-focus:before{
330 | left: -1.5625rem;
331 | top: .285714286rem;
332 | }
333 | .md-image>.md-meta {
334 | /*border: 1px solid #ddd;*/
335 | border-radius: 3px;
336 | padding: 2px 0px 0px 4px;
337 | font-size: 0.9em;
338 | color: inherit;
339 | }
340 |
341 | .md-tag {
342 | color: #a7a7a7;
343 | opacity: 1;
344 | }
345 |
346 | .md-toc {
347 | margin-top:20px;
348 | padding-bottom:20px;
349 | }
350 |
351 | .sidebar-tabs {
352 | border-bottom: none;
353 | }
354 |
355 | #typora-quick-open {
356 | border: 1px solid #ddd;
357 | background-color: #f8f8f8;
358 | }
359 |
360 | #typora-quick-open-item {
361 | background-color: #FAFAFA;
362 | border-color: #FEFEFE #e5e5e5 #e5e5e5 #eee;
363 | border-style: solid;
364 | border-width: 1px;
365 | }
366 |
367 | /** focus mode */
368 | .on-focus-mode blockquote {
369 | border-left-color: rgba(85, 85, 85, 0.12);
370 | }
371 |
372 | header, .context-menu, .megamenu-content, footer{
373 | font-family: "Segoe UI", "Arial", sans-serif;
374 | }
375 |
376 | .file-node-content:hover .file-node-icon,
377 | .file-node-content:hover .file-node-open-state{
378 | visibility: visible;
379 | }
380 |
381 | .mac-seamless-mode #typora-sidebar {
382 | background-color: #fafafa;
383 | background-color: var(--side-bar-bg-color);
384 | }
385 |
386 | .md-lang {
387 | color: #b4654d;
388 | }
389 |
390 | /*.html-for-mac {
391 | --item-hover-bg-color: #E6F0FE;
392 | }*/
393 |
394 | #md-notification .btn {
395 | border: 0;
396 | }
397 |
398 | .dropdown-menu .divider {
399 | border-color: #e5e5e5;
400 | opacity: 0.4;
401 | }
402 |
403 | .ty-preferences .window-content {
404 | background-color: #fafafa;
405 | }
406 |
407 | .ty-preferences .nav-group-item.active {
408 | color: white;
409 | background: #999;
410 | }
411 |
412 | .menu-item-container a.menu-style-btn {
413 | background-color: #f5f8fa;
414 | background-image: linear-gradient( 180deg , hsla(0, 0%, 100%, 0.8), hsla(0, 0%, 100%, 0));
415 | }
416 |
417 |
--------------------------------------------------------------------------------
/images/image-20220127144756728.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jarvanstack/markdown-resume/a9289deb97ae648d61cdd83eb2914bb81d542ebe/images/image-20220127144756728.png
--------------------------------------------------------------------------------
/images/image-20220127144935660.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jarvanstack/markdown-resume/a9289deb97ae648d61cdd83eb2914bb81d542ebe/images/image-20220127144935660.png
--------------------------------------------------------------------------------
/images/image-20220127145315638.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jarvanstack/markdown-resume/a9289deb97ae648d61cdd83eb2914bb81d542ebe/images/image-20220127145315638.png
--------------------------------------------------------------------------------
/images/image6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jarvanstack/markdown-resume/a9289deb97ae648d61cdd83eb2914bb81d542ebe/images/image6.png
--------------------------------------------------------------------------------
/images/image7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jarvanstack/markdown-resume/a9289deb97ae648d61cdd83eb2914bb81d542ebe/images/image7.png
--------------------------------------------------------------------------------
/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jarvanstack/markdown-resume/a9289deb97ae648d61cdd83eb2914bb81d542ebe/images/logo.png
--------------------------------------------------------------------------------
/resume-template.md:
--------------------------------------------------------------------------------
1 | ## 邓嘉文
2 |
3 | `denxxxx5@gmail.com` | `wx: jarvanxxxx ` | `133xxxxxxxx` | `公众号: 邓嘉文Jarvan`
4 |
5 | `重庆邮电大学 2019-2023` | `软件工程专业` | `Golang` | `Java` | `计算机, 软件编程爱好者`
6 |
7 | ## 技术栈
8 |
9 | * **Golang**: 熟悉 Golang 以及常见标准库的使用, 了解 GMP , GC 三色标记算法以及 Golang 的性能分析优化
10 | * **Java**: 了解 Java 以及常见标准库, Spring全家桶的使用
11 | * **Web**: 了解 MYSQL 事务, 锁, 并发, 索引, InnoDB引擎, 性能测试, 性能优化; 了解 Redis 几种基本数据结构和使用;
12 | * **Linux**: 一般以 Linux 云服务器作为开发工具, 熟悉常见的 Linux 命令, shell 脚本, docker 等工具
13 | * **计算机基础**: 了解常见的操作系统, 计网, 数据结构和算法
14 | * **测试**: 编写测试用例和测试程序, 定位服务的 bug , 提交服务功能和性能的测试报告
15 |
16 | ## 项目经历
17 |
18 | * **关二爷科技后端负责(2021-9 至 2021-12):**
19 |
20 | `项目负责` `全栈开发`: 负责各个阶段主要的评审, 后台服务的设计和开发, 以及代码 review; 接入 CLB 的负载均衡; CLS 日志收集, 可视化,告警通知; Prometheus Metric 指标监控; 云原生 ETCD RPC服务的注册中心; Pulsar 消息队列进行削峰; k8s 滚动发布部署保证服务持续的高可用; 实现 LRU + 令牌桶算法限流接口, 防止服务盗刷, 同时减少资源的占用
21 |
22 | * **元象唯思YX游戏引擎后台研发(2021-5 至 2021-9): **12月31日到1月1日 TME跨年会上, 该引擎提供来自QQ音乐, 酷狗, 酷我, 全民k歌等平台共 110w UV, 高峰期近 10w 用户同时在线3D同屏互动服务
23 |
24 | `统一日志`: 日志模块封装; 统一收集, 展示, Metric 可视化
25 |
26 | `索引优化`: 测试 reids LRU 和 TcaplusDB 的功能和性能指标, 提交测试报告; 编写 Redis 和 TcapluDB 多级缓存通用库, 保证引擎的烘焙素材获取时间不超过 10ms
27 |
28 | `gokv`: 基于零拷贝和一致性hash 实现的 KV 数据库, 解决 redis big key 问题
29 |
30 | `技术分享`: "云原生监控 Prometheus Metric 应用到 YX游戏引擎在线平台" 的技术分享, 旨在解决公司目前基于 cls 日志监控的性能和成本问题, 目前公司所有 Metric 监控均由 CLS 迁移到云原生监控 Prometheus
31 |
32 | `用户模块和房间模块缓存层设计开发`: grpc, redis缓存
33 |
34 | * **HelloGitHub-团队成员(2020-10 至 2021-2):** 进入该团队的时候, 团队成员不到 10 人, 目前单个 HelloGithub 仓库 star 已达到 50K+
35 |
36 | PR 并维护 HelloGithub 仓库; review 其他成员的 PR
37 |
38 | ## 校园经历
39 |
40 | * **极客勤奋蜂工作室后端组开发负责人(2020-11 至 2021-2):**
41 |
42 | `技术负责` `后端`: 完成刷题网站的项目的需求分析, 数据库设计, 接口设计, 项目搭建, 以代码模块化形式带领团队分工开发, 并解决其他成员遇到的问题, 代码 review, 该项目主要使用 MySQL, Redis
43 |
44 | * **NMID 重邮移动互联网应用研究中心后端开发(2020-4 至 2021-4):**
45 |
46 | `后端`: 独立完成语析笔记小程序后端接口设计, 数据库设计和接口实现, 使用 nginx + docker + shell 脚本部署服务
47 |
48 |
49 | ## 个人链接
50 | * **个人网站**: https://bmft.tech
51 |
52 | * **博客**: https://blog.csdn.net/jarvan5
53 |
54 | * **GitHub**: https://github.com/dengjiawen8955
55 |
56 | * **知乎**: https://www.zhihu.com/people/bmft.tech/posts
57 |
58 | * **公众号**: 邓嘉文Jarvan
59 |
60 | ---
61 | *@2022-1 Made by 邓嘉文Jarvan*
62 | *简历下载 [PDF 下载](https://bmft.tech/resume/resume.pdf) / [Markdown 下载](https://bmft.tech/resume/resume.md)*
63 |
64 |
--------------------------------------------------------------------------------