my resume template
This commit is contained in:
parent
2046cbb577
commit
32c458f85a
11 changed files with 1570 additions and 121 deletions
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
*.aux
|
||||||
|
*.log
|
||||||
|
*.pdf
|
||||||
|
trash
|
||||||
417
LICENCE
Normal file
417
LICENCE
Normal file
|
|
@ -0,0 +1,417 @@
|
||||||
|
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 LaTeX3 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.
|
||||||
|
|
||||||
|
|
||||||
12
Makefile
Normal file
12
Makefile
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
.PHONY: examples
|
||||||
|
|
||||||
|
CC = xelatex
|
||||||
|
EXAMPLES_DIR = examples
|
||||||
|
RESUME_DIR = examples/resume
|
||||||
|
CV_DIR = examples/cv
|
||||||
|
RESUME_SRCS = $(shell find $(RESUME_DIR) -name '*.tex')
|
||||||
|
CV_SRCS = $(shell find $(CV_DIR) -name '*.tex')
|
||||||
|
|
||||||
|
|
||||||
|
resume.pdf: $(EXAMPLES_DIR)/resume.tex $(RESUME_SRCS)
|
||||||
|
$(CC) -output-directory=$(EXAMPLES_DIR) $<
|
||||||
129
README.md
129
README.md
|
|
@ -1,126 +1,13 @@
|
||||||
<h1 align="center">
|
This is taken from: https://github.com/posquit0/Awesome-CV
|
||||||
<a href="https://github.com/posquit0/Awesome-CV" title="AwesomeCV Documentation">
|
|
||||||
<img alt="AwesomeCV" src="https://github.com/posquit0/Awesome-CV/raw/master/icon.png" width="200px" height="200px" />
|
|
||||||
</a>
|
|
||||||
<br />
|
|
||||||
Awesome CV
|
|
||||||
</h1>
|
|
||||||
|
|
||||||
<p align="center">
|
and contains only content changes to build my resume
|
||||||
LaTeX template for your outstanding job application
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div align="center">
|
# reminders to my future self
|
||||||
<a href="https://www.paypal.me/posquit0">
|
|
||||||
<img alt="Donate" src="https://img.shields.io/badge/Donate-PayPal-blue.svg" />
|
|
||||||
</a>
|
|
||||||
<a href="https://github.com/posquit0/Awesome-CV/actions/workflows/main.yml">
|
|
||||||
<img alt="GitHub Actions" src="https://github.com/posquit0/Awesome-CV/actions/workflows/main.yml/badge.svg" />
|
|
||||||
</a>
|
|
||||||
<a href="https://raw.githubusercontent.com/posquit0/Awesome-CV/master/examples/resume.pdf">
|
|
||||||
<img alt="Example Resume" src="https://img.shields.io/badge/resume-pdf-green.svg" />
|
|
||||||
</a>
|
|
||||||
<a href="https://raw.githubusercontent.com/posquit0/Awesome-CV/master/examples/cv.pdf">
|
|
||||||
<img alt="Example CV" src="https://img.shields.io/badge/cv-pdf-green.svg" />
|
|
||||||
</a>
|
|
||||||
<a href="https://raw.githubusercontent.com/posquit0/Awesome-CV/master/examples/coverletter.pdf">
|
|
||||||
<img alt="Example Coverletter" src="https://img.shields.io/badge/coverletter-pdf-green.svg" />
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<br />
|
* clone that repo: https://github.com/posquit0/Awesome-CV
|
||||||
|
* replace Makefile / example folders with the ones in this repo
|
||||||
## What is Awesome CV?
|
|
||||||
|
|
||||||
**Awesome CV** is LaTeX template for a **CV(Curriculum Vitae)**, **Résumé** or **Cover Letter** inspired by [Fancy CV](https://www.sharelatex.com/templates/cv-or-resume/fancy-cv). It is easy to customize your own template, especially since it is really written by a clean, semantic markup.
|
|
||||||
|
|
||||||
|
|
||||||
## Donate
|
|
||||||
|
|
||||||
Please help keep this project alive! Donations are welcome and will go towards further development of this project.
|
|
||||||
|
|
||||||
PayPal: paypal.me/posquit0
|
|
||||||
|
|
||||||
*Thank you for your support!*
|
|
||||||
|
|
||||||
## Preview
|
|
||||||
|
|
||||||
#### Résumé
|
|
||||||
|
|
||||||
You can see [PDF](https://raw.githubusercontent.com/posquit0/Awesome-CV/master/examples/resume.pdf)
|
|
||||||
|
|
||||||
| Page. 1 | Page. 2 |
|
|
||||||
|:---:|:---:|
|
|
||||||
| [](https://raw.githubusercontent.com/posquit0/Awesome-CV/master/examples/resume.pdf) | [](https://raw.githubusercontent.com/posquit0/Awesome-CV/master/examples/resume.pdf) |
|
|
||||||
|
|
||||||
#### Cover Letter
|
|
||||||
|
|
||||||
You can see [PDF](https://raw.githubusercontent.com/posquit0/Awesome-CV/master/examples/coverletter.pdf)
|
|
||||||
|
|
||||||
| Without Sections | With Sections |
|
|
||||||
|:---:|:---:|
|
|
||||||
| [](https://raw.githubusercontent.com/posquit0/Awesome-CV/master/examples/coverletter.pdf) | [](https://raw.githubusercontent.com/posquit0/Awesome-CV/master/examples/coverletter.pdf) |
|
|
||||||
|
|
||||||
|
|
||||||
## Quick Start
|
|
||||||
|
|
||||||
* [**Edit Résumé on OverLeaf.com**](https://www.overleaf.com/latex/templates/awesome-cv/tvmzpvdjfqxp)
|
|
||||||
* [**Edit Cover Letter on OverLeaf.com**](https://www.overleaf.com/latex/templates/awesome-cv-cover-letter/pfzzjspkthbk)
|
|
||||||
|
|
||||||
**_Note:_ Above services do not guarantee up-to-date source code of Awesome CV**
|
|
||||||
|
|
||||||
|
|
||||||
## How to Use
|
|
||||||
|
|
||||||
#### Requirements
|
|
||||||
|
|
||||||
A full TeX distribution is assumed. [Various distributions for different operating systems (Windows, Mac, \*nix) are available](http://tex.stackexchange.com/q/55437) but TeX Live is recommended.
|
|
||||||
You can [install TeX from upstream](https://tex.stackexchange.com/q/1092) (recommended; most up-to-date) or use `sudo apt-get install texlive-full` if you really want that. (It's generally a few years behind.)
|
|
||||||
|
|
||||||
If you don't want to install the dependencies on your system, this can also be obtained via [Docker](https://docker.com).
|
|
||||||
|
|
||||||
#### Usage
|
|
||||||
|
|
||||||
At a command prompt, run
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
xelatex {your-cv}.tex
|
# build:
|
||||||
```
|
docker run --rm --user $(id -u):$(id -g) -i -w "/doc" -v "$PWD":/doc thomasweise/docker-texlive-full make
|
||||||
|
```
|
||||||
Or using docker:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
docker run --rm --user $(id -u):$(id -g) -i -w "/doc" -v "$PWD":/doc thomasweise/texlive make
|
|
||||||
```
|
|
||||||
|
|
||||||
In either case, this should result in the creation of ``{your-cv}.pdf``
|
|
||||||
|
|
||||||
|
|
||||||
## Credit
|
|
||||||
|
|
||||||
[**LaTeX**](https://www.latex-project.org) is a fantastic typesetting program that a lot of people use these days, especially the math and computer science people in academia.
|
|
||||||
|
|
||||||
[**LaTeX FontAwesome**](https://github.com/furl/latex-fontawesome) is bindings for FontAwesome icons to be used in XeLaTeX.
|
|
||||||
|
|
||||||
[**Roboto**](https://github.com/google/roboto) is the default font on Android and ChromeOS, and the recommended font for Google’s visual language, Material Design.
|
|
||||||
|
|
||||||
[**Source Sans Pro**](https://github.com/adobe-fonts/source-sans-pro) is a set of OpenType fonts that have been designed to work well in user interface (UI) environments.
|
|
||||||
|
|
||||||
|
|
||||||
## Contact
|
|
||||||
|
|
||||||
You are free to take my `.tex` file and modify it to create your own resume. Please don't use my resume for anything else without my permission, though!
|
|
||||||
|
|
||||||
If you have any questions, feel free to join me at [`#posquit0` on Freenode](irc://irc.freenode.net/posquit0) and ask away. Click [here](https://kiwiirc.com/client/irc.freenode.net/posquit0) to connect.
|
|
||||||
|
|
||||||
Good luck!
|
|
||||||
|
|
||||||
|
|
||||||
## Maintainers
|
|
||||||
- [posquit0](https://github.com/posquit0)
|
|
||||||
- [OJFord](https://github.com/OJFord)
|
|
||||||
|
|
||||||
|
|
||||||
## See Also
|
|
||||||
|
|
||||||
* [Awesome Identity](https://github.com/posquit0/hugo-awesome-identity) - A single-page Hugo theme to introduce yourself.
|
|
||||||
813
awesome-cv.cls
Normal file
813
awesome-cv.cls
Normal file
|
|
@ -0,0 +1,813 @@
|
||||||
|
%% Start of file `awesome-cv.cls'.
|
||||||
|
% Awesome CV Class File
|
||||||
|
%
|
||||||
|
% This class has been downloaded from:
|
||||||
|
% https://github.com/posquit0/Awesome-CV
|
||||||
|
%
|
||||||
|
% Author:
|
||||||
|
% Claud D. Park <posquit0.bj@gmail.com>
|
||||||
|
% http://www.posquit0.com
|
||||||
|
%
|
||||||
|
% Notes:
|
||||||
|
% 1) This class file defines the structure and layout of the template file (cv.tex, resume.tex).
|
||||||
|
% 2) It has been written in such a way that under most circumstances you
|
||||||
|
% should not need to edit it.
|
||||||
|
%
|
||||||
|
% Class license:
|
||||||
|
% LPPL v1.3c (http://www.latex-project.org/lppl)
|
||||||
|
%
|
||||||
|
|
||||||
|
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% Identification
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
\ProvidesClass{awesome-cv}[2017/02/05 v1.6.1 Awesome Curriculum Vitae Class]
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
|
||||||
|
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% Class options
|
||||||
|
%
|
||||||
|
% (need to be done before the external package loading, for example because
|
||||||
|
% we need \paperwidth, \paperheight and \@ptsize to be defined before loading
|
||||||
|
% geometry and fancyhdr)
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% Options for draft or final
|
||||||
|
\DeclareOption{draft}{\setlength\overfullrule{5pt}}
|
||||||
|
\DeclareOption{final}{\setlength\overfullrule{0pt}}
|
||||||
|
% Inherit options of article
|
||||||
|
\DeclareOption*{%
|
||||||
|
\PassOptionsToClass{\CurrentOption}{article}
|
||||||
|
}
|
||||||
|
\ProcessOptions\relax
|
||||||
|
\LoadClass{article}
|
||||||
|
|
||||||
|
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% 3rd party packages
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% Needed to make fixed length table
|
||||||
|
\RequirePackage{array}
|
||||||
|
% Needed to handle list environment
|
||||||
|
\RequirePackage{enumitem}
|
||||||
|
% Needed to handle text alignment
|
||||||
|
\RequirePackage{ragged2e}
|
||||||
|
% Needed to configure page layout
|
||||||
|
\RequirePackage{geometry}
|
||||||
|
% Needed to make header & footer efficiently
|
||||||
|
\RequirePackage{fancyhdr}
|
||||||
|
% Needed to manage colors
|
||||||
|
\RequirePackage{xcolor}
|
||||||
|
% Needed to use \ifxetex-\else-\fi statement
|
||||||
|
\RequirePackage{ifxetex}
|
||||||
|
% Needed to use \if-\then-\else statement
|
||||||
|
\RequirePackage{xifthen}
|
||||||
|
% Needed to strip chars from telephone number
|
||||||
|
\RequirePackage{xstring}
|
||||||
|
% Needed to use a toolbox of programming tools
|
||||||
|
\RequirePackage{etoolbox}
|
||||||
|
% Needed to change line spacing in specific environment
|
||||||
|
\RequirePackage{setspace}
|
||||||
|
% Needed to manage fonts
|
||||||
|
\RequirePackage[quiet]{fontspec}
|
||||||
|
% To support LaTeX quoting style
|
||||||
|
\defaultfontfeatures{Ligatures=TeX}
|
||||||
|
% Needed to manage math fonts
|
||||||
|
\RequirePackage{unicode-math}
|
||||||
|
% Needed to use icons from font-awesome
|
||||||
|
\RequirePackage{fontawesome5}
|
||||||
|
\RequirePackage{roboto}
|
||||||
|
\RequirePackage[default,opentype]{sourcesanspro}
|
||||||
|
% Needed for the photo ID
|
||||||
|
\RequirePackage[skins]{tcolorbox}
|
||||||
|
% Needed to deal a paragraphs
|
||||||
|
\RequirePackage{parskip}
|
||||||
|
% Needed to deal hyperlink
|
||||||
|
\RequirePackage[hidelinks,unicode,pdfpagelabels=false]{hyperref}
|
||||||
|
\hypersetup{%
|
||||||
|
pdftitle={},
|
||||||
|
pdfauthor={},
|
||||||
|
pdfsubject={},
|
||||||
|
pdfkeywords={}
|
||||||
|
}
|
||||||
|
% Solves issues Warning: File `cv.out' has changed
|
||||||
|
\RequirePackage{bookmark}
|
||||||
|
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% Configuration for directory locations
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% Configure an optional directory location for fonts(default: 'fonts/')
|
||||||
|
% Not required anymore but left in place for backward compatability.
|
||||||
|
\newcommand*{\fontdir}[1][fonts/]{\def\@fontdir{#1}}
|
||||||
|
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% Configuration for layout
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
%% Page Layout
|
||||||
|
% Configure page margins with geometry
|
||||||
|
\geometry{left=2.0cm, top=1.5cm, right=2.0cm, bottom=2.0cm, footskip=.5cm}
|
||||||
|
|
||||||
|
%% Header & Footer
|
||||||
|
% Set offset to each header and footer
|
||||||
|
\fancyhfoffset{0em}
|
||||||
|
% Remove head rule
|
||||||
|
\renewcommand{\headrulewidth}{0pt}
|
||||||
|
% Clear all header & footer fields
|
||||||
|
\fancyhf{}
|
||||||
|
% Enable if you want to make header or footer using fancyhdr
|
||||||
|
\pagestyle{fancy}
|
||||||
|
|
||||||
|
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% Configuration for colors
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% Gray-scale colors
|
||||||
|
\definecolor{white}{HTML}{FFFFFF}
|
||||||
|
\definecolor{black}{HTML}{000000}
|
||||||
|
\definecolor{darkgray}{HTML}{333333}
|
||||||
|
\definecolor{gray}{HTML}{5D5D5D}
|
||||||
|
\definecolor{lightgray}{HTML}{999999}
|
||||||
|
% Basic colors
|
||||||
|
\definecolor{green}{HTML}{C2E15F}
|
||||||
|
\definecolor{orange}{HTML}{FDA333}
|
||||||
|
\definecolor{purple}{HTML}{D3A4F9}
|
||||||
|
\definecolor{red}{HTML}{FB4485}
|
||||||
|
\definecolor{blue}{HTML}{6CE0F1}
|
||||||
|
% Text colors
|
||||||
|
\definecolor{darktext}{HTML}{414141}
|
||||||
|
\colorlet{text}{darkgray}
|
||||||
|
\colorlet{graytext}{gray}
|
||||||
|
\colorlet{lighttext}{lightgray}
|
||||||
|
\colorlet{sectiondivider}{gray}
|
||||||
|
% Awesome colors
|
||||||
|
\definecolor{awesome-emerald}{HTML}{00A388}
|
||||||
|
\definecolor{awesome-skyblue}{HTML}{0395DE}
|
||||||
|
\definecolor{awesome-red}{HTML}{DC3522}
|
||||||
|
\definecolor{awesome-pink}{HTML}{EF4089}
|
||||||
|
\definecolor{awesome-orange}{HTML}{FF6138}
|
||||||
|
\definecolor{awesome-nephritis}{HTML}{27AE60}
|
||||||
|
\definecolor{awesome-concrete}{HTML}{95A5A6}
|
||||||
|
\definecolor{awesome-darknight}{HTML}{131A28}
|
||||||
|
\colorlet{awesome}{awesome-red}
|
||||||
|
|
||||||
|
% Boolean value to switch section color highlighting
|
||||||
|
\newbool{acvSectionColorHighlight}
|
||||||
|
\setbool{acvSectionColorHighlight}{true}
|
||||||
|
|
||||||
|
% Awesome section color
|
||||||
|
\def\@sectioncolor#1#2#3{%
|
||||||
|
\ifbool{acvSectionColorHighlight}{{\color{awesome}#1#2#3}}{#1#2#3}%
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% Configuration for fonts
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
\newcommand*{\headerfont}{\roboto}
|
||||||
|
\newcommand*{\headerfontlight}{\robotolight}
|
||||||
|
\newcommand*{\footerfont}{\sourcesanspro}
|
||||||
|
\newcommand*{\bodyfont}{\sourcesanspro}
|
||||||
|
\newcommand*{\bodyfontlight}{\sourcesansprolight}
|
||||||
|
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% Configuration for styles
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% Configure styles for each CV elements
|
||||||
|
% For fundamental structures
|
||||||
|
\newcommand*{\headerfirstnamestyle}[1]{{\fontsize{32pt}{1em}\headerfontlight\color{graytext} #1}}
|
||||||
|
\newcommand*{\headerlastnamestyle}[1]{{\fontsize{32pt}{1em}\headerfont\bfseries\color{text} #1}}
|
||||||
|
\newcommand*{\headerpositionstyle}[1]{{\fontsize{7.6pt}{1em}\bodyfont\scshape\color{awesome} #1}}
|
||||||
|
\newcommand*{\headeraddressstyle}[1]{{\fontsize{8pt}{1em}\headerfont\itshape\color{lighttext} #1}}
|
||||||
|
\newcommand*{\headersocialstyle}[1]{{\fontsize{6.8pt}{1em}\headerfont\color{text} #1}}
|
||||||
|
\newcommand*{\headerquotestyle}[1]{{\fontsize{9pt}{1em}\bodyfont\itshape\color{darktext} #1}}
|
||||||
|
\newcommand*{\footerstyle}[1]{{\fontsize{8pt}{1em}\footerfont\scshape\color{lighttext} #1}}
|
||||||
|
\newcommand*{\sectionstyle}[1]{{\fontsize{16pt}{1em}\bodyfont\bfseries\color{text}\@sectioncolor #1}}
|
||||||
|
\newcommand*{\subsectionstyle}[1]{{\fontsize{12pt}{1em}\bodyfont\scshape\textcolor{text}{#1}}}
|
||||||
|
\newcommand*{\paragraphstyle}{\fontsize{9pt}{1em}\bodyfontlight\upshape\color{text}}
|
||||||
|
|
||||||
|
% For elements of entry
|
||||||
|
\newcommand*{\entrytitlestyle}[1]{{\fontsize{10pt}{1em}\bodyfont\bfseries\color{darktext} #1}}
|
||||||
|
\newcommand*{\entrypositionstyle}[1]{{\fontsize{8pt}{1em}\bodyfont\scshape\color{graytext} #1}}
|
||||||
|
\newcommand*{\entrydatestyle}[1]{{\fontsize{8pt}{1em}\bodyfontlight\slshape\color{graytext} #1}}
|
||||||
|
\newcommand*{\entrylocationstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\slshape\color{awesome} #1}}
|
||||||
|
\newcommand*{\descriptionstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\upshape\color{text} #1}}
|
||||||
|
|
||||||
|
% For elements of subentry
|
||||||
|
\newcommand*{\subentrytitlestyle}[1]{{\fontsize{8pt}{1em}\bodyfont\mdseries\color{graytext} #1}}
|
||||||
|
\newcommand*{\subentrypositionstyle}[1]{{\fontsize{7pt}{1em}\bodyfont\scshape\color{graytext} #1}}
|
||||||
|
\newcommand*{\subentrydatestyle}[1]{{\fontsize{7pt}{1em}\bodyfontlight\slshape\color{graytext} #1}}
|
||||||
|
\newcommand*{\subentrylocationstyle}[1]{{\fontsize{7pt}{1em}\bodyfontlight\slshape\color{awesome} #1}}
|
||||||
|
\newcommand*{\subdescriptionstyle}[1]{{\fontsize{8pt}{1em}\bodyfontlight\upshape\color{text} #1}}
|
||||||
|
|
||||||
|
% For elements of honor
|
||||||
|
\newcommand*{\honortitlestyle}[1]{{\fontsize{9pt}{1em}\bodyfont\color{graytext} #1}}
|
||||||
|
\newcommand*{\honorpositionstyle}[1]{{\fontsize{9pt}{1em}\bodyfont\bfseries\color{darktext} #1}}
|
||||||
|
\newcommand*{\honordatestyle}[1]{{\fontsize{9pt}{1em}\bodyfont\color{graytext} #1}}
|
||||||
|
\newcommand*{\honorlocationstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\slshape\color{awesome} #1}}
|
||||||
|
|
||||||
|
% For elements of skill
|
||||||
|
\newcommand*{\skilltypestyle}[1]{{\fontsize{10pt}{1em}\bodyfont\bfseries\color{darktext} #1}}
|
||||||
|
\newcommand*{\skillsetstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\color{text} #1}}
|
||||||
|
|
||||||
|
% For elements of the cover letter
|
||||||
|
\newcommand*{\lettersectionstyle}[1]{{\fontsize{14pt}{1em}\bodyfont\bfseries\color{text}\@sectioncolor #1}}
|
||||||
|
\newcommand*{\recipientaddressstyle}[1]{{\fontsize{9pt}{1em}\bodyfont\scshape\color{graytext} #1}}
|
||||||
|
\newcommand*{\recipienttitlestyle}[1]{{\fontsize{11pt}{1em}\bodyfont\bfseries\color{darktext} #1}}
|
||||||
|
\newcommand*{\lettertitlestyle}[1]{{\fontsize{10pt}{1em}\bodyfontlight\bfseries\color{darktext} \underline{#1}}}
|
||||||
|
\newcommand*{\letterdatestyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\slshape\color{graytext} #1}}
|
||||||
|
\newcommand*{\lettertextstyle}{\fontsize{10pt}{1.4em}\bodyfontlight\upshape\color{graytext}}
|
||||||
|
\newcommand*{\letternamestyle}[1]{{\fontsize{10pt}{1em}\bodyfont\bfseries\color{darktext} #1}}
|
||||||
|
\newcommand*{\letterenclosurestyle}[1]{{\fontsize{10pt}{1em}\bodyfontlight\slshape\color{lighttext} #1}}
|
||||||
|
|
||||||
|
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% Commands for personal information
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% Define photo ID
|
||||||
|
% Usage: \photo[circle|rectangle,edge|noedge,left|right]{<path-to-image>}
|
||||||
|
\newcommand{\photo}[2][circle,edge,left]{%
|
||||||
|
\def\@photo{#2}
|
||||||
|
\@for\tmp:=#1\do{%
|
||||||
|
\ifthenelse{\equal{\tmp}{circle} \or \equal{\tmp}{rectangle}}%
|
||||||
|
{\let\@photoshape\tmp}{}%
|
||||||
|
\ifthenelse{\equal{\tmp}{edge} \or \equal{\tmp}{noedge}}%
|
||||||
|
{\let\@photoedge\tmp}{}%
|
||||||
|
\ifthenelse{\equal{\tmp}{left} \or \equal{\tmp}{right}}%
|
||||||
|
{\let\@photoalign\tmp}{}%
|
||||||
|
}%
|
||||||
|
}
|
||||||
|
\def\@photoshape{circle}
|
||||||
|
\def\@photoedge{edge}
|
||||||
|
\def\@photoalign{left}
|
||||||
|
|
||||||
|
% Define writer's name
|
||||||
|
% Usage: \name{<firstname>}{<lastname>}
|
||||||
|
% Usage: \firstname{<firstname>}
|
||||||
|
% Usage: \lastname{<lastname>}
|
||||||
|
% Usage: \familyname{<familyname>}
|
||||||
|
\newcommand*{\name}[2]{\def\@firstname{#1}\def\@lastname{#2}}
|
||||||
|
\newcommand*{\firstname}[1]{\def\@firstname{#1}}
|
||||||
|
\newcommand*{\lastname}[1]{\def\@lastname{#1}}
|
||||||
|
\newcommand*{\familyname}[1]{\def\@lastname{#1}}
|
||||||
|
\def\@familyname{\@lastname}
|
||||||
|
|
||||||
|
% Define writer's address
|
||||||
|
% Usage: \address{<address>}
|
||||||
|
\newcommand*{\address}[1]{\def\@address{#1}}
|
||||||
|
|
||||||
|
% Define writer's position
|
||||||
|
% Usage: \position{<position>}
|
||||||
|
\newcommand*{\position}[1]{\def\@position{#1}}
|
||||||
|
|
||||||
|
% Defines writer's mobile (optional)
|
||||||
|
% Usage: \mobile{<mobile number>}
|
||||||
|
\newcommand*{\mobile}[1]
|
||||||
|
{
|
||||||
|
\def\@mobile{#1}
|
||||||
|
\def\@teluri{tel:\@mobile}
|
||||||
|
% Strip unwanted characters
|
||||||
|
\StrDel{\@teluri}{ }[\@teluri]%
|
||||||
|
\StrDel{\@teluri}{-}[\@teluri]%
|
||||||
|
\StrDel{\@teluri}{(}[\@teluri]%
|
||||||
|
\StrDel{\@teluri}{)}[\@teluri]%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Defines writer's email (optional)
|
||||||
|
% Usage: \email{<email address>}
|
||||||
|
\newcommand*{\email}[1]{\def\@email{#1}}
|
||||||
|
|
||||||
|
% Defines writer's date of birth (optional)
|
||||||
|
% Usage: \dateofbirth{<date>}
|
||||||
|
\newcommand*{\dateofbirth}[1]{\def\@dateofbirth{#1}}
|
||||||
|
|
||||||
|
% Defines writer's homepage (optional)
|
||||||
|
% Usage: \homepage{<url>}
|
||||||
|
\newcommand*{\homepage}[1]{\def\@homepage{#1}}
|
||||||
|
|
||||||
|
% Defines writer's github (optional)
|
||||||
|
% Usage: \github{<github-nick>}
|
||||||
|
\newcommand*{\github}[1]{\def\@github{#1}}
|
||||||
|
|
||||||
|
% Defines writer's gitlab (optional)
|
||||||
|
% Usage: \gitlab{<gitlab-nick>}
|
||||||
|
\newcommand*{\gitlab}[1]{\def\@gitlab{#1}}
|
||||||
|
|
||||||
|
% Defines writer's bitbucket (optional)
|
||||||
|
% Usage: \bitbucket{<bitbucket-nick>}
|
||||||
|
\newcommand*{\bitbucket}[1]{\def\@bitbucket{#1}}
|
||||||
|
|
||||||
|
% Defines writer's stackoverflow profile (optional)
|
||||||
|
% Usage: \stackoverflow{<so userid>}{<so username>}
|
||||||
|
% e.g.https://stackoverflow.com/users/123456/sam-smith
|
||||||
|
% would be \stackoverflow{123456}{sam-smith}
|
||||||
|
\newcommand*{\stackoverflow}[2]{\def\@stackoverflowid{#1}\def\@stackoverflowname{#2}}
|
||||||
|
|
||||||
|
% Defines writer's linked-in (optional)
|
||||||
|
% Usage: \linkedin{<linked-in-nick>}
|
||||||
|
\newcommand*{\linkedin}[1]{\def\@linkedin{#1}}
|
||||||
|
|
||||||
|
% Defines writer's orcid (optional)
|
||||||
|
% Usage: \orcid{<orcid-num>}
|
||||||
|
\newcommand*{\orcid}[1]{\def\@orcid{#1}}
|
||||||
|
|
||||||
|
% Defines writer's twitter (optional)
|
||||||
|
% Usage: \twitter{<twitter handle>}
|
||||||
|
\newcommand*{\twitter}[1]{\def\@twitter{#1}}
|
||||||
|
|
||||||
|
% Defines writer's Mastodon (optional)
|
||||||
|
% Usage: \mastodon{<instance>}{<mastodon-nick>}
|
||||||
|
\newcommand*{\mastodon}[2]{\def\@mastodoninstance{#1}\def\@mastodonname{#2}}
|
||||||
|
|
||||||
|
% Defines writer's resarchgate (optional)
|
||||||
|
% Usage: \researchgate{<researchgate-account>}
|
||||||
|
\newcommand*{\researchgate}[1]{\def\@researchgate{#1}}
|
||||||
|
|
||||||
|
% Defines writer's skype (optional)
|
||||||
|
% Usage: \skype{<skype account>}
|
||||||
|
\newcommand*{\skype}[1]{\def\@skype{#1}}
|
||||||
|
|
||||||
|
% Defines writer's reddit (optional)
|
||||||
|
% Usage: \reddit{<reddit account>}
|
||||||
|
\newcommand*{\reddit}[1]{\def\@reddit{#1}}
|
||||||
|
|
||||||
|
% Defines writer's xing (optional)
|
||||||
|
% Usage: \xing{<xing name>}
|
||||||
|
\newcommand*{\xing}[1]{\def\@xing{#1}}
|
||||||
|
|
||||||
|
% Defines writer's medium profile (optional)
|
||||||
|
% Usage: \medium{<medium account>}
|
||||||
|
\newcommand*{\medium}[1]{\def\@medium{#1}}
|
||||||
|
|
||||||
|
% Defines writer's kaggle (optional)
|
||||||
|
% Usage: \kaggle{<kaggle handle>}
|
||||||
|
\newcommand*{\kaggle}[1]{\def\@kaggle{#1}}
|
||||||
|
|
||||||
|
% Defines writer's Hackerrank (optional)
|
||||||
|
% Usage: \hackerrank{<Hackerrank profile name>}
|
||||||
|
\newcommand*{\hackerrank}[1]{\def\@hackerrank{#1}}
|
||||||
|
|
||||||
|
% Defines writer's Telegram (optional)
|
||||||
|
% Usage: \telegram{<Telegram username>}
|
||||||
|
\newcommand*{\telegram}[1]{\def\@telegram{#1}}
|
||||||
|
|
||||||
|
% Defines writer's google scholar profile (optional)
|
||||||
|
% Usage: \googlescholar{<googlescholar userid>}{<googlescholar username>}
|
||||||
|
% e.g.https://scholar.google.co.uk/citations?user=wpZDx1cAAAAJ
|
||||||
|
% would be \googlescholar{wpZDx1cAAAAJ}{Name-to-display-next-icon}
|
||||||
|
% If 'googlescholar-name' is not provided than it defaults to
|
||||||
|
% '\firstname \lastname'
|
||||||
|
\newcommand*{\googlescholar}[2]{%
|
||||||
|
\def\@googlescholarid{#1}%
|
||||||
|
\ifthenelse{\equal{#2}{}}{%
|
||||||
|
\def\@googlescholarname{\@firstname~\@lastname}%
|
||||||
|
}{%
|
||||||
|
\def\@googlescholarname{#2}%
|
||||||
|
}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Defines writer's extra information (optional)
|
||||||
|
% Usage: \extrainfo{<extra information>}
|
||||||
|
\newcommand*{\extrainfo}[1]{\def\@extrainfo{#1}}
|
||||||
|
|
||||||
|
% Defines writer's quote (optional)
|
||||||
|
% Usage: \quote{<quote>}
|
||||||
|
\renewcommand*{\quote}[1]{\def\@quote{#1}}
|
||||||
|
|
||||||
|
% Defines recipient's information (cover letter only)
|
||||||
|
% Usage: \recipient{<recipient name>}{<recipient address>}
|
||||||
|
% Usage: \recipientname{<recipient name>}
|
||||||
|
% Usage: \recipientaddress{<recipient address>}
|
||||||
|
\newcommand*{\recipient}[2]{\def\@recipientname{#1}\def\@recipientaddress{#2}}
|
||||||
|
\newcommand*{\recipientname}[1]{\def\@recipientname{#1}}
|
||||||
|
\newcommand*{\recipientaddress}[1]{\def\@recipientaddress{#1}}
|
||||||
|
|
||||||
|
% Defines the title for letter (cover letter only, optional)
|
||||||
|
% Usage: \lettertitle{<title>}
|
||||||
|
\newcommand*{\lettertitle}[1]{\def\@lettertitle{#1}}
|
||||||
|
|
||||||
|
% Defines the date for letter (cover letter only)
|
||||||
|
% Usage: \letterdate{<date>}
|
||||||
|
\newcommand*{\letterdate}[1]{\def\@letterdate{#1}}
|
||||||
|
|
||||||
|
% Defines a message of opening for letter (cover letter only)
|
||||||
|
% Usage: \letteropening{<message>}
|
||||||
|
\newcommand*{\letteropening}[1]{\def\@letteropening{#1}}
|
||||||
|
|
||||||
|
% Defines a message of closing for letter (cover letter only)
|
||||||
|
% Usage: \letterclosing{<message>}
|
||||||
|
\newcommand*{\letterclosing}[1]{\def\@letterclosing{#1}}
|
||||||
|
|
||||||
|
% Defines an enclosure for letter (cover letter only, optional)
|
||||||
|
% Usage: \letterenclosure[<enclosure name>]{<enclosure>}
|
||||||
|
\newcommand*{\letterenclname}[1][Enclosure]{\def\@letterenclname{#1}}
|
||||||
|
\newcommand*{\letterenclosure}[2][]{%
|
||||||
|
% if an optional argument is provided, use it to redefine \enclname
|
||||||
|
\ifthenelse{\equal{#1}{}}{}{\def\@letterenclname{#1}}
|
||||||
|
\def\@letterenclosure{#2}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% Commands for extra
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
%% Define helper macros a user can change easily
|
||||||
|
% Header
|
||||||
|
\newcommand{\acvHeaderNameDelim}{\space}
|
||||||
|
\newcommand{\acvHeaderAfterNameSkip}{.4mm}
|
||||||
|
\newcommand{\acvHeaderAfterPositionSkip}{.4mm}
|
||||||
|
\newcommand{\acvHeaderAfterAddressSkip}{-.5mm}
|
||||||
|
\newcommand{\acvHeaderIconSep}{\space}
|
||||||
|
\newcommand{\acvHeaderSocialSep}{\quad\textbar\quad}
|
||||||
|
\newcommand{\acvHeaderAfterSocialSkip}{6mm}
|
||||||
|
\newcommand{\acvHeaderAfterQuoteSkip}{5mm}
|
||||||
|
|
||||||
|
% Others
|
||||||
|
\newcommand{\acvSectionTopSkip}{3mm}
|
||||||
|
\newcommand{\acvSectionContentTopSkip}{2.5mm}
|
||||||
|
|
||||||
|
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% Commands for utilities
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% Use to align an element of tabular table
|
||||||
|
\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
|
||||||
|
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
|
||||||
|
\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
|
||||||
|
|
||||||
|
% Use to draw horizontal line with specific thickness
|
||||||
|
\def\vhrulefill#1{\leavevmode\leaders\hrule\@height#1\hfill \kern\z@}
|
||||||
|
|
||||||
|
% Use to execute conditional statements by checking empty string
|
||||||
|
\newcommand*{\ifempty}[3]{\ifthenelse{\isempty{#1}}{#2}{#3}}
|
||||||
|
|
||||||
|
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% Commands for elements of CV structure
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% Define a header for CV
|
||||||
|
% Usage: \makecvheader
|
||||||
|
\newcommand*{\makecvheader}[1][C]{%
|
||||||
|
\newcommand*{\drawphoto}{%
|
||||||
|
\ifthenelse{\isundefined{\@photo}}{}{%
|
||||||
|
\newlength{\photodim}
|
||||||
|
\ifthenelse{\equal{\@photoshape}{circle}}%
|
||||||
|
{\setlength{\photodim}{1.3cm}}%
|
||||||
|
{\setlength{\photodim}{1.8cm}}%
|
||||||
|
\ifthenelse{\equal{\@photoedge}{edge}}%
|
||||||
|
{\def\@photoborder{darkgray}}%
|
||||||
|
{\def\@photoborder{none}}%
|
||||||
|
\begin{tikzpicture}%
|
||||||
|
\node[\@photoshape, draw=\@photoborder, line width=0.3mm, inner sep=\photodim, fill overzoom image=\@photo] () {};
|
||||||
|
\end{tikzpicture}
|
||||||
|
}%
|
||||||
|
}
|
||||||
|
\newlength{\headertextwidth}
|
||||||
|
\newlength{\headerphotowidth}
|
||||||
|
\ifthenelse{\isundefined{\@photo}}{
|
||||||
|
\setlength{\headertextwidth}{\textwidth}
|
||||||
|
\setlength{\headerphotowidth}{0cm}
|
||||||
|
}{%
|
||||||
|
\setlength{\headertextwidth}{0.76\textwidth}
|
||||||
|
\setlength{\headerphotowidth}{0.24\textwidth}
|
||||||
|
}%
|
||||||
|
\begin{minipage}[c]{\headerphotowidth}%
|
||||||
|
\ifthenelse{\equal{\@photoalign}{left}}{\raggedright\drawphoto}{}
|
||||||
|
\end{minipage}
|
||||||
|
\begin{minipage}[c]{\headertextwidth}
|
||||||
|
\ifthenelse{\equal{#1}{L}}{\raggedright}{\ifthenelse{\equal{#1}{R}}{\raggedleft}{\centering}}
|
||||||
|
\headerfirstnamestyle{\@firstname}\headerlastnamestyle{{}\acvHeaderNameDelim\@lastname}%
|
||||||
|
\\[\acvHeaderAfterNameSkip]%
|
||||||
|
\ifthenelse{\isundefined{\@position}}{}{\headerpositionstyle{\@position\\[\acvHeaderAfterPositionSkip]}}%
|
||||||
|
\ifthenelse{\isundefined{\@address}}{}{\headeraddressstyle{\@address\\[\acvHeaderAfterAddressSkip]}}%
|
||||||
|
\headersocialstyle{%
|
||||||
|
\newbool{isstart}%
|
||||||
|
\setbool{isstart}{true}%
|
||||||
|
\ifthenelse{\isundefined{\@mobile}}%
|
||||||
|
{}%
|
||||||
|
{%
|
||||||
|
\href{\@teluri}{\faMobile\acvHeaderIconSep\@mobile}%
|
||||||
|
\setbool{isstart}{false}%
|
||||||
|
}%
|
||||||
|
\ifthenelse{\isundefined{\@email}}%
|
||||||
|
{}%
|
||||||
|
{%
|
||||||
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||||
|
\href{mailto:\@email}{\faEnvelope\acvHeaderIconSep\@email}%
|
||||||
|
}%
|
||||||
|
\ifthenelse{\isundefined{\@dateofbirth}}%
|
||||||
|
{}%
|
||||||
|
{%
|
||||||
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||||
|
% \mbox prevents wrapping of elements%
|
||||||
|
\mbox{\faBirthdayCake\acvHeaderIconSep\@dateofbirth}%
|
||||||
|
}%
|
||||||
|
\ifthenelse{\isundefined{\@homepage}}%
|
||||||
|
{}%
|
||||||
|
{%
|
||||||
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||||
|
\href{http://\@homepage}{\faHome\acvHeaderIconSep\@homepage}%
|
||||||
|
}%
|
||||||
|
\ifthenelse{\isundefined{\@github}}%
|
||||||
|
{}%
|
||||||
|
{%
|
||||||
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||||
|
\href{https://github.com/\@github}{\faGithubSquare\acvHeaderIconSep\@github}%
|
||||||
|
}%
|
||||||
|
\ifthenelse{\isundefined{\@gitlab}}%
|
||||||
|
{}%
|
||||||
|
{%
|
||||||
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||||
|
\href{https://gitlab.com/\@gitlab}{\faGitlab\acvHeaderIconSep\@gitlab}%
|
||||||
|
}%
|
||||||
|
\ifthenelse{\isundefined{\@bitbucket}}%
|
||||||
|
{}%
|
||||||
|
{%
|
||||||
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||||
|
\href{https://bitbucket.com/\@bitbucket}{\faBitbucket\acvHeaderIconSep\@bitbucket}%
|
||||||
|
}%
|
||||||
|
\ifthenelse{\isundefined{\@stackoverflowid}}%
|
||||||
|
{}%
|
||||||
|
{%
|
||||||
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||||
|
\href{https://stackoverflow.com/users/\@stackoverflowid}{\faStackOverflow\acvHeaderIconSep\@stackoverflowname}%
|
||||||
|
}%
|
||||||
|
\ifthenelse{\isundefined{\@linkedin}}%
|
||||||
|
{}%
|
||||||
|
{%
|
||||||
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||||
|
\href{https://www.linkedin.com/in/\@linkedin}{\faLinkedin\acvHeaderIconSep\@linkedin}%
|
||||||
|
}%
|
||||||
|
\ifthenelse{\isundefined{\@orcid}}%
|
||||||
|
{}%
|
||||||
|
{%
|
||||||
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||||
|
\href{https://orcid.org/\@orcid}{\faOrcid\acvHeaderIconSep\@orcid}%
|
||||||
|
}%
|
||||||
|
\ifthenelse{\isundefined{\@twitter}}%
|
||||||
|
{}%
|
||||||
|
{%
|
||||||
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||||
|
\href{https://twitter.com/\@twitter}{\faTwitter\acvHeaderIconSep\@twitter}%
|
||||||
|
}%
|
||||||
|
\ifthenelse{\isundefined{\@mastodonname}}%
|
||||||
|
{}%
|
||||||
|
{%
|
||||||
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||||
|
\href{https://\@mastodoninstance/@\@mastodonname}{\faMastodon\acvHeaderIconSep\@mastodonname}%
|
||||||
|
}%
|
||||||
|
\ifthenelse{\isundefined{\@skype}}%
|
||||||
|
{}%
|
||||||
|
{%
|
||||||
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||||
|
\faSkype\acvHeaderIconSep\@skype%
|
||||||
|
}%
|
||||||
|
\ifthenelse{\isundefined{\@reddit}}%
|
||||||
|
{}%
|
||||||
|
{%
|
||||||
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||||
|
\href{https://www.reddit.com/user/\@reddit}{\faReddit\acvHeaderIconSep\@reddit}%
|
||||||
|
}%
|
||||||
|
\ifthenelse{\isundefined{\@researchgate}}%
|
||||||
|
{}%
|
||||||
|
{%
|
||||||
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||||
|
\href{https://www.researchgate.net/profile/\@researchgate}{\faResearchgate\acvHeaderIconSep\@researchgate}%
|
||||||
|
}%
|
||||||
|
\ifthenelse{\isundefined{\@xing}}%
|
||||||
|
{}%
|
||||||
|
{%
|
||||||
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||||
|
\href{https://www.xing.com/profile/\@xing}{\faXingSquare\acvHeaderIconSep\@xing}
|
||||||
|
}%
|
||||||
|
\ifthenelse{\isundefined{\@medium}}%
|
||||||
|
{}%
|
||||||
|
{%
|
||||||
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||||
|
\href{https://medium.com/@\@medium}{\faMedium\acvHeaderIconSep\@medium}%
|
||||||
|
}%
|
||||||
|
\ifthenelse{\isundefined{\@kaggle}}%
|
||||||
|
{}%
|
||||||
|
{%
|
||||||
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||||
|
\href{https://kaggle.com/\@kaggle}{\faKaggle\acvHeaderIconSep\@kaggle}%
|
||||||
|
}%
|
||||||
|
\ifthenelse{\isundefined{\@hackerrank}}%
|
||||||
|
{}%
|
||||||
|
{%
|
||||||
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||||
|
\href{https://www.hackerrank.com/\@hackerrank}{\faHackerrank\acvHeaderIconSep\@hackerrank}%
|
||||||
|
}%
|
||||||
|
\ifthenelse{\isundefined{\@telegram}}%
|
||||||
|
{}%
|
||||||
|
{%
|
||||||
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||||
|
\href{https://t.me/\@telegram}{\faTelegram\acvHeaderIconSep\@telegram}%
|
||||||
|
}%
|
||||||
|
\ifthenelse{\isundefined{\@googlescholarid}}%
|
||||||
|
{}%
|
||||||
|
{%
|
||||||
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||||
|
\href{https://scholar.google.com/citations?user=\@googlescholarid}{\faGraduationCap\acvHeaderIconSep\@googlescholarname}%
|
||||||
|
}%
|
||||||
|
\ifthenelse{\isundefined{\@extrainfo}}%
|
||||||
|
{}%
|
||||||
|
{%
|
||||||
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||||
|
\@extrainfo%
|
||||||
|
}%
|
||||||
|
} \\[\acvHeaderAfterSocialSkip]%
|
||||||
|
\ifthenelse{\isundefined{\@quote}}%
|
||||||
|
{}%
|
||||||
|
{\headerquotestyle{\@quote\\}\vspace{\acvHeaderAfterQuoteSkip}}%
|
||||||
|
\end{minipage}%
|
||||||
|
\begin{minipage}[c]{\headerphotowidth}%
|
||||||
|
\ifthenelse{\equal{\@photoalign}{right}}{\raggedleft\drawphoto}{}
|
||||||
|
\end{minipage}
|
||||||
|
}
|
||||||
|
|
||||||
|
% Define a footer for CV
|
||||||
|
% Usage: \makecvfooter{<left>}{<center>}{<right>}
|
||||||
|
\newcommand*{\makecvfooter}[3]{%
|
||||||
|
\fancyfoot{}
|
||||||
|
\fancyfoot[L]{\footerstyle{#1}}
|
||||||
|
\fancyfoot[C]{\footerstyle{#2}}
|
||||||
|
\fancyfoot[R]{\footerstyle{#3}}
|
||||||
|
}
|
||||||
|
|
||||||
|
% Define a section for CV
|
||||||
|
% Usage: \cvsection{<section-title>}
|
||||||
|
\newcommand{\cvsection}[1]{%
|
||||||
|
\vspace{\acvSectionTopSkip}
|
||||||
|
\sectionstyle{#1}
|
||||||
|
\phantomsection
|
||||||
|
\color{sectiondivider}\vhrulefill{0.9pt}
|
||||||
|
}
|
||||||
|
|
||||||
|
% Define a subsection for CV
|
||||||
|
% Usage: \cvsubsection{<subsection-title>}
|
||||||
|
\newcommand{\cvsubsection}[1]{%
|
||||||
|
\vspace{\acvSectionContentTopSkip}
|
||||||
|
\vspace{-3mm}
|
||||||
|
\subsectionstyle{#1}
|
||||||
|
\phantomsection
|
||||||
|
}
|
||||||
|
|
||||||
|
% Define a paragraph for CV
|
||||||
|
\newenvironment{cvparagraph}{%
|
||||||
|
\vspace{\acvSectionContentTopSkip}
|
||||||
|
\vspace{-3mm}
|
||||||
|
\paragraphstyle
|
||||||
|
}{%
|
||||||
|
\par
|
||||||
|
\vspace{2mm}
|
||||||
|
}
|
||||||
|
|
||||||
|
% Define an environment for cventry
|
||||||
|
\newenvironment{cventries}{%
|
||||||
|
\vspace{\acvSectionContentTopSkip}
|
||||||
|
\begin{center}
|
||||||
|
}{%
|
||||||
|
\end{center}
|
||||||
|
}
|
||||||
|
% Define an entry of cv information
|
||||||
|
% Usage: \cventry{<position>}{<title>}{<location>}{<date>}{<description>}
|
||||||
|
\newcommand*{\cventry}[5]{%
|
||||||
|
\vspace{-2.0mm}
|
||||||
|
\setlength\tabcolsep{0pt}
|
||||||
|
\setlength{\extrarowheight}{0pt}
|
||||||
|
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} L{\textwidth - 4.5cm} R{4.5cm}}
|
||||||
|
\ifempty{#2#3}
|
||||||
|
{\entrypositionstyle{#1} & \entrydatestyle{#4} \\}
|
||||||
|
{\entrytitlestyle{#2} & \entrylocationstyle{#3} \\
|
||||||
|
\entrypositionstyle{#1} & \entrydatestyle{#4} \\}
|
||||||
|
\ifstrempty{#5}
|
||||||
|
{}
|
||||||
|
{\multicolumn{2}{L{\textwidth}}{\descriptionstyle{#5}} \\}
|
||||||
|
\end{tabular*}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Define an environment for cvsubentry
|
||||||
|
\newenvironment{cvsubentries}{%
|
||||||
|
\begin{center}
|
||||||
|
}{%
|
||||||
|
\end{center}
|
||||||
|
}
|
||||||
|
% Define a subentry of cv information
|
||||||
|
% Usage: \cvsubentry{<position>}{<title>}{<date>}{<description>}
|
||||||
|
\newcommand*{\cvsubentry}[4]{%
|
||||||
|
\setlength\tabcolsep{0pt}
|
||||||
|
\setlength{\extrarowheight}{0pt}
|
||||||
|
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} L{\textwidth - 4.5cm} R{4.5cm}}
|
||||||
|
\setlength\leftskip{0.2cm}
|
||||||
|
\subentrytitlestyle{#2} & \ifthenelse{\equal{#1}{}}
|
||||||
|
{\subentrydatestyle{#3}}{}
|
||||||
|
\ifthenelse{\equal{#1}{}}
|
||||||
|
{}
|
||||||
|
{\subentrypositionstyle{#1} & \subentrydatestyle{#3} \\}
|
||||||
|
\ifthenelse{\equal{#4}{}}
|
||||||
|
{}
|
||||||
|
{\multicolumn{2}{L{17.0cm}}{\subdescriptionstyle{#4}} \\}
|
||||||
|
\end{tabular*}
|
||||||
|
}
|
||||||
|
|
||||||
|
% Define an environment for cvhonor
|
||||||
|
\newenvironment{cvhonors}{%
|
||||||
|
\vspace{\acvSectionContentTopSkip}
|
||||||
|
\vspace{-2mm}
|
||||||
|
\begin{center}
|
||||||
|
\setlength\tabcolsep{0pt}
|
||||||
|
\setlength{\extrarowheight}{0pt}
|
||||||
|
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} C{1.5cm} L{\textwidth - 4.0cm} R{2.5cm}}
|
||||||
|
}{%
|
||||||
|
\end{tabular*}
|
||||||
|
\end{center}
|
||||||
|
}
|
||||||
|
% Define a line of cv information(honor, award or something else)
|
||||||
|
% Usage: \cvhonor{<position>}{<title>}{<location>}{<date>}
|
||||||
|
\newcommand*{\cvhonor}[4]{%
|
||||||
|
\honordatestyle{#4} & \honorpositionstyle{#1}\ifempty{#2}{}{,} \honortitlestyle{#2} & \honorlocationstyle{#3} \\
|
||||||
|
}
|
||||||
|
|
||||||
|
% Define an environment for cvskill
|
||||||
|
\newenvironment{cvskills}{%
|
||||||
|
\vspace{\acvSectionContentTopSkip}
|
||||||
|
\vspace{-2.0mm}
|
||||||
|
\begin{center}
|
||||||
|
\setlength\tabcolsep{1ex}
|
||||||
|
\setlength{\extrarowheight}{0pt}
|
||||||
|
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} r L{\textwidth * \real{0.9}}}
|
||||||
|
}{%
|
||||||
|
\end{tabular*}
|
||||||
|
\end{center}
|
||||||
|
}
|
||||||
|
% Define a line of cv information(skill)
|
||||||
|
% Usage: \cvskill{<type>}{<skillset>}
|
||||||
|
\newcommand*{\cvskill}[2]{%
|
||||||
|
\skilltypestyle{#1} & \skillsetstyle{#2} \\
|
||||||
|
}
|
||||||
|
|
||||||
|
% Define an environment for cvitems(for cventry)
|
||||||
|
\newenvironment{cvitems}{%
|
||||||
|
\vspace{-4.0mm}
|
||||||
|
\begin{justify}
|
||||||
|
\begin{itemize}[leftmargin=2ex, nosep, noitemsep]
|
||||||
|
\setlength{\parskip}{0pt}
|
||||||
|
\renewcommand{\labelitemi}{\bullet}
|
||||||
|
}{%
|
||||||
|
\end{itemize}
|
||||||
|
\end{justify}
|
||||||
|
\vspace{-4.0mm}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% Commands for elements of Cover Letter
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% Define an environment for cvletter
|
||||||
|
\newenvironment{cvletter}{%
|
||||||
|
\lettertextstyle
|
||||||
|
}{%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Define a section for the cover letter
|
||||||
|
% Usage: \lettersection{<section-title>}
|
||||||
|
\newcommand{\lettersection}[1]{%
|
||||||
|
\par\addvspace{2.5ex}
|
||||||
|
\phantomsection{}
|
||||||
|
\lettersectionstyle{#1}
|
||||||
|
\color{sectiondivider}\vhrulefill{0.9pt}
|
||||||
|
\par\nobreak\addvspace{0.4ex}
|
||||||
|
\lettertextstyle
|
||||||
|
}
|
||||||
|
|
||||||
|
% Define a title of the cover letter
|
||||||
|
% Usage: \makelettertitle
|
||||||
|
\newcommand*{\makelettertitle}{%
|
||||||
|
\vspace{8.4mm}
|
||||||
|
\setlength\tabcolsep{0pt}
|
||||||
|
\setlength{\extrarowheight}{0pt}
|
||||||
|
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} L{\textwidth - 4.5cm} R{4.5cm}}
|
||||||
|
\recipienttitlestyle{\@recipientname} & \letterdatestyle{\@letterdate}
|
||||||
|
\end{tabular*}
|
||||||
|
\begin{singlespace}
|
||||||
|
\recipientaddressstyle{\@recipientaddress} \\\\
|
||||||
|
\end{singlespace}
|
||||||
|
\ifthenelse{\isundefined{\@lettertitle}}
|
||||||
|
{}
|
||||||
|
{\lettertitlestyle{\@lettertitle} \\}
|
||||||
|
\lettertextstyle{\@letteropening}
|
||||||
|
}
|
||||||
|
|
||||||
|
% Define a closing of the cover letter
|
||||||
|
% Usage: \makeletterclosing
|
||||||
|
\newcommand*{\makeletterclosing}{%
|
||||||
|
\vspace{3.4mm}
|
||||||
|
\lettertextstyle{\@letterclosing} \\\\
|
||||||
|
\letternamestyle{\@firstname\ \@lastname}
|
||||||
|
\ifthenelse{\isundefined{\@letterenclosure}}
|
||||||
|
{\\}
|
||||||
|
{%
|
||||||
|
\\\\\\
|
||||||
|
\letterenclosurestyle{\@letterenclname: \@letterenclosure} \\
|
||||||
|
}
|
||||||
|
}
|
||||||
1
examples/awesome-cv.cls
Symbolic link
1
examples/awesome-cv.cls
Symbolic link
|
|
@ -0,0 +1 @@
|
||||||
|
../awesome-cv.cls
|
||||||
107
examples/resume.tex
Normal file
107
examples/resume.tex
Normal file
|
|
@ -0,0 +1,107 @@
|
||||||
|
%!TEX TS-program = xelatex
|
||||||
|
%!TEX encoding = UTF-8 Unicode
|
||||||
|
% Awesome CV LaTeX Template for CV/Resume
|
||||||
|
%
|
||||||
|
% This template has been downloaded from:
|
||||||
|
% https://github.com/posquit0/Awesome-CV
|
||||||
|
%
|
||||||
|
% Author:
|
||||||
|
% Claud D. Park <posquit0.bj@gmail.com>
|
||||||
|
% http://www.posquit0.com
|
||||||
|
%
|
||||||
|
% Template license:
|
||||||
|
% CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0/)
|
||||||
|
%
|
||||||
|
|
||||||
|
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% CONFIGURATIONS
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% A4 paper size by default, use 'letterpaper' for US letter
|
||||||
|
\documentclass[11pt, a4paper]{awesome-cv}
|
||||||
|
|
||||||
|
% Configure page margins with geometry
|
||||||
|
\geometry{left=1cm, top=.8cm, right=1cm, bottom=1.8cm, footskip=.5cm}
|
||||||
|
|
||||||
|
% Color for highlights
|
||||||
|
% Awesome Colors: awesome-emerald, awesome-skyblue, awesome-red, awesome-pink, awesome-orange
|
||||||
|
% awesome-nephritis, awesome-concrete, awesome-darknight
|
||||||
|
\colorlet{awesome}{awesome-skyblue}
|
||||||
|
% Uncomment if you would like to specify your own color
|
||||||
|
% \definecolor{awesome}{HTML}{3E6D9C}
|
||||||
|
|
||||||
|
% Colors for text
|
||||||
|
% Uncomment if you would like to specify your own color
|
||||||
|
% \definecolor{darktext}{HTML}{414141}
|
||||||
|
% \definecolor{text}{HTML}{333333}
|
||||||
|
% \definecolor{graytext}{HTML}{5D5D5D}
|
||||||
|
% \definecolor{lighttext}{HTML}{999999}
|
||||||
|
% \definecolor{sectiondivider}{HTML}{5D5D5D}
|
||||||
|
|
||||||
|
% Set false if you don't want to highlight section with awesome color
|
||||||
|
\setbool{acvSectionColorHighlight}{false}
|
||||||
|
|
||||||
|
% If you would like to change the social information separator from a pipe (|) to something else
|
||||||
|
\renewcommand{\acvHeaderSocialSep}{\quad\textbar\quad}
|
||||||
|
|
||||||
|
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% PERSONAL INFORMATION
|
||||||
|
% Comment any of the lines below if they are not required
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% Available options: circle|rectangle,edge/noedge,left/right
|
||||||
|
% \photo[rectangle,edge,right]{./examples/profile}
|
||||||
|
\name{Jean-Michel}{Tremblay}
|
||||||
|
\position{Senior Software Engineer}
|
||||||
|
% \address{Sainte-Julie, Qu\'ebec, Canada}
|
||||||
|
|
||||||
|
% \mobile{(+82) 10-9030-1843}
|
||||||
|
\email{jeanmi.tremblay@gmail.com}
|
||||||
|
%\dateofbirth{January 1st, 1970}
|
||||||
|
% \homepage{www.posquit0.com}
|
||||||
|
% \github{posquit0}
|
||||||
|
% \linkedin{posquit0}
|
||||||
|
% \gitlab{gitlab-id}
|
||||||
|
% \stackoverflow{SO-id}{SO-name}
|
||||||
|
% \twitter{@twit}
|
||||||
|
% \skype{skype-id}
|
||||||
|
% \reddit{reddit-id}
|
||||||
|
% \medium{madium-id}
|
||||||
|
% \kaggle{kaggle-id}
|
||||||
|
% \hackerrank{hackerrank-id}
|
||||||
|
% \telegram{telegram-username}
|
||||||
|
% \googlescholar{googlescholar-id}{name-to-display}
|
||||||
|
%% \firstname and \lastname will be used
|
||||||
|
% \googlescholar{googlescholar-id}{}
|
||||||
|
% \extrainfo{extra information}
|
||||||
|
|
||||||
|
% \quote{``Rather than love, than money, than fame, give me data"}
|
||||||
|
|
||||||
|
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
% Print the header with above personal information
|
||||||
|
% Give optional argument to change alignment(C: center, L: left, R: right)
|
||||||
|
\makecvheader[C]
|
||||||
|
|
||||||
|
% Print the footer with 3 arguments(<left>, <center>, <right>)
|
||||||
|
% Leave any of these blank if they are not needed
|
||||||
|
\makecvfooter
|
||||||
|
{\today}
|
||||||
|
{JM Tremblay~~~·~~~Résumé}
|
||||||
|
{\thepage}
|
||||||
|
|
||||||
|
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% CV/RESUME CONTENT
|
||||||
|
% Each section is imported separately, open each file in turn to modify content
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
\input{resume/summary.tex}
|
||||||
|
\input{resume/skills.tex}
|
||||||
|
\input{resume/experience.tex}
|
||||||
|
\input{resume/education.tex}
|
||||||
|
|
||||||
|
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
\end{document}
|
||||||
48
examples/resume/education.tex
Normal file
48
examples/resume/education.tex
Normal file
|
|
@ -0,0 +1,48 @@
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% SECTION TITLE
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
\cvsection{Education}
|
||||||
|
|
||||||
|
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% CONTENT
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
\begin{cventries}
|
||||||
|
|
||||||
|
%---------------------------------------------------------
|
||||||
|
% \cventry
|
||||||
|
% {Ph.D. Transportation Engineering} % Degree
|
||||||
|
% {Univertity of Maryland} % Institution
|
||||||
|
% {College Park, Maryland} % Location
|
||||||
|
% {Apr. 2016} % Date(s)
|
||||||
|
% {}
|
||||||
|
|
||||||
|
% \cventry
|
||||||
|
% {M.Sc. Transportation Engineering} % Degree
|
||||||
|
% {Univertity of Maryland} % Institution
|
||||||
|
% {College Park, Maryland} % Location
|
||||||
|
% {Jun. 2012} % Date(s)
|
||||||
|
% {}
|
||||||
|
|
||||||
|
% \cventry
|
||||||
|
% {B.Sc. Math\'ematiques} % Degree
|
||||||
|
% {Universit\'e de Montr\'eal} % Institution
|
||||||
|
% {Montr\'eal, Qu\'ebec} % Location
|
||||||
|
% {Jun. 2010} % Date(s)
|
||||||
|
% {}
|
||||||
|
|
||||||
|
\cventry
|
||||||
|
{Ph.D. (2016) and M.Sc. (2012) in Transportation Engineering} % Degree
|
||||||
|
{University of Maryland} % Institution
|
||||||
|
{College Park, Maryland} % Location
|
||||||
|
{} % Date(s)
|
||||||
|
{}
|
||||||
|
|
||||||
|
\cventry
|
||||||
|
{B.Sc. Math\'ematiques (2010)} % Degree
|
||||||
|
{Universit\'e de Montr\'eal} % Institution
|
||||||
|
{Montr\'eal, Qu\'ebec} % Location
|
||||||
|
{} % Date(s)
|
||||||
|
{}
|
||||||
|
%---------------------------------------------------------
|
||||||
|
\end{cventries}
|
||||||
89
examples/resume/experience.tex
Normal file
89
examples/resume/experience.tex
Normal file
|
|
@ -0,0 +1,89 @@
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% SECTION TITLE
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
\cvsection{Work Experience}
|
||||||
|
|
||||||
|
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% CONTENT
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
\begin{cventries}
|
||||||
|
|
||||||
|
%---------------------------------------------------------
|
||||||
|
|
||||||
|
\cventry
|
||||||
|
{Senior Software Engineer} % Job title
|
||||||
|
{Forterra} % Organization
|
||||||
|
{Clarksburg, Maryland} % Location
|
||||||
|
{Dec. 2023 - Present} % Date(s)
|
||||||
|
{
|
||||||
|
\begin{cvitems} % Description(s) of tasks/responsibilities
|
||||||
|
\item {Lead design and development of cloud-native data infrastructure powering autonomous vehicle telemetry and operational analytics}
|
||||||
|
\item {Architect and implement Python microservices on AWS Lambda and ECS, processing large-scale S3 event-triggered data streams}
|
||||||
|
% \item {Design and optimize PostgreSQL RDS databases, including complex schema, queries, materialized views, and reporting pipelines for engineering, compliance, and executive teams}
|
||||||
|
\item {Design and optimize PostgreSQL databases, queries, materialized views, and reporting pipelines for engineering, compliance, and executives}
|
||||||
|
% \item {Own Terraform infrastructure-as-code deployments covering cloud networking (transit gateways, VPNs), IAM policies, serverless, container workloads, and CI/CD pipelines}
|
||||||
|
\item {Own Terraform infrastructure-as-code deployments, including cloud networking, IAM, serverless, container workloads, and CI/CD pipelines}
|
||||||
|
\item {Build and maintain end-to-end data pipelines supporting safety, regulatory, and business reporting across multiple internal systems}
|
||||||
|
\item {Integrate corporate APIs (Microsoft Graph, SharePoint, Slack) for authentication, automated reporting, and operational notifications}
|
||||||
|
\item {Provide technical leadership in project planning, architecture, estimation, and mentor junior engineers}
|
||||||
|
% \item {Collaborate cross-functionally to uncover operational data challenges, refine requirements, and shape backend systems that directly support engineering and business goals}
|
||||||
|
\item {Collaborate cross-functionally to address data challenges, refine requirements, and shape backend systems supporting business goals}
|
||||||
|
\end{cvitems}
|
||||||
|
}
|
||||||
|
\cventry
|
||||||
|
{Software Engineer} % Job title
|
||||||
|
{Edgybees} % Organization
|
||||||
|
{Rockville, Maryland} % Location
|
||||||
|
{Dec. 2019 - Nov. 2021} % Date(s)
|
||||||
|
{
|
||||||
|
\begin{cvitems} % Description(s) of tasks/responsibilities
|
||||||
|
\item {Led complex field deployments of Edgybees’ real-time video georegistration platform, managing integration of customer hardware, networks, maps and telemetry streams in air-gapped Kubernetes environments}
|
||||||
|
\item {Designed and delivered Python-based GIS backend services, including raster tiling pipelines and tile reprojection tools, eliminating reliance on external GIS servers and improving performance, portability, and cost-efficiency}
|
||||||
|
\item {Developed in-house expertise on MISB 0601 video telemetry standards to troubleshoot and validate live video georegistration accuracy for government and defense customers}
|
||||||
|
\item {Served as primary technical liaison during customer onboarding, providing hands-on support for deployment, configuration, and training}
|
||||||
|
\item {Delivered high-stakes technical demos to government and defense stakeholders, securing operational adoption}
|
||||||
|
\end{cvitems}
|
||||||
|
}
|
||||||
|
|
||||||
|
\cventry
|
||||||
|
{Research Statistician Developer} % Job title
|
||||||
|
{SAS} % Organization
|
||||||
|
{Cary, North Carolina} % Location
|
||||||
|
{Nov. 2018 - Nov. 2019} % Date(s)
|
||||||
|
{
|
||||||
|
\begin{cvitems}
|
||||||
|
\item {Ported a large discrete-choice modeling codebase from single-node to map-reduce architecture}
|
||||||
|
\item {Developed statistical algorithms in Python, and SAS/IML for integration into production systems}
|
||||||
|
\item {Rigorously validated numerical results against industry benchmarks to ensure accuracy and reliability}
|
||||||
|
\end{cvitems}
|
||||||
|
}
|
||||||
|
|
||||||
|
\cventry
|
||||||
|
{Senior Biostatistician} % Job title
|
||||||
|
{Johns Hopkins University} % Organization
|
||||||
|
{Baltimore, Maryland} % Location
|
||||||
|
{Oct. 2016 - Oct. 2018} % Date(s)
|
||||||
|
{
|
||||||
|
\begin{cvitems}
|
||||||
|
\item {Led statistical methodology and calculations for NIH grant proposals and peer-reviewed articles}
|
||||||
|
\item {Directed early-stage data exploration and visualization to uncover patterns and support clinical decision-making}
|
||||||
|
\item {Managed PostgreSQL databases to maintain data integrity and support operations}
|
||||||
|
\end{cvitems}
|
||||||
|
}
|
||||||
|
|
||||||
|
\cventry
|
||||||
|
{Research Assistant} % Job title
|
||||||
|
{University of Maryland} % Organization
|
||||||
|
{College Park, Maryland} % Location
|
||||||
|
{Aug. 2010 - Jul. 2016} % Date(s)
|
||||||
|
{
|
||||||
|
\begin{cvitems} % Description(s) of tasks/responsibilities
|
||||||
|
\item{Developed transportation simulation and discrete-choice models in C and R}
|
||||||
|
\item{Supported publications: literature review, data analysis, model implementation}
|
||||||
|
\item{Designed and taught graduate-level discrete-choice modeling courses}
|
||||||
|
\end{cvitems}
|
||||||
|
}
|
||||||
|
|
||||||
|
%---------------------------------------------------------
|
||||||
|
\end{cventries}
|
||||||
51
examples/resume/skills.tex
Normal file
51
examples/resume/skills.tex
Normal file
|
|
@ -0,0 +1,51 @@
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% SECTION TITLE
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
\cvsection{Skills}
|
||||||
|
|
||||||
|
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% CONTENT
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% \begin{cvskills}
|
||||||
|
% \cvskill
|
||||||
|
% {Languages}{\begin{minipage}[t]{0.7\textwidth}
|
||||||
|
% Python, C, C++, R
|
||||||
|
% \end{minipage}}
|
||||||
|
|
||||||
|
% \cvskill
|
||||||
|
% {Cloud \& DevOps}{\begin{minipage}[t]{0.7\textwidth}
|
||||||
|
% AWS (Lambda, ECS, S3, RDS, Terraform, IAM, Networking), Git, Docker
|
||||||
|
% \end{minipage}}
|
||||||
|
|
||||||
|
% \cvskill
|
||||||
|
% {Databases}{\begin{minipage}[t]{0.7\textwidth}
|
||||||
|
% PostgreSQL, data modeling, query optimization
|
||||||
|
% \end{minipage}}
|
||||||
|
|
||||||
|
% \cvskill
|
||||||
|
% {Computing}{\begin{minipage}[t]{0.7\textwidth}
|
||||||
|
% Linux, Bash scripting, basic sysadmin
|
||||||
|
% \end{minipage}}
|
||||||
|
|
||||||
|
% \cvskill
|
||||||
|
% {Numerical \& Data Science}{\begin{minipage}[t]{0.7\textwidth}
|
||||||
|
% Numerical simulation, numerical optimization, R, BLAS/OpenBLAS
|
||||||
|
% \end{minipage}}
|
||||||
|
% \end{cvskills}
|
||||||
|
\begin{cvskills}
|
||||||
|
\cvskill
|
||||||
|
{Programming \& Data Science}{\begin{minipage}[t]{0.7\textwidth}
|
||||||
|
Python, C, C++, R; numerical simulation, numerical optimization; BLAS/OpenBLAS; data modeling
|
||||||
|
\end{minipage}}
|
||||||
|
|
||||||
|
\cvskill
|
||||||
|
{Cloud \& Infrastructure}{\begin{minipage}[t]{0.7\textwidth}
|
||||||
|
AWS (Lambda, ECS, S3, RDS, IAM, Networking), Terraform, Docker, Git, Linux, Bash scripting, basic sysadmin
|
||||||
|
\end{minipage}}
|
||||||
|
|
||||||
|
\cvskill
|
||||||
|
{Databases \& DevOps}{\begin{minipage}[t]{0.7\textwidth}
|
||||||
|
PostgreSQL, CI/CD, infrastructure-as-code, system monitoring, version control
|
||||||
|
\end{minipage}}
|
||||||
|
\end{cvskills}
|
||||||
20
examples/resume/summary.tex
Normal file
20
examples/resume/summary.tex
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% SECTION TITLE
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
\cvsection{Summary}
|
||||||
|
|
||||||
|
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
% CONTENT
|
||||||
|
%-------------------------------------------------------------------------------
|
||||||
|
\begin{cvparagraph}
|
||||||
|
|
||||||
|
%---------------------------------------------------------
|
||||||
|
|
||||||
|
Data-focused and design-minded software engineer with over a decade of experience spanning research,
|
||||||
|
backend development, and data engineering.
|
||||||
|
Skilled at building scalable, reliable systems with a startup mindset —
|
||||||
|
pragmatic, driven, and focused on quality.
|
||||||
|
Proven leader in customer-facing roles, translating complex technical challenges into real-world solutions.
|
||||||
|
Fiercely committed to doing what’s right, not just what’s easy.
|
||||||
|
\end{cvparagraph}
|
||||||
Loading…
Reference in a new issue