commit 737558315b2c7aacb00c53e63a436a2a73780a88 Author: 1iaan <139833683+1iaan@users.noreply.github.com> Date: Tue Dec 30 21:10:16 2025 +0800 init resume diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6bfef6a --- /dev/null +++ b/.gitignore @@ -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 diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..69adb60 --- /dev/null +++ b/LICENSE @@ -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. + diff --git a/image.png b/image.png new file mode 100644 index 0000000..e2b524c Binary files /dev/null and b/image.png differ diff --git a/image2.png b/image2.png new file mode 100644 index 0000000..bea9a25 Binary files /dev/null and b/image2.png differ diff --git a/latexmkrc b/latexmkrc new file mode 100644 index 0000000..267b0c2 --- /dev/null +++ b/latexmkrc @@ -0,0 +1,3 @@ +$pdf_mode = 5; +$dvi_mode = 0; +$postscript_mode = 0; diff --git a/main.pdf b/main.pdf new file mode 100644 index 0000000..0e2f322 Binary files /dev/null and b/main.pdf differ diff --git a/main.tex b/main.tex new file mode 100644 index 0000000..115efed --- /dev/null +++ b/main.tex @@ -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} diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..6970969 --- /dev/null +++ b/readme.md @@ -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)! + +
+ +
+ +本模板的特性包括: +- 通过调整排版提高简历的信息密度。 +- 支持生成 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 diff --git a/resume.cls b/resume.cls new file mode 100644 index 0000000..64be84f --- /dev/null +++ b/resume.cls @@ -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