Skip to content

Instantly share code, notes, and snippets.

@FedericoTartarini
Created April 28, 2025 11:33
Show Gist options
  • Select an option

  • Save FedericoTartarini/92d3aa994cadbda5aab83dc1e7297774 to your computer and use it in GitHub Desktop.

Select an option

Save FedericoTartarini/92d3aa994cadbda5aab83dc1e7297774 to your computer and use it in GitHub Desktop.
typst-cv-youtube-video
#import "resume.typ": *
// Personal information
#let name = "Dr Federico Tartarini - CV"
#let location = "Sydney, AU"
#let email = ""
#let github = "github.com/FedericoTartarini"
#let linkedin = "linkedin.com/in/federico-tartarini-3991995b"
#let scopus = "www.scopus.com/authid/detail.uri?authorId=57194517775"
#let scholar = "scholar.google.com/citations?user=QcamSPwAAAAJ&hl=en"
#show: resume.with(
author: name,
location: location,
email: email,
github: github,
linkedin: linkedin,
orcid: "0000-0002-8739-5062",
personal-site: "https://federicotartarini.github.io/",
accent-color: "#e76f51",
font: "Lato",
paper: "a4",
author-position: left,
personal-info-position: left,
)
// Work and Research Experience
== Work and Research Experience
#work(
title: "Senior Lecturer and USYD Horizon Fellow",
company: "University of Sydney - School of Architecture Design and Planning",
location: "Sydney, AU",
dates: dates-helper(start-date: "06/2024", end-date: "present"),
)
- *Beat the Heath*: Advancing Our Understanding of Heat Stress and Developing Effective Sustainable Interventions to Reduce Health Risks in a Warming World.
- *Teaching*: Architectural and building science.
#import "@preview/scienceicons:0.0.6": orcid-icon
#import "@preview/fontawesome:0.5.0": *
#let resume(
author: "",
author-position: left,
personal-info-position: left,
pronouns: "",
location: "",
email: "",
github: "",
linkedin: "",
phone: "",
personal-site: "",
orcid: "",
accent-color: "#000000",
font: "New Computer Modern",
paper: "us-letter",
body,
) = {
// Sets document metadata
set document(author: author, title: author)
// Document-wide formatting, including font and margins
set text(
// LaTeX style font
font: font,
size: 10pt,
lang: "en",
// Disable ligatures so ATS systems do not get confused when parsing fonts.
ligatures: false
)
// Reccomended to have 0.5in margin on all sides
set page(
margin: (0.5in),
paper: paper,
)
// Link styles
show link: underline
// Small caps for section titles
show heading.where(level: 2): it => [
#pad(top: 0pt, bottom: -10pt, [#smallcaps(it.body)])
#line(length: 100%, stroke: 1pt)
]
// Accent Color Styling
show heading: set text(
fill: rgb(accent-color),
)
show link: set text(
fill: rgb(accent-color),
)
// Name will be aligned left, bold and big
show heading.where(level: 1): it => [
#set align(author-position)
#set text(
weight: 700,
size: 20pt,
)
#pad(it.body)
]
// Level 1 Heading
[= #(author)]
// Personal Info Helper
let contact-item(value, prefix: "", link-type: "") = {
if value != "" {
if link-type != "" {
link(link-type + value)[#(prefix)]
} else {
value
}
}
}
// Personal Info
pad(
top: 0.25em,
align(personal-info-position)[
#{
let items = (
contact-item(pronouns),
contact-item(phone),
contact-item(location),
contact-item(email, prefix: [#fa-icon("envelope")], link-type: "mailto:"),
contact-item(github, prefix: [#fa-icon("github")], link-type: "https://"),
contact-item(linkedin, prefix: [#fa-icon("linkedin")], link-type: "https://"),
contact-item(personal-site, prefix: [#fa-icon("user")], link-type: "https://"),
contact-item(orcid, prefix: [#orcid-icon(color: rgb("#AECD54"))], link-type: "https://orcid.org/"),
)
items.filter(x => x != none).join(" | ")
}
#h(1fr) #datetime.today().display()],
)
// Main body.
set par(justify: true)
body
}
// Generic two by two component for resume
#let generic-two-by-two(
top-left: "",
top-right: "",
bottom-left: "",
bottom-right: "",
) = {
[
#top-left #h(1fr) #top-right \
#bottom-left #h(1fr) #bottom-right
]
}
// Generic one by two component for resume
#let generic-one-by-two(
left: "",
right: "",
) = {
[
#left #h(1fr) #right
]
}
// Cannot just use normal --- ligature becuase ligatures are disabled for good reasons
#let dates-helper(
start-date: "",
end-date: "",
) = {
start-date + " " + $dash.em$ + " " + end-date
}
// Section components below
#let edu(
institution: "",
dates: "",
degree: "",
gpa: "",
location: "",
// Makes dates on upper right like rest of components
consistent: false,
) = {
if consistent {
// edu-constant style (dates top-right, location bottom-right)
generic-two-by-two(
top-left: strong(institution),
top-right: dates,
bottom-left: emph(degree),
bottom-right: emph(location),
)
} else {
// original edu style (location top-right, dates bottom-right)
generic-two-by-two(
top-left: strong(institution),
top-right: location,
bottom-left: emph(degree),
bottom-right: emph(dates),
)
}
}
#let work(
title: "",
dates: "",
company: "",
location: "",
) = {
generic-two-by-two(
top-left: strong(title),
top-right: dates,
bottom-left: company,
bottom-right: emph(location),
)
}
#let project(
role: "",
name: "",
url: "",
dates: "",
) = {
generic-one-by-two(
left: {
if role == "" {
[*#name* #if url != "" and dates != "" [ (#link("https://" + url)[#url])]]
} else {
[*#role*, #name #if url != "" and dates != "" [ (#link("https://" + url)[#url])]]
}
},
right: {
if dates == "" and url != "" {
link("https://" + url)[#url]
} else {
dates
}
},
)
}
#let certificates(
name: "",
issuer: "",
url: "",
date: "",
) = {
[
*#name*, #issuer
#if url != "" {
[ (#link("https://" + url)[#url])]
}
#h(1fr) #date
]
}
#let extracurriculars(
activity: "",
dates: "",
) = {
generic-one-by-two(
left: strong(activity),
right: dates,
)
}
@Abhishek123Tiwari
Copy link

Abhishek123Tiwari commented Feb 6, 2026

can u please share ur code in ur cv hide ur credential pleaae share on my email id abhishektiwari13102001v@gmail.com when i run given this code it show blank so please share ur entire code now this one

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment