diff --git a/docs/assets/images/classic.png b/docs/assets/images/classic.png index 941ce32..ff55877 100644 Binary files a/docs/assets/images/classic.png and b/docs/assets/images/classic.png differ diff --git a/docs/assets/images/classic/education_entry.png b/docs/assets/images/classic/education_entry.png index 59df2aa..ff3c36e 100644 Binary files a/docs/assets/images/classic/education_entry.png and b/docs/assets/images/classic/education_entry.png differ diff --git a/docs/assets/images/classic/experience_entry.png b/docs/assets/images/classic/experience_entry.png index e1f2618..a061fb4 100644 Binary files a/docs/assets/images/classic/experience_entry.png and b/docs/assets/images/classic/experience_entry.png differ diff --git a/docs/assets/images/classic/normal_entry.png b/docs/assets/images/classic/normal_entry.png index 77e10f5..afaf975 100644 Binary files a/docs/assets/images/classic/normal_entry.png and b/docs/assets/images/classic/normal_entry.png differ diff --git a/docs/assets/images/classic/publication_entry.png b/docs/assets/images/classic/publication_entry.png index cb0cb2f..218a629 100644 Binary files a/docs/assets/images/classic/publication_entry.png and b/docs/assets/images/classic/publication_entry.png differ diff --git a/docs/assets/images/classic/text_entry.png b/docs/assets/images/classic/text_entry.png index 56d66c9..0cf0161 100644 Binary files a/docs/assets/images/classic/text_entry.png and b/docs/assets/images/classic/text_entry.png differ diff --git a/docs/assets/images/engineeringresumes.png b/docs/assets/images/engineeringresumes.png index aa50a6b..ca47ee1 100644 Binary files a/docs/assets/images/engineeringresumes.png and b/docs/assets/images/engineeringresumes.png differ diff --git a/docs/assets/images/engineeringresumes/bullet_entry.png b/docs/assets/images/engineeringresumes/bullet_entry.png index 66d0a5c..a6380cc 100644 Binary files a/docs/assets/images/engineeringresumes/bullet_entry.png and b/docs/assets/images/engineeringresumes/bullet_entry.png differ diff --git a/docs/assets/images/engineeringresumes/education_entry.png b/docs/assets/images/engineeringresumes/education_entry.png new file mode 100644 index 0000000..3e530b4 Binary files /dev/null and b/docs/assets/images/engineeringresumes/education_entry.png differ diff --git a/docs/assets/images/engineeringresumes/experience_entry.png b/docs/assets/images/engineeringresumes/experience_entry.png new file mode 100644 index 0000000..002bef6 Binary files /dev/null and b/docs/assets/images/engineeringresumes/experience_entry.png differ diff --git a/docs/assets/images/engineeringresumes/normal_entry.png b/docs/assets/images/engineeringresumes/normal_entry.png new file mode 100644 index 0000000..8622eed Binary files /dev/null and b/docs/assets/images/engineeringresumes/normal_entry.png differ diff --git a/docs/assets/images/engineeringresumes/one_line_entry.png b/docs/assets/images/engineeringresumes/one_line_entry.png new file mode 100644 index 0000000..826940f Binary files /dev/null and b/docs/assets/images/engineeringresumes/one_line_entry.png differ diff --git a/docs/assets/images/engineeringresumes/publication_entry.png b/docs/assets/images/engineeringresumes/publication_entry.png new file mode 100644 index 0000000..3fd2ec6 Binary files /dev/null and b/docs/assets/images/engineeringresumes/publication_entry.png differ diff --git a/docs/assets/images/engineeringresumes/text_entry.png b/docs/assets/images/engineeringresumes/text_entry.png new file mode 100644 index 0000000..4c8a878 Binary files /dev/null and b/docs/assets/images/engineeringresumes/text_entry.png differ diff --git a/docs/assets/images/moderncv/education_entry.png b/docs/assets/images/moderncv/education_entry.png index 570f0b8..2039bff 100644 Binary files a/docs/assets/images/moderncv/education_entry.png and b/docs/assets/images/moderncv/education_entry.png differ diff --git a/docs/assets/images/moderncv/experience_entry.png b/docs/assets/images/moderncv/experience_entry.png index c10de1c..d2dc372 100644 Binary files a/docs/assets/images/moderncv/experience_entry.png and b/docs/assets/images/moderncv/experience_entry.png differ diff --git a/docs/assets/images/moderncv/normal_entry.png b/docs/assets/images/moderncv/normal_entry.png index 68ee938..6c3d58e 100644 Binary files a/docs/assets/images/moderncv/normal_entry.png and b/docs/assets/images/moderncv/normal_entry.png differ diff --git a/docs/assets/images/moderncv/publication_entry.png b/docs/assets/images/moderncv/publication_entry.png index ba494e9..0dcfa1f 100644 Binary files a/docs/assets/images/moderncv/publication_entry.png and b/docs/assets/images/moderncv/publication_entry.png differ diff --git a/docs/assets/images/sb2nov.png b/docs/assets/images/sb2nov.png index 1b6dfc2..7c0e772 100644 Binary files a/docs/assets/images/sb2nov.png and b/docs/assets/images/sb2nov.png differ diff --git a/docs/assets/images/sb2nov/normal_entry.png b/docs/assets/images/sb2nov/normal_entry.png index 129d7c9..28d76f9 100644 Binary files a/docs/assets/images/sb2nov/normal_entry.png and b/docs/assets/images/sb2nov/normal_entry.png differ diff --git a/docs/assets/images/sb2nov/one_line_entry.png b/docs/assets/images/sb2nov/one_line_entry.png index 487629d..eb9a418 100644 Binary files a/docs/assets/images/sb2nov/one_line_entry.png and b/docs/assets/images/sb2nov/one_line_entry.png differ diff --git a/docs/assets/images/sb2nov/publication_entry.png b/docs/assets/images/sb2nov/publication_entry.png index 0c57e95..e0ed0cd 100644 Binary files a/docs/assets/images/sb2nov/publication_entry.png and b/docs/assets/images/sb2nov/publication_entry.png differ diff --git a/docs/index.md b/docs/index.md index e128e6e..0bfde5e 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,129 +1,129 @@ -# RenderCV - -[![test](https://github.com/sinaatalay/rendercv/actions/workflows/test.yaml/badge.svg?branch=main)](https://github.com/sinaatalay/rendercv/actions/workflows/test.yaml) -[![coverage](https://coverage-badge.samuelcolvin.workers.dev/sinaatalay/rendercv.svg)](https://coverage-badge.samuelcolvin.workers.dev/redirect/sinaatalay/rendercv) -[![pypi-version](https://img.shields.io/pypi/v/rendercv?label=PyPI%20version&color=rgb(0%2C79%2C144))](https://pypi.python.org/pypi/rendercv) -[![pypi-downloads](https://img.shields.io/pepy/dt/rendercv?label=PyPI%20downloads&color=rgb(0%2C%2079%2C%20144))](https://pypistats.org/packages/rendercv) - - -RenderCV is a $\LaTeX$ CV/resume generator from a JSON/YAML input file. The primary motivation behind the RenderCV is to allow the separation between the content and design of a CV. If you want to see RenderCV in action, you can check out [this YouTube video](https://youtu.be/0aXEArrN-_c?feature=shared). - -It takes a YAML file that looks like this: - -```yaml -cv: - name: John Doe - location: Your Location - email: youremail@yourdomain.com - phone: tel:+90-541-999-99-99 - website: https://yourwebsite.com/ - social_networks: - - network: LinkedIn - username: yourusername - - network: GitHub - username: yourusername - sections: - summary: - - This is an example resume to showcase the capabilities - of the open-source LaTeX CV generator, [RenderCV](https://github.com/sinaatalay/rendercv). - A substantial part of the content is taken from [here](https://www.careercup.com/resume), - where a *clean and tidy CV* pattern is proposed by **Gayle - L. McDowell**. - education: - - start_date: 2000-09 - end_date: 2005-05 - highlights: - - 'GPA: 3.9/4.0 ([Transcript](https://example.com))' - - '**Coursework:** Software Foundations, Computer Architecture, - Algorithms, Artificial Intelligence, Comparison of - Learning Algorithms, Computational Theory.' - institution: University of Pennsylvania - area: Computer Science - degree: BS - experience: - ... -``` - -And then produces these PDFs and their $\LaTeX$ code (click on images to preview PDFs): - -| `classic` theme | `sb2nov` theme | `moderncv` theme | -|:---------------:|----------------|------------------| -|[![Classic Theme Example of RenderCV](https://raw.githubusercontent.com/sinaatalay/rendercv/main/docs/assets/images/classic.png)](https://raw.githubusercontent.com/sinaatalay/rendercv/main/examples/John_Doe_ClassicTheme_CV.pdf)|[![Sb2nov Theme Example of RenderCV](https://raw.githubusercontent.com/sinaatalay/rendercv/main/docs/assets/images/sb2nov.png)](https://raw.githubusercontent.com/sinaatalay/rendercv/main/examples/John_Doe_Sb2novTheme_CV.pdf)|[![Moderncv Theme Example of RenderCV](https://raw.githubusercontent.com/sinaatalay/rendercv/main/docs/assets/images/moderncv.png)](https://raw.githubusercontent.com/sinaatalay/rendercv/main/examples/John_Doe_ModerncvTheme_CV.pdf)| - - -It also generates an HTML file so that the content can be pasted into Grammarly for spell-checking: - -![Grammarly for RenderCV](https://raw.githubusercontent.com/sinaatalay/rendercv/main/docs/assets/images/grammarly.gif) - -RenderCV also validates the input file, and if there are any problems, it tells users where the issues are and how they can fix them: - -![CLI of RenderCV](https://raw.githubusercontent.com/sinaatalay/rendercv/main/docs/assets/images/cli.gif) - -## Quick Start Guide - -> RenderCV doesn't require a $\LaTeX$ installation; it comes with it! - -1. Install [Python](https://www.python.org/downloads/) (3.10 or newer). -2. Run the command below to install RenderCV. - ```bash - pip install rendercv - ``` -3. Run the command below to generate a starting input file (`Full_Name_CV.yaml`). - ```bash - rendercv new "Full Name" - ``` -4. Edit the contents of `Full_Name_CV.yaml` in your favorite editor (*tip: use an editor that supports JSON Schemas*). -5. Run the command below to generate your $\LaTeX$ CV. - ```bash - rendercv render Full_Name_CV.yaml - ``` - -You can find a comprehensive user guide that covers the data model (YAML structure) and adding custom themes in greater detail [here](https://sinaatalay.github.io/rendercv/user_guide). - -## Motivation - -Writing the content of a CV and designing a CV are separate issues, and they should be treated separately. RenderCV attempts to provide this separation. With this approach, users are encouraged not to worry too much about the appearance of their CV but to concentrate on the content. - -You can automatize your CV generation process with RenderCV and version control your CV in a well-structured manner. It will make updating your CV as simple as updating the YAML input file. - -Here are some answers to frequently asked questions about RenderCV: - -### Why should I bother using RenderCV instead of $\LaTeX$? I can version-control $\LaTeX$ code too! - -Because: - -- RenderCV is a tool that allows you to separate your CV content from your $\LaTeX$ code. $\LaTeX$ is still there, and you can leverage it by moving your custom $\LaTeX$ CV to RenderCV. -- You might want to version control the content and design of your CV separately without mixing them into each other. You cannot achieve this with $\LaTeX$. If you have a plain $\LaTeX$ CV, changing your design will require you to do almost everything from scratch. -- Updating a YAML file may be easier than updating a $\LaTeX$ file. -- You will have a lot of code duplication if you make your CV in $\LaTeX$ because a CV is a list of sections with lists of entries. With RenderCV, you will have only one $\LaTeX$ code for each entry type, which will be duplicated automatically based on the YAML input. -- Spell checking may be difficult to do in $\LaTeX$. You will need to copy and paste each sentence separately to some other software for spell-checking. With RenderCV, it's one copy-paste. - -### Is it flexible enough? - -RenderCV gives you the flexibility required for a CV, but not more. RenderCV forces users to be strict about the content of their CVs, and that's helpful! A CV is a strict and structured document, and you may not want to change that strictness arbitrarily. - -You can't make design mistakes with RenderCV, but you can be flexible enough. It supports Markdown syntax, so you can put links anywhere or make your text italic or bold. Additionally, you can specify various design options (margins, colors, font sizes, etc.) in your input file's `design` section. - -### Isn't putting all of my data into a YAML file cumbersome? - -If you do it for RenderCV once, you may not have to do it again for a long time. It will help you to avoid this process in the future. - -## Documentation - -The source code of RenderCV is well-commented and documented. Reading the source code might be fun as the software structure is explained with docstrings and comments. - -A detailed user guide can be found [here](https://sinaatalay.github.io/rendercv/user_guide). - -Reference to the code can be found [here](https://sinaatalay.github.io/rendercv/reference). - -The changelog can be found [here](https://sinaatalay.github.io/rendercv/changelog). - -## Contributing - -All contributions to RenderCV are welcome! For development, you will need to clone the repository recursively, as TinyTeX is being used as a submodule: - -```bash -git clone --recursive https://github.com/sinaatalay/rendercv.git -``` - +# RenderCV + +[![test](https://github.com/sinaatalay/rendercv/actions/workflows/test.yaml/badge.svg?branch=main)](https://github.com/sinaatalay/rendercv/actions/workflows/test.yaml) +[![coverage](https://coverage-badge.samuelcolvin.workers.dev/sinaatalay/rendercv.svg)](https://coverage-badge.samuelcolvin.workers.dev/redirect/sinaatalay/rendercv) +[![pypi-version](https://img.shields.io/pypi/v/rendercv?label=PyPI%20version&color=rgb(0%2C79%2C144))](https://pypi.python.org/pypi/rendercv) +[![pypi-downloads](https://img.shields.io/pepy/dt/rendercv?label=PyPI%20downloads&color=rgb(0%2C%2079%2C%20144))](https://pypistats.org/packages/rendercv) + + +RenderCV is a $\LaTeX$ CV/resume generator from a JSON/YAML input file. The primary motivation behind the RenderCV is to allow the separation between the content and design of a CV. If you want to see RenderCV in action, you can check out [this YouTube video](https://youtu.be/0aXEArrN-_c?feature=shared). + +It takes a YAML file that looks like this: + +```yaml +cv: + name: John Doe + location: Your Location + email: youremail@yourdomain.com + phone: tel:+90-541-999-99-99 + website: https://yourwebsite.com/ + social_networks: + - network: LinkedIn + username: yourusername + - network: GitHub + username: yourusername + sections: + summary: + - This is an example resume to showcase the capabilities + of the open-source LaTeX CV generator, [RenderCV](https://github.com/sinaatalay/rendercv). + A substantial part of the content is taken from [here](https://www.careercup.com/resume), + where a *clean and tidy CV* pattern is proposed by **Gayle + L. McDowell**. + education: + - start_date: 2000-09 + end_date: 2005-05 + highlights: + - 'GPA: 3.9/4.0 ([Transcript](https://example.com))' + - '**Coursework:** Software Foundations, Computer Architecture, + Algorithms, Artificial Intelligence, Comparison of + Learning Algorithms, Computational Theory.' + institution: University of Pennsylvania + area: Computer Science + degree: BS + experience: + ... +``` + +And then produces these PDFs and their $\LaTeX$ code (click on images to preview PDFs): + +| `classic` theme | `sb2nov` theme | `moderncv` theme | +|:---------------:|----------------|------------------| +|[![Classic Theme Example of RenderCV](https://raw.githubusercontent.com/sinaatalay/rendercv/main/docs/assets/images/classic.png)](https://raw.githubusercontent.com/sinaatalay/rendercv/main/examples/John_Doe_ClassicTheme_CV.pdf)|[![Sb2nov Theme Example of RenderCV](https://raw.githubusercontent.com/sinaatalay/rendercv/main/docs/assets/images/sb2nov.png)](https://raw.githubusercontent.com/sinaatalay/rendercv/main/examples/John_Doe_Sb2novTheme_CV.pdf)|[![Moderncv Theme Example of RenderCV](https://raw.githubusercontent.com/sinaatalay/rendercv/main/docs/assets/images/moderncv.png)](https://raw.githubusercontent.com/sinaatalay/rendercv/main/examples/John_Doe_ModerncvTheme_CV.pdf)| + + +It also generates an HTML file so that the content can be pasted into Grammarly for spell-checking: + +![Grammarly for RenderCV](https://raw.githubusercontent.com/sinaatalay/rendercv/main/docs/assets/images/grammarly.gif) + +RenderCV also validates the input file, and if there are any problems, it tells users where the issues are and how they can fix them: + +![CLI of RenderCV](https://raw.githubusercontent.com/sinaatalay/rendercv/main/docs/assets/images/cli.gif) + +## Quick Start Guide + +> RenderCV doesn't require a $\LaTeX$ installation; it comes with it! + +1. Install [Python](https://www.python.org/downloads/) (3.10 or newer). +2. Run the command below to install RenderCV. + ```bash + pip install rendercv + ``` +3. Run the command below to generate a starting input file (`Full_Name_CV.yaml`). + ```bash + rendercv new "Full Name" + ``` +4. Edit the contents of `Full_Name_CV.yaml` in your favorite editor (*tip: use an editor that supports JSON Schemas*). +5. Run the command below to generate your $\LaTeX$ CV. + ```bash + rendercv render Full_Name_CV.yaml + ``` + +You can find a comprehensive user guide that covers the data model (YAML structure) and adding custom themes in greater detail [here](https://sinaatalay.github.io/rendercv/user_guide). + +## Motivation + +Writing the content of a CV and designing a CV are separate issues, and they should be treated separately. RenderCV attempts to provide this separation. With this approach, users are encouraged not to worry too much about the appearance of their CV but to concentrate on the content. + +You can automatize your CV generation process with RenderCV and version control your CV in a well-structured manner. It will make updating your CV as simple as updating the YAML input file. + +Here are some answers to frequently asked questions about RenderCV: + +### Why should I bother using RenderCV instead of $\LaTeX$? I can version-control $\LaTeX$ code too! + +Because: + +- RenderCV is a tool that allows you to separate your CV content from your $\LaTeX$ code. $\LaTeX$ is still there, and you can leverage it by moving your custom $\LaTeX$ CV to RenderCV. +- You might want to version control the content and design of your CV separately without mixing them into each other. You cannot achieve this with $\LaTeX$. If you have a plain $\LaTeX$ CV, changing your design will require you to do almost everything from scratch. +- Updating a YAML file may be easier than updating a $\LaTeX$ file. +- You will have a lot of code duplication if you make your CV in $\LaTeX$ because a CV is a list of sections with lists of entries. With RenderCV, you will have only one $\LaTeX$ code for each entry type, which will be duplicated automatically based on the YAML input. +- Spell checking may be difficult to do in $\LaTeX$. You will need to copy and paste each sentence separately to some other software for spell-checking. With RenderCV, it's one copy-paste. + +### Is it flexible enough? + +RenderCV gives you the flexibility required for a CV, but not more. RenderCV forces users to be strict about the content of their CVs, and that's helpful! A CV is a strict and structured document, and you may not want to change that strictness arbitrarily. + +You can't make design mistakes with RenderCV, but you can be flexible enough. It supports Markdown syntax, so you can put links anywhere or make your text italic or bold. Additionally, you can specify various design options (margins, colors, font sizes, etc.) in your input file's `design` section. + +### Isn't putting all of my data into a YAML file cumbersome? + +If you do it for RenderCV once, you may not have to do it again for a long time. It will help you to avoid this process in the future. + +## Documentation + +The source code of RenderCV is well-commented and documented. Reading the source code might be fun as the software structure is explained with docstrings and comments. + +A detailed user guide can be found [here](https://sinaatalay.github.io/rendercv/user_guide). + +Reference to the code can be found [here](https://sinaatalay.github.io/rendercv/reference). + +The changelog can be found [here](https://sinaatalay.github.io/rendercv/changelog). + +## Contributing + +All contributions to RenderCV are welcome! For development, you will need to clone the repository recursively, as TinyTeX is being used as a submodule: + +```bash +git clone --recursive https://github.com/sinaatalay/rendercv.git +``` + All code and development tool specifications are in `pyproject.toml`. \ No newline at end of file diff --git a/docs/update_rendercv_files.py b/docs/update_rendercv_files.py index 0ed8336..d66defa 100644 --- a/docs/update_rendercv_files.py +++ b/docs/update_rendercv_files.py @@ -168,12 +168,12 @@ def generate_entry_figures(): """Generate an image for each entry type and theme.""" # Generate PDF figures for each entry type and theme entries = { - # "education_entry": dm.EducationEntry(**education_entry), - # "experience_entry": dm.ExperienceEntry(**experience_entry), - # "normal_entry": dm.NormalEntry(**normal_entry), - # "publication_entry": dm.PublicationEntry(**publication_entry), - # "one_line_entry": dm.OneLineEntry(**one_line_entry), - # "text_entry": f"{text_entry}", + "education_entry": dm.EducationEntry(**education_entry), + "experience_entry": dm.ExperienceEntry(**experience_entry), + "normal_entry": dm.NormalEntry(**normal_entry), + "publication_entry": dm.PublicationEntry(**publication_entry), + "one_line_entry": dm.OneLineEntry(**one_line_entry), + "text_entry": f"{text_entry}", "bullet_entry": dm.BulletEntry(**bullet_entry), } themes = dm.available_themes diff --git a/examples/John_Doe_ClassicTheme_CV.pdf b/examples/John_Doe_ClassicTheme_CV.pdf index d347f35..493f2e1 100644 Binary files a/examples/John_Doe_ClassicTheme_CV.pdf and b/examples/John_Doe_ClassicTheme_CV.pdf differ diff --git a/examples/John_Doe_EngineeringresumesTheme_CV.pdf b/examples/John_Doe_EngineeringresumesTheme_CV.pdf index 3f8b907..4e3891e 100644 Binary files a/examples/John_Doe_EngineeringresumesTheme_CV.pdf and b/examples/John_Doe_EngineeringresumesTheme_CV.pdf differ diff --git a/examples/John_Doe_EngineeringresumesTheme_CV.yaml b/examples/John_Doe_EngineeringresumesTheme_CV.yaml index a8695bd..c9342e6 100644 --- a/examples/John_Doe_EngineeringresumesTheme_CV.yaml +++ b/examples/John_Doe_EngineeringresumesTheme_CV.yaml @@ -134,6 +134,13 @@ design: section_title: top: 0.3 cm bottom: 0.2 cm + entry_area: + left_and_right: 0 cm + vertical_between: 0.1 cm + highlights_area: + top: 0.10 cm + left: 0 cm + vertical_between_bullet_points: 0.10 cm header: vertical_between_name_and_connections: 0.3 cm bottom: 0.3 cm diff --git a/examples/John_Doe_ModerncvTheme_CV.pdf b/examples/John_Doe_ModerncvTheme_CV.pdf index feb6a7d..37926bc 100644 Binary files a/examples/John_Doe_ModerncvTheme_CV.pdf and b/examples/John_Doe_ModerncvTheme_CV.pdf differ diff --git a/examples/John_Doe_Sb2NovTheme_CV.pdf b/examples/John_Doe_Sb2NovTheme_CV.pdf new file mode 100644 index 0000000..c218359 Binary files /dev/null and b/examples/John_Doe_Sb2NovTheme_CV.pdf differ diff --git a/examples/John_Doe_Sb2NovTheme_CV.yaml b/examples/John_Doe_Sb2NovTheme_CV.yaml new file mode 100644 index 0000000..db9cfdc --- /dev/null +++ b/examples/John_Doe_Sb2NovTheme_CV.yaml @@ -0,0 +1,148 @@ +cv: + name: John Doe + location: Your Location + email: youremail@yourdomain.com + phone: tel:+90-541-999-99-99 + website: https://yourwebsite.com/ + social_networks: + - network: LinkedIn + username: yourusername + - network: GitHub + username: yourusername + sections: + summary: + - This is an example resume to showcase the capabilities of the open-source + LaTeX CV generator, [RenderCV](https://github.com/sinaatalay/rendercv). A + substantial part of the content is taken from [here](https://www.careercup.com/resume), + where a *clean and tidy CV* pattern is proposed by **Gayle L. McDowell**. + education: + - institution: University of Pennsylvania + area: Computer Science + degree: BS + start_date: 2000-09 + end_date: 2005-05 + highlights: + - 'GPA: 3.9/4.0 ([Transcript](https://example.com))' + - '**Coursework:** Software Foundations, Computer Architecture, Algorithms, + Artificial Intelligence, Comparison of Learning Algorithms, Computational + Theory.' + experience: + - company: Apple Computer + position: Software Engineer, Intern + location: CA, USA + start_date: 2004-06 + end_date: 2004-08 + highlights: + - Reduced time to render the user's buddy list by 75% by implementing a + prediction algorithm. + - Implemented iChat integration with OS X Spotlight Search by creating a + tool that extracts metadata from saved chat transcripts and provides metadata + to a system-wide search database. + - Redesigned chat file format and implemented backward compatibility for + search. + - company: Microsoft Corporation + position: Lead Student Ambassador + location: WA, USA + start_date: 2003-09 + end_date: 2005-04 + highlights: + - Promoted to Lead Student Ambassador in the Fall of 2004, supervised 10 + - 15 Student Ambassadors. + - 'Created and taught a computer science course, CSE 099: Software Design + and Development.' + - company: University of Pennsylvania + position: Head Teaching Assistant + location: PA, USA + start_date: 2001-10 + end_date: 2005-05 + highlights: + - Implemented a user interface for the VS open file switcher (ctrl-tab) + and extended it to tool windows. + - Created a service to provide gradient across VS and VS add-ins. Optimized + service via caching. + - Programmer Productivity Research Center (Summers 2001, 2002) + - 'Built app to compute the similarity of all methods in a code base, reduced + time from $\mathcal{O}(n^2)$ to $\mathcal{O}(n \log n)$. ' + - Created a test case generation tool that creates random XML docs from + XML Schema. + - company: Microsoft Corporation + position: Software Design Engineer, Intern + location: WA, USA + start_date: 2003-06 + end_date: 2003-08 + highlights: + - Promoted to Lead Student Ambassador in the Fall of 2004, supervised 10 + - 15 Student Ambassadors. + publications: + - title: Magneto-Thermal Thin Shell Approximation for 3D Finite Element Analysis + of No-Insulation Coils + authors: + - Albert Smith + - John Doe + - Jane Derry + - Harry Tom + - Anotherfirstname Andsurname + doi: 10.1109/TASC.2023.3340648 + date: 2004-01 + projects: + - name: Multi-User Drawing Tool + date: '2004' + highlights: + - Developed an electronic classroom where multiple users can view and simultaneously + draw on a "chalkboard" with each person's edits synchronized. + - Used C++ and MFC. + - name: Synchronized Calendar + start_date: 2003 + end_date: 2004 + highlights: + - Developed a desktop calendar with globally shared and synchronized calendars, + allowing users to schedule meetings with other users. + - Used C#.NET, SQL, and XML. + - name: Operating System + date: '2002' + highlights: + - Developed a UNIX-style OS with a scheduler, file system, text editor, + and calculator. + - Used C. + additional_experience_and_awards: + - label: Instructor (2003 - 2005) + details: Taught two full-credit Computer Science courses. + - label: Third Prize, Senior Design Projects + details: Awarded 3rd prize for a synchronized calendar project out of 100 + projects. + technologies: + - label: Languages + details: C++, C, Java, Objective-C, C#.NET, SQL, JavaScript + - label: Software + details: Visual Studio, Microsoft SQL Server, Eclipse, XCode, Interface Builder +design: + theme: sb2nov + font_size: 10pt + page_size: letterpaper + color: '#004f90' + disable_page_numbering: false + page_numbering_style: NAME - Page PAGE_NUMBER of TOTAL_PAGES + show_last_updated_date: true + header_font_size: 24 pt + text_alignment: justified + margins: + page: + top: 2 cm + bottom: 2 cm + left: 2 cm + right: 2 cm + section_title: + top: 0.3 cm + bottom: 0.2 cm + entry_area: + left_and_right: 0.2 cm + vertical_between: 0.2 cm + date_and_location_width: 4.1 cm + highlights_area: + top: 0.10 cm + left: 0.4 cm + vertical_between_bullet_points: 0.10 cm + header: + vertical_between_name_and_connections: 0.3 cm + bottom: 0.3 cm + horizontal_between_connections: 0.5 cm