-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathresume.html
More file actions
149 lines (129 loc) · 3.64 KB
/
Copy pathresume.html
File metadata and controls
149 lines (129 loc) · 3.64 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
---
title: Résumé
resume:
goal:
I am looking to learn more about systems programming and databases,
and have a passion for creating well-crafted tools.
tech:
- name: Languages
items:
- Rust
- C
- x86 assembly
- Ruby (Rails)
- TypeScript/JavaScript (Node.js, Knockout.js)
- name: Databases
items:
- PostgreSQL
- Redis
- MongoDB
- name: Systems
items:
- FreeBSD
- Ubuntu
- Arch Linux
- macOS
- name: Tools & Platforms
items:
- Protobuf
- American Fuzzy Lop
- Git
- Heroku
- Digital Ocean
volunteer:
I’ve written many, and contributed to some,
open-source projects on GitHub.
For example,
a friend and I
created a Clojure-like Lisp
with Ruby interoperation
on the Rubinius VM.
I’ve also made web API clients,
stylesheets,
development tools,
data structure libraries,
hobby operating systems,
and many Befunge interpreters.
I publish short technical articles
on my website
and have spent time helping others
in Rust IRC channels.
work:
- title: Software Developer
company: Hopper
location: Montréal
start: May 2017
end: August 2017
doings:
Learning new things…
- title: Software Developer
company: AdGear
location: Montréal
start: October 2015
end: April 2017
doings:
I designed and implemented a replacement
for the primary ETL
providing time-sensitive state
to a global real-time bidding system.
The design solved performance, correctness, and concurrency
issues in the legacy system,
and served as a strong example of Rust
in the company.
I vectorized a hash table implementation
in a specialized key-value database service
to take advantage of SIMD instruction sets
and measured the performance increase
with microbenchmarks.
I set up fuzzing jobs
for many Erlang NIFs written in C
to try to find edge case crashes,
which can bring down the BEAM.
- title: Software Developer
company: Busbud
location: Montréal
start: December 2013
end: April 2015
doings:
I migrated geographic data
from CouchDB to PostgreSQL,
and replaced Elasticsearch
with Postgres materialized views
and trigram indexes.
This centralized data
and improved performance.
I introduced promises and functional programming
to the Node.js server,
which facilitated writing organized, asynchronous code.
I helped redesign the interfaces and data models
for integrating partner APIs into Busbud’s,
which were previously too restricted and lossy.
---
<h2 class="visible-print">Curtis McEnroe</h2>
<ul class="subtitle list-unstyled visible-print">
<li>{{ site.email }}</li>
<li>github.com/programble</li>
</ul>
<p>{{ page.resume.goal }}</p>
<div class="pdf-link float-right hidden-print">
<a href="cmcenroe.pdf" target="_blank">
<i class="fa fa-download"></i> PDF
</a>
</div>
<h3>Technical skills</h3>
<ul>
{% for category in page.resume.tech %}
<li>{{ category.items | join:', ' }}</li>
{% endfor %}
</ul>
<h3>Volunteer experience</h3>
<p>{{ page.resume.volunteer }}</p>
<h3>Work experience</h3>
{% for job in page.resume.work %}
<h4>
{{ job.title }}, {{ job.company }} ({{ job.location }})
<br>
<small>{{ job.start }} – {{ job.end }}</small>
</h4>
<p>{{ job.doings }}</p>
{% endfor %}