-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrobertino-cv.typ
More file actions
343 lines (304 loc) · 11.6 KB
/
robertino-cv.typ
File metadata and controls
343 lines (304 loc) · 11.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
// Color definitions matching LaTeX
#let date-color = rgb("#666666")
#let primary-color = rgb("#2b2b2b")
#let headings-color = rgb("#6A6A6A")
#let subheadings-color = rgb("#333333")
// Page setup with custom margins
#set page(
margin: (x: 1cm, y: 0.75cm),
)
// Global text settings
#set text(
font: "Lato",
fill: primary-color,
size: 11pt,
weight: "light",
)
// Set paragraph spacing to minimal
// #set par(justify: false, leading: 0.25em)
// #set list(spacing: 5em, tight: true)
//#show list: set par(leading: 0.1em, spacing: 1em)
#show list.item: set par(leading: 0.4em, spacing: 0.4em)
#show list.item: x => v(0em) + x;
// Custom function: Last Updated stamp (absolute positioned)
#let lastupdated() = {
place(
top + right,
dy: -0.4cm,
text(
font: "Raleway",
size: 8pt,
fill: date-color,
weight: "extralight",
)[Last Updated on #datetime.today().display("[month repr:long] [day], [year]")],
)
}
// Custom function: Name section with contact info
#let namesection(first, last, contact) = {
v(-10pt)
align(center)[
#text(
font: "Lato",
size: 30pt,
weight: "light",
)[#first] #text(
font: "Lato",
size: 30pt,
weight: "thin",
)[#last]
#text(
font: "Raleway",
size: 11pt,
fill: headings-color,
weight: "medium",
)[#contact]
]
v(-5pt)
line(length: 100%, stroke: 0.4pt + headings-color)
}
// Custom function: Job/Company title (uppercase, bold)
#let runsubsection(title) = {
text(
font: "Lato",
size: 12pt,
weight: "bold",
fill: subheadings-color,
)[#upper(title)]
}
// Custom function: Position description
#let descript(desc) = {
text(
font: "Raleway",
size: 11pt,
fill: subheadings-color,
weight: "medium",
)[#desc]
linebreak()
v(-1em)
}
// Custom function: Date/location
#let location(dates) = {
text(
font: "Raleway",
size: 9pt,
fill: headings-color,
weight: "medium",
)[#dates]
linebreak()
}
// Custom function: Section separator
#let sectionsep() = {
v(2pt)
}
// Custom function: Section title
#let section-title(title) = {
text(
font: "Lato",
size: 16pt,
fill: headings-color,
weight: "light",
)[#upper(title)]
v(-0.5em)
}
// Custom function: Subsection title
#let subsection-title(title) = {
text(
font: "Lato",
size: 12pt,
fill: subheadings-color,
weight: "bold",
)[#upper(title)]
}
// Set list styling for tight spacing
#set list(
tight: true,
spacing: 1pt,
indent: 0.5em,
body-indent: 0.5em,
)
// Helper function to display tech icons with optional label and color
#let tech-icon(icon, label: none, color: primary-color, size: 15pt) = {
text(font: ("FiraCode Nerd Font Mono", "FiraCode Nerd Font"), size: size, fill: color, baseline: 1.2pt)[#icon]
if label != none {
h(0.2em)
text(size: 11pt)[#label]
}
}
// Technology icon variables
#let icon-cardano = box(image("assets/cardano_icon.png", width: 11pt, alt: "Cardano"), baseline: 2pt)
#let icon-aiken = box(image("assets/aiken_icon.png", width: 11pt, alt: "Aiken"), baseline: 2pt)
#let icon-blockchain = tech-icon("\u{f0c1}", color: rgb("#F7931A"))
#let icon-nix = tech-icon("\u{e843}", color: rgb("#7EBAE4"))
#let icon-haskell = tech-icon("\u{e777}", color: rgb("#5D4F85"))
#let icon-plutus = tech-icon("\u{e777}", color: rgb("#0033AD"))
#let icon-rust = tech-icon("\u{e7a8}", color: rgb("#000"))
#let icon-ai = tech-icon("\u{f06a9}", color: rgb("#555"))
#let icon-flutter = tech-icon("\u{e7dd}", color: rgb("#0175C2"), size: 12pt)
#let icon-dart = tech-icon("\u{e64c}", color: rgb("#0175C2"))
#let icon-javascript = tech-icon("\u{e74e}", color: rgb("#F7DF1E"))
#let icon-typescript = tech-icon("\u{e628}", color: rgb("#3178C6"))
#let icon-electron = tech-icon("\u{f1024}", color: rgb("#3178C6"))
#let icon-react = tech-icon("\u{e7ba}", color: rgb("#61DAFB"))
#let icon-firebase = tech-icon("\u{e657}", color: rgb("#FFCA28"), size: 13pt)
#let icon-python = tech-icon("\u{e73c}", color: rgb("#3776AB"))
#let icon-satelite = tech-icon("\u{ef5f}")
#let icon-ml = tech-icon("\u{f085}", color: rgb("#FF6F00"))
#let icon-pandas = tech-icon("\u{e85d}", color: rgb("#FF6F00"))
#let icon-tensorflow = tech-icon("\u{e8bc}", color: rgb("#FF6F00"))
#let icon-swift = tech-icon("\u{e699}", color: rgb("#FA7343"))
#let icon-kotlin = tech-icon("\u{e634}", color: rgb("#7F52FF"))
#let icon-android = tech-icon("\u{e70e}", color: rgb("#32DE84"))
#let icon-java = tech-icon("\u{e738}", color: rgb("#F04F23"))
#let icon-r = tech-icon("\u{e68a}", color: rgb("#276DC3"))
#let icon-sql = tech-icon("\u{e706}", color: rgb("#00758F"))
#let icon-php = tech-icon("\u{e73d}", color: rgb("#777BB4"))
#let icon-linux = tech-icon("\u{f17c}", color: rgb("#262577"))
// Document starts here
#lastupdated()
#namesection(
"Robertino",
"Martinez",
link("https://x.com/_roberm_")[x.com/\_roberm\_]
+ [ | ]
+ link("https://github.com/rober-m")[github.com/rober-m]
+ [ | ]
+ link("https://roberm.com")[roberm.com]
+ [ | ]
+ link("mailto:me@roberm.com")[me\@roberm.com],
)
// Two-column layout for main content
#grid(
columns: (48%, 50%),
gutter: 2%,
// LEFT COLUMN
[
#section-title[Summary]
Software engineer and technical leader with 10+ years of experience, including 3+ years focused on Cardano smart contracts and ecosystem tooling. Currently Lead Delivery at IOG and Founder of Always True, a Cardano smart contract auditing firm. Background spans founding startups, building ML systems, and educating developers through courses and hackathons. Combines deep technical expertise with product leadership and a track record of shipping across web, mobile, and blockchain platforms.
#section-title[Professional experience]
#runsubsection[Always True]
#descript[| Founder]
#location[2025 - present | #icon-cardano #icon-aiken #icon-haskell #icon-nix]
Company specialized in auditing Cardano smart contracts. Audited and optimized several smart contracts currently running on Cardano mainnet.
#sectionsep()
#runsubsection[Lead Delivery]
#descript[| Input Output (IOG/IOHK)]
#location[2024-Present | #icon-cardano #icon-rust #icon-typescript #icon-aiken #icon-haskell #icon-ai #icon-nix]
Defined strategies for Cardano developer education and led delivery across multiple projects (courses, educational platforms, hackathons, and events), managing 2-4 person teams per initiative. Established a blockchain laboratory at Argentina’s second-largest university (UTN) and partnered with universities across Latin America, Europe, and the US. As the Tech Lead of Acropolis AI (an AI-powered platform for onboarding developers to Cardano), designed and built most of the system.
#sectionsep()
#runsubsection[Educator]
#descript[| Input Output (IOG/IOHK)]
#location[2022-2024 (part-time the first year) | #icon-cardano #icon-haskell #icon-aiken #icon-typescript #icon-react #icon-nix]
Defined best practices for smart contract development and served as Cardano developer advocate. Trained hundreds of developers on Haskell, Plutus, and other Cardano technologies through 10+ in-person courses, workshops, and hackathons across 6 countries, plus thousands more via online courses.
#sectionsep()
#runsubsection[ClientFlows & Arquia]
#descript[| Co-Founder & CTO]
#location[2021 – 2023 (concurrent) | #icon-react #icon-typescript #icon-haskell #icon-flutter #icon-dart #icon-kotlin #icon-swift #icon-firebase #icon-sql #icon-php #icon-python #icon-linux]
*ClientFlows* was a client portal for small and medium-sized businesses and freelancers. *Arquia* was a company that created products (mobile and web applications) in multiple verticals. Led all product efforts (when, how, and what to build) and personally wrote and maintained most of the code and infrastructure.
#sectionsep()
],
// RIGHT COLUMN
[
#runsubsection[SearchForMe & EBCourses]
#descript[| Founder]
#location[2020 – 2023 (in sequence) | #icon-electron #icon-ai #icon-react #icon-firebase]
*SearchForMe* was a Desktop PDF reader with artificial intelligence (before LLMs) capable of answering questions about the content and showing the place where the answer is found. *EBCourses* was a platform that provided courses designed following scientific principles to maximize long-term retention. As a sole founder and engineer, led all product, marketing, and operational efforts.
#sectionsep()
#runsubsection[ML Engineer]
#descript[| Water Resources Secretariat]
#location[2019-2020 | #icon-ai #icon-python #icon-tensorflow #icon-pandas #icon-satelite #icon-haskell #icon-javascript]
Developed an ANN model capable of predicting the response of a basin and the level of a dam up to 6 months in advance, increasing electric generation revenue by millions of USD/year while ensuring sufficient water reserves for citizens.
#sectionsep()
#runsubsection[Mobile app developer]
#descript[| Freelance]
#location[2013-2020 (with break for research role) | #icon-flutter #icon-dart #icon-kotlin #icon-swift #icon-android #icon-java ]
End-to-end cross-platform mobile app development (Android/iOS): scoping, development, testing, and post-launch support for clients across various budgets and requirements.
#sectionsep()
#runsubsection[Researcher]
#descript[| Hydraulics and Hydrology Laboratory]
#location[2016-2017 | #icon-python #icon-r ]
Developed software for digitizing and processing hydrological data, including statistical analysis of storm patterns.
#sectionsep()
// #runsubsection[Android Developer]
// #descript[| Freelance]
// #location[2013-2016 | #icon-android #icon-java ]
// Created mobile applications for other companies and private individuals.
// #sectionsep()
#section-title[Formal Education]
#runsubsection[National Technological University]
#descript[| Civil Engineering (Argentina)]
#location[2012-2020]
Academic average: 8.3/10.
#sectionsep()
#runsubsection[Industrial Institute]
#descript[| Mid-level mechanical technician (High school)]
#location[2008-2011]
//#sectionsep()
//////////////////////////////////////////////
#section-title[Skills]
#subsection-title[Technical skills]
#v(-5pt)
Blockchain #sym.bullet
Haskell #sym.bullet
Plutus #sym.bullet
Rust #sym.bullet
Aiken #sym.bullet
TypeScript #sym.bullet
Nix #sym.bullet
React #sym.bullet
AI/Machine Learning #sym.bullet
Flutter #sym.bullet
Dart #sym.bullet
Firebase #sym.bullet
Python #sym.bullet
SQL #sym.bullet
Git
#subsection-title[Soft skills]
#v(-5pt)
Leadership #sym.bullet
Resourcefulness #sym.bullet
Initiative #sym.bullet
Bilingual Communication (English and Spanish) #sym.bullet
Pedagogy
],
)
//#section-title[Skills]
// Full-width horizontal rule before skills
// #v(0pt)
// #line(length: 100%, stroke: 0.4pt + headings-color)
//
// // Skills section in two columns
// #grid(
// columns: (48%, 50%),
// gutter: 2%,
//
// // Technical Skills
// [
// #subsection-title[Technical skills]
//
// Blockchain #sym.bullet
// Haskell #sym.bullet
// Plutus #sym.bullet
// Rust #sym.bullet
// TypeScript #sym.bullet
// React #sym.bullet
// Flutter #sym.bullet
// Dart #sym.bullet
// Firebase #sym.bullet
// Python #sym.bullet
// Machine Learning
// ],
//
// // Soft Skills
// [
// #subsection-title[Soft skills]
//
// Leadership #sym.bullet
// Resourcefulness #sym.bullet
// Initiative #sym.bullet
// Bilingual Communication (English and Spanish) #sym.bullet
// Pedagogy
// ],
// )
//
// #sectionsep()
//