feat: logo support
@@ -39,6 +39,7 @@
|
|||||||
start_date: "May 2026",
|
start_date: "May 2026",
|
||||||
end_date: "Aug 2026",
|
end_date: "Aug 2026",
|
||||||
location: "New York, NY",
|
location: "New York, NY",
|
||||||
|
logo: "jane_street.jpg",
|
||||||
tasks: ([???], [???], [???]),
|
tasks: ([???], [???], [???]),
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -49,9 +50,10 @@
|
|||||||
start_date: "Feb 2026",
|
start_date: "Feb 2026",
|
||||||
end_date: "Apr 2026",
|
end_date: "Apr 2026",
|
||||||
location: "New York, NY",
|
location: "New York, NY",
|
||||||
|
logo: "rippling.jpg",
|
||||||
tasks: ([???], [???], [???]),
|
tasks: ([???], [???], [???]),
|
||||||
)
|
)
|
||||||
|
|
||||||
#work_entry(
|
#work_entry(
|
||||||
"Squint",
|
"Squint",
|
||||||
"Software Engineering Intern",
|
"Software Engineering Intern",
|
||||||
@@ -60,6 +62,7 @@
|
|||||||
end_date: "Aug 2025",
|
end_date: "Aug 2025",
|
||||||
location: "San Francisco, CA",
|
location: "San Francisco, CA",
|
||||||
tools: "Python, TypeScript, React, Postgres, AWS",
|
tools: "Python, TypeScript, React, Postgres, AWS",
|
||||||
|
logo: "squint.jpg",
|
||||||
tasks: (
|
tasks: (
|
||||||
[Architected *real-time pub/sub notifications framework & pipeline*, enabling
|
[Architected *real-time pub/sub notifications framework & pipeline*, enabling
|
||||||
*SLA-compliant alerts* for enterprise clients by routing system events to create
|
*SLA-compliant alerts* for enterprise clients by routing system events to create
|
||||||
@@ -83,6 +86,7 @@
|
|||||||
end_date: "Jan 2025",
|
end_date: "Jan 2025",
|
||||||
location: "Waterloo, ON",
|
location: "Waterloo, ON",
|
||||||
tools: "TypeScript, Express, Postgres, Kubernetes",
|
tools: "TypeScript, Express, Postgres, Kubernetes",
|
||||||
|
logo: "hackthenorth.png",
|
||||||
tasks: (
|
tasks: (
|
||||||
[*Led 6-person engineering team* to ship shift scheduling and hardware inventory
|
[*Led 6-person engineering team* to ship shift scheduling and hardware inventory
|
||||||
tools to *1500+ event attendees*],
|
tools to *1500+ event attendees*],
|
||||||
@@ -142,6 +146,7 @@
|
|||||||
end_date: "Aug 2023",
|
end_date: "Aug 2023",
|
||||||
location: "Remote",
|
location: "Remote",
|
||||||
tools: "TypeScript, Python, React, Postgres, AWS",
|
tools: "TypeScript, Python, React, Postgres, AWS",
|
||||||
|
logo: "dropbase.jpg",
|
||||||
tasks: (
|
tasks: (
|
||||||
[*Shipped static analysis tool* for platform's *custom SQL dialect* by
|
[*Shipped static analysis tool* for platform's *custom SQL dialect* by
|
||||||
recursively processing an abstract syntax tree],
|
recursively processing an abstract syntax tree],
|
||||||
|
40
lib/lib.typ
@@ -24,6 +24,9 @@
|
|||||||
|
|
||||||
#let JOB_TITLE_FONT_SIZE = 1.05em
|
#let JOB_TITLE_FONT_SIZE = 1.05em
|
||||||
|
|
||||||
|
#let LOGO_IMAGE_HEIGHT = 2.25em
|
||||||
|
#let LOGO_IMAGE_GAP = 0.75em
|
||||||
|
|
||||||
// rest = not top
|
// rest = not top
|
||||||
#let PAGE_MARGINS = (right: 0.425in, top: 0.3in, left: 0.375in, bottom: 0.4in)
|
#let PAGE_MARGINS = (right: 0.425in, top: 0.3in, left: 0.375in, bottom: 0.4in)
|
||||||
|
|
||||||
@@ -70,24 +73,49 @@
|
|||||||
end_date: none,
|
end_date: none,
|
||||||
location: none,
|
location: none,
|
||||||
company_link: none,
|
company_link: none,
|
||||||
|
logo: none,
|
||||||
) = {
|
) = {
|
||||||
cv_entry(left_content: {
|
cv_entry(left_content: {
|
||||||
|
let logo_img = if logo != none {
|
||||||
|
// image("../logos/" + logo, height: LOGO_IMAGE_HEIGHT)
|
||||||
|
none
|
||||||
|
} else {
|
||||||
|
none
|
||||||
|
}
|
||||||
|
|
||||||
let company_text = if company_link == none {
|
let company_text = if company_link == none {
|
||||||
[#company]
|
[#company]
|
||||||
} else {
|
} else {
|
||||||
[#link(company_link)[#company]]
|
[#link(company_link)[#company]]
|
||||||
}
|
}
|
||||||
|
|
||||||
text(JOB_TITLE_FONT_SIZE)[*#company_text*]
|
// company title + role
|
||||||
|
let left_text = stack(
|
||||||
|
align(horizon, {
|
||||||
|
text(JOB_TITLE_FONT_SIZE)[*#company_text*]
|
||||||
|
"\n"
|
||||||
|
set strong(delta: SMALL_STRONG)
|
||||||
|
[_#role _]
|
||||||
|
})
|
||||||
|
)
|
||||||
|
|
||||||
|
// render with logo if exists
|
||||||
|
if logo_img != none {
|
||||||
|
stack(
|
||||||
|
dir: ltr,
|
||||||
|
spacing: LOGO_IMAGE_GAP,
|
||||||
|
logo_img,
|
||||||
|
left_text,
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
left_text
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if tools != none {
|
if tools != none {
|
||||||
// text[ | _ #tools _ ]
|
// text[ | _ #tools _ ]
|
||||||
}
|
}
|
||||||
|
|
||||||
"\n"
|
|
||||||
set strong(delta: SMALL_STRONG)
|
|
||||||
|
|
||||||
[_#role _]
|
|
||||||
}, right_content: {
|
}, right_content: {
|
||||||
text(style: "italic")[#start_date -- #end_date]
|
text(style: "italic")[#start_date -- #end_date]
|
||||||
|
|
||||||
|
BIN
logos/dropbase.jpg
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
logos/hackthenorth.png
Normal file
After Width: | Height: | Size: 63 KiB |
BIN
logos/jane_street.jpg
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
logos/magna.jpg
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
logos/otw.jpg
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
logos/rippling.jpg
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
logos/squint.jpg
Normal file
After Width: | Height: | Size: 1.7 KiB |