init resume

This commit is contained in:
1iaan
2025-12-30 21:10:16 +08:00
commit 737558315b
9 changed files with 1111 additions and 0 deletions

316
.gitignore vendored Normal file
View File

@@ -0,0 +1,316 @@
# Created by https://www.toptal.com/developers/gitignore/api/latex
# Edit at https://www.toptal.com/developers/gitignore?templates=latex
### LaTeX ###
## Core latex/pdflatex auxiliary files:
*.aux
*.lof
*.log
*.lot
*.fls
*.out
*.toc
*.fmt
*.fot
*.cb
*.cb2
.*.lb
## Intermediate documents:
*.dvi
*.xdv
*-converted-to.*
# these rules might exclude image files for figures etc.
# *.ps
# *.eps
# *.pdf
## Generated if empty string is given at "Please type another file name for output:"
.pdf
## Bibliography auxiliary files (bibtex/biblatex/biber):
*.bbl
*.bcf
*.blg
*-blx.aux
*-blx.bib
*.run.xml
## Build tool auxiliary files:
*.fdb_latexmk
*.synctex
*.synctex(busy)
*.synctex.gz
*.synctex.gz(busy)
*.pdfsync
## Build tool directories for auxiliary files
# latexrun
latex.out/
## Auxiliary and intermediate files from other packages:
# algorithms
*.alg
*.loa
# achemso
acs-*.bib
# amsthm
*.thm
# beamer
*.nav
*.pre
*.snm
*.vrb
# changes
*.soc
# comment
*.cut
# cprotect
*.cpt
# elsarticle (documentclass of Elsevier journals)
*.spl
# endnotes
*.ent
# fixme
*.lox
# feynmf/feynmp
*.mf
*.mp
*.t[1-9]
*.t[1-9][0-9]
*.tfm
#(r)(e)ledmac/(r)(e)ledpar
*.end
*.?end
*.[1-9]
*.[1-9][0-9]
*.[1-9][0-9][0-9]
*.[1-9]R
*.[1-9][0-9]R
*.[1-9][0-9][0-9]R
*.eledsec[1-9]
*.eledsec[1-9]R
*.eledsec[1-9][0-9]
*.eledsec[1-9][0-9]R
*.eledsec[1-9][0-9][0-9]
*.eledsec[1-9][0-9][0-9]R
# glossaries
*.acn
*.acr
*.glg
*.glo
*.gls
*.glsdefs
*.lzo
*.lzs
*.slg
*.slo
*.sls
# uncomment this for glossaries-extra (will ignore makeindex's style files!)
# *.ist
# gnuplot
*.gnuplot
*.table
# gnuplottex
*-gnuplottex-*
# gregoriotex
*.gaux
*.glog
*.gtex
# htlatex
*.4ct
*.4tc
*.idv
*.lg
*.trc
*.xref
# hyperref
*.brf
# knitr
*-concordance.tex
# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files
# *.tikz
*-tikzDictionary
# listings
*.lol
# luatexja-ruby
*.ltjruby
# makeidx
*.idx
*.ilg
*.ind
# minitoc
*.maf
*.mlf
*.mlt
*.mtc[0-9]*
*.slf[0-9]*
*.slt[0-9]*
*.stc[0-9]*
# minted
_minted*
*.pyg
# morewrites
*.mw
# newpax
*.newpax
# nomencl
*.nlg
*.nlo
*.nls
# pax
*.pax
# pdfpcnotes
*.pdfpc
# sagetex
*.sagetex.sage
*.sagetex.py
*.sagetex.scmd
# scrwfile
*.wrt
# svg
svg-inkscape/
# sympy
*.sout
*.sympy
sympy-plots-for-*.tex/
# pdfcomment
*.upa
*.upb
# pythontex
*.pytxcode
pythontex-files-*/
# tcolorbox
*.listing
# thmtools
*.loe
# TikZ & PGF
*.dpth
*.md5
*.auxlock
# titletoc
*.ptc
# todonotes
*.tdo
# vhistory
*.hst
*.ver
# easy-todo
*.lod
# xcolor
*.xcp
# xmpincl
*.xmpi
# xindy
*.xdy
# xypic precompiled matrices and outlines
*.xyc
*.xyd
# endfloat
*.ttt
*.fff
# Latexian
TSWLatexianTemp*
## Editors:
# WinEdt
*.bak
*.sav
# Texpad
.texpadtmp
# LyX
*.lyx~
# Kile
*.backup
# gummi
.*.swp
# KBibTeX
*~[0-9]*
# TeXnicCenter
*.tps
# auto folder when using emacs and auctex
./auto/*
*.el
# expex forward references with \gathertags
*-tags.tex
# standalone packages
*.sta
# Makeindex log files
*.lpz
# xwatermark package
*.xwm
# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib
# option is specified. Footnotes are the stored in a file with suffix Notes.bib.
# Uncomment the next line to have this generated file ignored.
#*Notes.bib
### LaTeX Patch ###
# LIPIcs / OASIcs
*.vtc
# glossaries
*.glstex
# End of https://www.toptal.com/developers/gitignore/api/latex
*.zip

416
LICENSE Normal file
View File

@@ -0,0 +1,416 @@
The LaTeX Project Public License
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
LPPL Version 1.3c 2008-05-04
Copyright 1999 2002-2008 LaTeX3 Project
Everyone is allowed to distribute verbatim copies of this
license document, but modification of it is not allowed.
PREAMBLE
========
The LaTeX Project Public License (LPPL) is the primary license under
which the LaTeX kernel and the base LaTeX packages are distributed.
You may use this license for any work of which you hold the copyright
and which you wish to distribute. This license may be particularly
suitable if your work is TeX-related (such as a LaTeX package), but
it is written in such a way that you can use it even if your work is
unrelated to TeX.
The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
below, gives instructions, examples, and recommendations for authors
who are considering distributing their works under this license.
This license gives conditions under which a work may be distributed
and modified, as well as conditions under which modified versions of
that work may be distributed.
We, The LaTeX Project, believe that the conditions below give you
the freedom to make and distribute modified versions of your work
that conform with whatever technical specifications you wish while
maintaining the availability, integrity, and reliability of
that work. If you do not see how to achieve your goal while
meeting these conditions, then read the document `cfgguide.tex'
and `modguide.tex' in the base LaTeX distribution for suggestions.
DEFINITIONS
===========
In this license document the following terms are used:
`Work'
Any work being distributed under this License.
`Derived Work'
Any work that under any applicable law is derived from the Work.
`Modification'
Any procedure that produces a Derived Work under any applicable
law -- for example, the production of a file containing an
original file associated with the Work or a significant portion of
such a file, either verbatim or with modifications and/or
translated into another language.
`Modify'
To apply any procedure that produces a Derived Work under any
applicable law.
`Distribution'
Making copies of the Work available from one person to another, in
whole or in part. Distribution includes (but is not limited to)
making any electronic components of the Work accessible by
file transfer protocols such as FTP or HTTP or by shared file
systems such as Sun's Network File System (NFS).
`Compiled Work'
A version of the Work that has been processed into a form where it
is directly usable on a computer system. This processing may
include using installation facilities provided by the Work,
transformations of the Work, copying of components of the Work, or
other activities. Note that modification of any installation
facilities provided by the Work constitutes modification of the Work.
`Current Maintainer'
A person or persons nominated as such within the Work. If there is
no such explicit nomination then it is the `Copyright Holder' under
any applicable law.
`Base Interpreter'
A program or process that is normally needed for running or
interpreting a part or the whole of the Work.
A Base Interpreter may depend on external components but these
are not considered part of the Base Interpreter provided that each
external component clearly identifies itself whenever it is used
interactively. Unless explicitly specified when applying the
license to the Work, the only applicable Base Interpreter is a
`LaTeX-Format' or in the case of files belonging to the
`LaTeX-format' a program implementing the `TeX language'.
CONDITIONS ON DISTRIBUTION AND MODIFICATION
===========================================
1. Activities other than distribution and/or modification of the Work
are not covered by this license; they are outside its scope. In
particular, the act of running the Work is not restricted and no
requirements are made concerning any offers of support for the Work.
2. You may distribute a complete, unmodified copy of the Work as you
received it. Distribution of only part of the Work is considered
modification of the Work, and no right to distribute such a Derived
Work may be assumed under the terms of this clause.
3. You may distribute a Compiled Work that has been generated from a
complete, unmodified copy of the Work as distributed under Clause 2
above, as long as that Compiled Work is distributed in such a way that
the recipients may install the Compiled Work on their system exactly
as it would have been installed if they generated a Compiled Work
directly from the Work.
4. If you are the Current Maintainer of the Work, you may, without
restriction, modify the Work, thus creating a Derived Work. You may
also distribute the Derived Work without restriction, including
Compiled Works generated from the Derived Work. Derived Works
distributed in this manner by the Current Maintainer are considered to
be updated versions of the Work.
5. If you are not the Current Maintainer of the Work, you may modify
your copy of the Work, thus creating a Derived Work based on the Work,
and compile this Derived Work, thus creating a Compiled Work based on
the Derived Work.
6. If you are not the Current Maintainer of the Work, you may
distribute a Derived Work provided the following conditions are met
for every component of the Work unless that component clearly states
in the copyright notice that it is exempt from that condition. Only
the Current Maintainer is allowed to add such statements of exemption
to a component of the Work.
a. If a component of this Derived Work can be a direct replacement
for a component of the Work when that component is used with the
Base Interpreter, then, wherever this component of the Work
identifies itself to the user when used interactively with that
Base Interpreter, the replacement component of this Derived Work
clearly and unambiguously identifies itself as a modified version
of this component to the user when used interactively with that
Base Interpreter.
b. Every component of the Derived Work contains prominent notices
detailing the nature of the changes to that component, or a
prominent reference to another file that is distributed as part
of the Derived Work and that contains a complete and accurate log
of the changes.
c. No information in the Derived Work implies that any persons,
including (but not limited to) the authors of the original version
of the Work, provide any support, including (but not limited to)
the reporting and handling of errors, to recipients of the
Derived Work unless those persons have stated explicitly that
they do provide such support for the Derived Work.
d. You distribute at least one of the following with the Derived Work:
1. A complete, unmodified copy of the Work;
if your distribution of a modified component is made by
offering access to copy the modified component from a
designated place, then offering equivalent access to copy
the Work from the same or some similar place meets this
condition, even though third parties are not compelled to
copy the Work along with the modified component;
2. Information that is sufficient to obtain a complete,
unmodified copy of the Work.
7. If you are not the Current Maintainer of the Work, you may
distribute a Compiled Work generated from a Derived Work, as long as
the Derived Work is distributed to all recipients of the Compiled
Work, and as long as the conditions of Clause 6, above, are met with
regard to the Derived Work.
8. The conditions above are not intended to prohibit, and hence do not
apply to, the modification, by any method, of any component so that it
becomes identical to an updated version of that component of the Work as
it is distributed by the Current Maintainer under Clause 4, above.
9. Distribution of the Work or any Derived Work in an alternative
format, where the Work or that Derived Work (in whole or in part) is
then produced by applying some process to that format, does not relax or
nullify any sections of this license as they pertain to the results of
applying that process.
10. a. A Derived Work may be distributed under a different license
provided that license itself honors the conditions listed in
Clause 6 above, in regard to the Work, though it does not have
to honor the rest of the conditions in this license.
b. If a Derived Work is distributed under a different license, that
Derived Work must provide sufficient documentation as part of
itself to allow each recipient of that Derived Work to honor the
restrictions in Clause 6 above, concerning changes from the Work.
11. This license places no restrictions on works that are unrelated to
the Work, nor does this license place any restrictions on aggregating
such works with the Work by any means.
12. Nothing in this license is intended to, or may be used to, prevent
complete compliance by all parties with all applicable laws.
NO WARRANTY
===========
There is no warranty for the Work. Except when otherwise stated in
writing, the Copyright Holder provides the Work `as is', without
warranty of any kind, either expressed or implied, including, but not
limited to, the implied warranties of merchantability and fitness for a
particular purpose. The entire risk as to the quality and performance
of the Work is with you. Should the Work prove defective, you assume
the cost of all necessary servicing, repair, or correction.
In no event unless required by applicable law or agreed to in writing
will The Copyright Holder, or any author named in the components of the
Work, or any other party who may distribute and/or modify the Work as
permitted above, be liable to you for damages, including any general,
special, incidental or consequential damages arising out of any use of
the Work or out of inability to use the Work (including, but not limited
to, loss of data, data being rendered inaccurate, or losses sustained by
anyone as a result of any failure of the Work to operate with any other
programs), even if the Copyright Holder or said author or said other
party has been advised of the possibility of such damages.
MAINTENANCE OF THE WORK
=======================
The Work has the status `author-maintained' if the Copyright Holder
explicitly and prominently states near the primary copyright notice in
the Work that the Work can only be maintained by the Copyright Holder
or simply that it is `author-maintained'.
The Work has the status `maintained' if there is a Current Maintainer
who has indicated in the Work that they are willing to receive error
reports for the Work (for example, by supplying a valid e-mail
address). It is not required for the Current Maintainer to acknowledge
or act upon these error reports.
The Work changes from status `maintained' to `unmaintained' if there
is no Current Maintainer, or the person stated to be Current
Maintainer of the work cannot be reached through the indicated means
of communication for a period of six months, and there are no other
significant signs of active maintenance.
You can become the Current Maintainer of the Work by agreement with
any existing Current Maintainer to take over this role.
If the Work is unmaintained, you can become the Current Maintainer of
the Work through the following steps:
1. Make a reasonable attempt to trace the Current Maintainer (and
the Copyright Holder, if the two differ) through the means of
an Internet or similar search.
2. If this search is successful, then enquire whether the Work
is still maintained.
a. If it is being maintained, then ask the Current Maintainer
to update their communication data within one month.
b. If the search is unsuccessful or no action to resume active
maintenance is taken by the Current Maintainer, then announce
within the pertinent community your intention to take over
maintenance. (If the Work is a LaTeX work, this could be
done, for example, by posting to comp.text.tex.)
3a. If the Current Maintainer is reachable and agrees to pass
maintenance of the Work to you, then this takes effect
immediately upon announcement.
b. If the Current Maintainer is not reachable and the Copyright
Holder agrees that maintenance of the Work be passed to you,
then this takes effect immediately upon announcement.
4. If you make an `intention announcement' as described in 2b. above
and after three months your intention is challenged neither by
the Current Maintainer nor by the Copyright Holder nor by other
people, then you may arrange for the Work to be changed so as
to name you as the (new) Current Maintainer.
5. If the previously unreachable Current Maintainer becomes
reachable once more within three months of a change completed
under the terms of 3b) or 4), then that Current Maintainer must
become or remain the Current Maintainer upon request provided
they then update their communication data within one month.
A change in the Current Maintainer does not, of itself, alter the fact
that the Work is distributed under the LPPL license.
If you become the Current Maintainer of the Work, you should
immediately provide, within the Work, a prominent and unambiguous
statement of your status as Current Maintainer. You should also
announce your new status to the same pertinent community as
in 2b) above.
WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE
======================================================
This section contains important instructions, examples, and
recommendations for authors who are considering distributing their
works under this license. These authors are addressed as `you' in
this section.
Choosing This License or Another License
----------------------------------------
If for any part of your work you want or need to use *distribution*
conditions that differ significantly from those in this license, then
do not refer to this license anywhere in your work but, instead,
distribute your work under a different license. You may use the text
of this license as a model for your own license, but your license
should not refer to the LPPL or otherwise give the impression that
your work is distributed under the LPPL.
The document `modguide.tex' in the base LaTeX distribution explains
the motivation behind the conditions of this license. It explains,
for example, why distributing LaTeX under the GNU General Public
License (GPL) was considered inappropriate. Even if your work is
unrelated to LaTeX, the discussion in `modguide.tex' may still be
relevant, and authors intending to distribute their works under any
license are encouraged to read it.
A Recommendation on Modification Without Distribution
-----------------------------------------------------
It is wise never to modify a component of the Work, even for your own
personal use, without also meeting the above conditions for
distributing the modified component. While you might intend that such
modifications will never be distributed, often this will happen by
accident -- you may forget that you have modified that component; or
it may not occur to you when allowing others to access the modified
version that you are thus distributing it and violating the conditions
of this license in ways that could have legal implications and, worse,
cause problems for the community. It is therefore usually in your
best interest to keep your copy of the Work identical with the public
one. Many works provide ways to control the behavior of that work
without altering any of its licensed components.
How to Use This License
-----------------------
To use this license, place in each of the components of your work both
an explicit copyright notice including your name and the year the work
was authored and/or last substantially modified. Include also a
statement that the distribution and/or modification of that
component is constrained by the conditions in this license.
Here is an example of such a notice and statement:
%% pig.dtx
%% Copyright 2005 M. Y. Name
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
%
% This work has the LPPL maintenance status `maintained'.
%
% The Current Maintainer of this work is M. Y. Name.
%
% This work consists of the files pig.dtx and pig.ins
% and the derived file pig.sty.
Given such a notice and statement in a file, the conditions
given in this license document would apply, with the `Work' referring
to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
referring to any `LaTeX-Format', and both `Copyright Holder' and
`Current Maintainer' referring to the person `M. Y. Name'.
If you do not want the Maintenance section of LPPL to apply to your
Work, change `maintained' above into `author-maintained'.
However, we recommend that you use `maintained', as the Maintenance
section was added in order to ensure that your Work remains useful to
the community even when you can no longer maintain and support it
yourself.
Derived Works That Are Not Replacements
---------------------------------------
Several clauses of the LPPL specify means to provide reliability and
stability for the user community. They therefore concern themselves
with the case that a Derived Work is intended to be used as a
(compatible or incompatible) replacement of the original Work. If
this is not the case (e.g., if a few lines of code are reused for a
completely different task), then clauses 6b and 6d shall not apply.
Important Recommendations
-------------------------
Defining What Constitutes the Work
The LPPL requires that distributions of the Work contain all the
files of the Work. It is therefore important that you provide a
way for the licensee to determine which files constitute the Work.
This could, for example, be achieved by explicitly listing all the
files of the Work near the copyright notice of each file or by
using a line such as:
% This work consists of all files listed in manifest.txt.
in that place. In the absence of an unequivocal list it might be
impossible for the licensee to determine what is considered by you
to comprise the Work and, in such a case, the licensee would be
entitled to make reasonable conjectures as to which files comprise
the Work.

BIN
image.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 MiB

BIN
image2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

3
latexmkrc Normal file
View File

@@ -0,0 +1,3 @@
$pdf_mode = 5;
$dvi_mode = 0;
$postscript_mode = 0;

BIN
main.pdf Normal file

Binary file not shown.

131
main.tex Normal file
View File

@@ -0,0 +1,131 @@
% !TeX TS-program = xelatex
\documentclass{resume}
\ResumeName{连奕恒}
% 如果想插入照片,请使用以下两个库。
\usepackage{graphicx}
\usepackage{tikz}
\begin{document}
\ResumeContacts{
(+86)178-8812-0369,%
\ResumeUrl{mailto:lianyh0266@outlook.com}{lianyh0266@outlook.com},%
% \ResumeUrl{https://blog.fkynjyq.com}{blog.fkynjyq.com} \footnote{下划线内容包含超链接。},%
% \ResumeUrl{https://github.com/fky2015}{github.com/fky2015}%
}
% 如果想插入照片,请取消此代码的注释。
% 但是默认不推荐插入照片,因为这不是简历的重点。
% 如果默认的照片插入格式不能满足你的需求,你可以尝试调整照片的大小,或者使用其他的插入照片的方法。
% 不然,也可以先渲染 PDF 简历,然后用其他工具在 PDF 上叠加照片。
\begin{tikzpicture}[remember picture, overlay]
\node [anchor=north east, inner sep=1cm] at (current page.north east)
{\includegraphics[width=2cm]{image.png}};
\end{tikzpicture}
\ResumeTitle
\section{教育经历}
\ResumeItem
[西安电子科技大学|硕士研究生]
{西安电子科技大学}
[\textnormal{软件工程,计算机科学与技术学院|} 专业学位研究生]
[2024.09—2027.06(预计)]
% \textbf{GPA: 3.62/4.0},主要研究方向为\textbf{拜占庭共识算法},在分布式系统领域方面有一定的研究和工程经验。\textbf{2024年应届生}。
主要研究方向为\textbf{密态数据库和数据索引}\textbf{2024年应届生}
\ResumeItem
[兰州理工大学|本科生]
{兰州理工大学}
[\textnormal{软件工程,计算机学院|} 工学学士]
[2020.09—2024.06]
天梯赛一等奖,蓝桥杯省赛二等奖。
\section[技术能力]
{技术能力}
% \protect\footnote{与求职岗位无关的技能省略或用灰色表示。}
\begin{itemize}
\item \textbf{语言}: 熟练使用 C/C++,熟悉面向对象特性、内存模型与多文件工程组织; 了解 C++11 常用特性智能指针、Lambda 表达式等); 了解协程的实现原理; 具备 Java、Go、Python 使用经验,能够快速上手新语言。
\item \textbf{系统与并发}: 熟悉 Linux 环境开发,理解进程/线程管理、内存管理机制; 熟悉协程原理、多路复用模型select / poll / epoll了解 Reactor / Proactor 架构。
\item \textbf{组件}: 熟悉线程池连接池; 无锁队列; 网络缓冲区; 定时器; 死锁检测; 分布式锁; 异步日志方案spdlog; 应用层协议设计ProtoBuf。
\item \textbf{网络}: 熟悉 TCP/IP 五层模型,掌握 TCP/UDP、HTTP 等常见协议;能够基于 Socket 进行 Linux 网络编程,理解高并发服务器基本设计思路。
\item \textbf{数据结构与库}: 熟悉 STL 常用容器vector、map 等)及其底层实现原理。
\item \textbf{数据库}: 熟悉 MySQL 了解索引、事务、锁机制、MVCC具备一定 SQL 调优能力; 熟练掌握 Redis 常用数据结构及应用场景,了解持久化、淘汰策略与集群原理。
\item \textbf{工程与工具}: 熟悉 Linux 常用命令; Git 协作流程; GDB; 熟悉 Docker 容器技术。
\item \textbf{后端开发}: 了解项目开发流程与前后端交互方式,能够基于 RESTful API 规范进行后端接口设计。
\end{itemize}
% \section{工作经历}
% \ResumeItem{北京 ABCD 有限公司}
% [后端开发实习生/XXXX]
% [2020.10—2021.03]
% \begin{itemize}
% \item \textbf{独立负责XXX业务后端的设计、开发、测试和部署。}通过 FaaS、Kafka 等平台实现站内信模板渲染服务。向上游提供 SDK 代码,增加或升级了多种离线和在线逻辑。完成了业务对站内信的多样需求。
% \item \textbf{参与 XXX 的需求分析,系统技术方案设计;完成需求开发、灰度测试、上线和监控。}
% \end{itemize}
\section{项目经历}
\ResumeItem{\textbf{BusTub} 基于 C++ 的简易单机数据库}
[ \textnormal{CMU 15-445} 课程]
[2024.11 - 2025.04]
\begin{itemize}
\item 实现了基于可扩展哈希表和LRU-K的内存池管理。实现了可并发的B+树,支持乐观加锁的读写操作。
\item 采用火山模型实现了查询、修改、连接、聚合等查询执行器,对部分查询进行了改写与下推。
\item 采用 2PL 进行并发控制,支持死锁处理、多种隔离级别、表锁和行锁。
\item 对数据库系统有了基本的认识和实践。
\end{itemize}
% \ResumeItem{\textbf{KVDB} 分布式 \textbf{KV} 存储系统}
% [ \textnormal{MIT 6.824} 课程]
% \begin{itemize}
% \item 实现了 Raft 协议的选举、日志复制、持久化、日志压缩等基本功能。
% \item 基于 Raft 协议实现了满足线性一致性的 KV 数据库。
% \item 采用 Multi-Raft 架构,支持数据分片,分片迁移,分片垃圾回收和分片迁移时读写优化。
% \item 对分布式系统的设计考量有了更多的认识。
% \end{itemize}
\ResumeItem{\textbf{L-RPC} 基于Reactor的RPC项目}
[C++ 协程实现N:M调度模型]
[2025.11—2022.12]
\begin{itemize}
\item 基于 \textbf{C++11} 实现的多线程 RPC 框架,采用 \textbf{主从 Reactor 架构},底层基于 \textbf{epoll} 实现 I/O 多路复用,支持高并发网络通信。
\item 应用层基于 \textbf{Protocol Buffers} 设计并实现自定义 RPC 协议,完成服务注册、请求编解码与调用分发流程。
\item 采用 \textbf{多线程 + 协程的 N:M 并发模型}:由 N 个 I/O EventLoop 线程负责事件监听与分发M 个工作线程中以协程方式调度业务逻辑,减少线程阻塞与上下文切换开销。
\item 自主实现 \textbf{异步日志系统},通过独立日志线程与缓冲队列解耦业务逻辑与 I/O 操作,降低日志对主流程性能影响。
\item 在本地压测环境下,框架在简单 Echo/RPC 场景中可稳定支撑 \textbf{10W QPS} 级别请求。
\end{itemize}
\ResumeItem[EncryptSql 基于 PostgreSQL 的透明加密查询与运算框架]
{\textbf{EncryptSQL} 基于 PostgreSQL 的透明加密查询与运算框架}
[学校横向|部分代码开发]
% {\ResumeUrl{https://github.com/BITNP/BIThesis}
% }
[2024.09 — 2025.09]
\begin{itemize}
\item 在客户端侧对 \textbf{libpq} 进行改造,实现 \textbf{SQL 解析后重写}:将原生表达式/运算符节点替换为密态版本的函数/算子调用,使业务侧尽量无需改动即可使用加密能力。
\item 基于 \textbf{PostgreSQL 扩展机制}(如自定义函数/算子等)接入密态运算:支持常见算术运算(加/减/乘/除)与部分聚合能力,运算由自定义实现承载并与查询执行流程集成。
\item 设计并实现基于工厂模式的 \textbf{KMS 调用接口框架},在\texttt{encryptsql} 组件中通过统一接口完成密钥获取/管理;实现 \textbf{LocalKMS}\textbf{HuaweiKMS API的接口适配}用于本地开发,并支持替换为任意实现该接口的外部 KMS 系统。
\item 针对耗时较长/安全要求更高的计算场景,引入 \textbf{可信执行环境(TEE)} 执行部分运算流程。
\end{itemize}
% \section{个人总结}
% \begin{itemize}
% \item 本人乐观开朗、在校成绩优异、自驱能力强,具有良好的沟通能力和团队合作精神。
% \item 可以使用英语进行工作交流(六级成绩 XXX平时有阅读英文书籍和口语练习的习惯。
% \item 有六年 Linux 使用经验,较为丰富的软件开发经验、开源项目贡献和维护经验。善于技术写作,持续关注互联网技术发展。
% \end{itemize}
\end{document}

72
readme.md Normal file
View File

@@ -0,0 +1,72 @@
# Resume-NG
A LaTeX resume designed for optimal information density and aesthetic appeal.
> [!IMPORTANT]
> [English Version is in Here!](https://github.com/fky2015/resume-ng/tree/english).
> You can also find a download link in [GitHub Release](https://github.com/fky2015/resume-ng/releases/latest).
一个旨在实现最佳的信息密度和美学吸引力的 $\LaTeX$ 简历排版模板项目。
> [!NOTE]
> 不熟悉 LaTeX欢迎尝鲜 Typst 版本的 [Resume-NG](https://github.com/fky2015/resume-ng-typst)
<div align="center">
<img src="https://github.com/fky2015/resume-ng/assets/16451516/0934b2be-6b8f-4766-a242-6c07b7036f1f" width="90%">
</div>
本模板的特性包括:
- 通过调整排版提高简历的信息密度。
- 支持生成 PDF 书签。
- 精简依赖,不默认引入其他字体,不默认引入图标。
- 提供超链接、脚注、非重点内容的排版示例。
- (🖼️)支持插入照片(请看代码注释)。
## 使用方法
### 本地编译
0. 确保已经安装 LaTeX 发行版。
1. **克隆或下载**本项目代码。
2. 直接运行 `latexmk` 即可。
### Overleaf 在线平台
直接访问[此链接][overleaf]即可。
## 宏
常用用法可参考 `main.tex` 中的示例内容。
- `\ResumeName{}` 定义简历标题(一般是姓名)。
- `\ResumeContact{}` 添加一个联系方式。
- `\ResumeContacts{itemA, itemB, itemC}` 添加多个联系方式。
- `\ResumeTitle` 渲染标题和联系方式。
- `\section{}` 节标题。
- `\ResumeItem[]{}[][]`
1. 可选参数,控制 PDF 书签内容。如果不提供则采用参数 2。
2. 项标题,左对齐。
3. 可选参数,补充信息,在参数 2 后显示。
4. 可选参数,右对齐。
- `\GrayText{}` 改变文字内容为灰色。
- `\ResumeUrl{}{}` 带有下划线的 `\href` 命令,与 `\href` 用法相同。
> `[]` 为可选参数, `{}` 为必需参数。
## 包依赖
**如果你使用 TeXLive/MiKTeX 等主流发行版,可以直接使用本项目,无需手动安装依赖。**
## 有用的相关资源
- [Resume Improvement](https://intdouble.com/resume/)
- GPTs
## 致谢
该项目主要受到 [hijiangtao/resume](https://github.com/hijiangtao/resume) 的启发,
并基于“提高一页简历中的信息密度”这一排版思路而进一步改进,
并采用 $\LaTeX3$ 写成。
[overleaf]: https://www.overleaf.com/docs?snip_uri=https://github.com/fky2015/resume-ng/releases/latest/download/resume-ng-zh.zip&engine=xelatex

173
resume.cls Normal file
View File

@@ -0,0 +1,173 @@
\RequirePackage{expl3,l3keys2e}
\ProvidesExplClass{resume}
{2022-12-26}{0.1.0}{Another Resume Class by Feng Kaiyu}
% Keep Quiet
\PassOptionsToPackage{quiet}{xeCJK}
\ProcessOptions\relax
\LoadClass[zihao=5,autoindent=0.5em]{ctexart}
% Define paper size.
\RequirePackage{geometry}
% Remove the default header and footer.
\RequirePackage{fancyhdr}
% Redefine list style.
\RequirePackage{enumitem}
% Align all footnotes in a row.
\RequirePackage[para]{footmisc}
\RequirePackage[colorlinks=false,hidelinks,]{hyperref}
% For the usage of `\CJKunderline`.
\RequirePackage{xeCJKfntef}
% Provide colors.
\RequirePackage{xcolor}
% Clean pagestyle.
\pagestyle{empty}
% Adopt A4 style but with smaller margins.
\geometry{a4paper,margin=1cm, bottom=0.5cm}
%%% Global Variables %%%
% Store all contacts info.
\seq_new:N \g__resume_contacts_seq
% Store title name.
\tl_new:N \g__resume_title_name_tl
%%% Global Settings %%%
% No page number.
\pagenumbering{gobble}
% Set the style of section title.
\ctexset{
section = {
nameformat = {},
number = {},
format = \noindent \zihao{4} \heiti \__resume_section_title_format:n,
indent = -1em,
afterskip = 0.5em,
beforeskip = 0.2em,
},
}
% Set the style of list.
\setlist{
labelsep=2pt,
labelwidth=5pt,
leftmargin=1.3em,
itemsep=0em,
parsep=0.20em,
topsep=0em,
}
% Set the line spacing.
\linespread{1.15}
% New counter for bookmarks.
\newcounter{resumebookmark}
%%% User Commands %%%
% Predefined commands.
\cs_new:Npn \__resume_append_concat:n #1
{
\seq_put_right:Nn \g__resume_contacts_seq {#1}
}
% Predefined commands.
\cs_new:Npn \__resume_section_title_format:n #1
{#1 \vspace{3pt} \hrule}
% Add a contant info.
\NewDocumentCommand{\ResumeContact}{m}
{
\__resume_append_concat:n {#1}
}
% Add multiple contant info.
% ```
% \ResumeContacts{ itemA, itemB, itemC }
% ```
\NewDocumentCommand{\ResumeContacts}{m}
{
\seq_set_from_clist:Nn \l__input_seq:N {#1}
\seq_map_inline:Nn \l__input_seq:N
{
\__resume_append_concat:n {##1}
}
}
% Add your resume title, which generally is your name.
\NewDocumentCommand{\ResumeName}{m}
{
\tl_set:Nn \g__resume_title_name_tl {#1}
}
% Render the title.
\NewDocumentCommand{\ResumeTitle}{}
{
\begin{center}
\zihao{-2} \heiti \g__resume_title_name_tl
\end{center}
% Reduce the space.
\vspace{-1.4em}
\begin{center}
\seq_use:Nnnn \g__resume_contacts_seq {~|~} {~|~} {~|~}
\end{center}
}
% Render the section title.
% #1(optional): This content will be used as the bookmark in PDF.
% #2: The title of the section.
% #3(optional): The additional information of the section.
% #4(optional): The right-aligned content, which normally will be the date range.
\NewDocumentCommand{\ResumeItem}{omoo}
{
{
\zihao{-4}
\par
\noindent
{
\heiti
#2
\IfValueTF{#1}
{
\pdfbookmark[2]{#1}{subsec:\arabic{resumebookmark}}
}
{
\pdfbookmark[2]{#2}{subsec:\arabic{resumebookmark}}
}
\stepcounter{resumebookmark}
}
\IfValueT{#3}{
\tl_if_empty:nF {#3} {
\ |
\textit{
#3
}
}
}
\hfill
\IfValueT{#4}{
#4
}
\par
}
}
% Gray out the content.
\NewDocumentCommand{\GrayText}{m}
{
\textcolor{gray}{#1}
}
% Render content with a hyperlink, marked with underline.
\NewDocumentCommand{\ResumeUrl}{mm}
{
\href{#1}{\CJKunderline{#2}}
}
\endinput