summaryrefslogtreecommitdiff
path: root/resume/resume.html
blob: ba17dcb7e866b1ba7a8ea1246b08fb30af322a6f (plain)
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
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Alex Xu's Resume</title>
    <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
    <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="Generalist software developer with experience in Linux, C, Python, networking.">
    <link rel="stylesheet" href="resume.css">
</head>
<body>
    <div class="right title">
        <h1>Alex Xu</h1>
        <p class="h1s">Generalist software developer</p>
    </div>
    <div class="left taddr">
        <address>
            <ul class="fakelist">
                <li>
                    <svg class="icon" role="img" height="12" width="12" fill="none" stroke="currentcolor" stroke-linejoin="round" stroke-width="1.1">
                        <title>Location:</title>
                        <path aria-hidden="true" d="m1.5 4.4999967 4.5-3.50000004 4.5 3.50000004v5.5a1 1 0 0 1 -1 1.0000003h-7a1 1 0 0 1 -1-1.0000003z"/>
                        <path aria-hidden="true" d="m4.5 11v-5h3v5"/>
                    </svg>
                    Toronto, Canada<br>(open to remote, reloc)
                </li>
                <li>
                    <svg class="icon" role="img" height="12" width="12" fill="none" stroke="currentcolor" stroke-width="1.1">
                        <title>Email:</title>
                        <path aria-hidden="true" d="m2 2h8c.55 0 1 .45 1 1v6c0 .55-.45 1-1 1h-8c-.55 0-1-.45-1-1v-6c0-.55.45-1 1-1z"/>
                        <path aria-hidden="true" d="m11 3-5 3.5-5-3.5"/>
                    </svg>
                    <!-- remember to update print js below -->
                    <a href="javascript:location=['ca','.','alxu','@','alex',':','mailto'].reverse().join('');void 0">
                        <span style="display:inline">alex</span>&#64;alxu<span class="hide"> DELETE ME </span>.ca
                    </a>
                </li>
            </ul>
        </address>
    </div>
    <div class="gap"></div>
    <h2 class="left">Education</h2>
    <div class="right">
        <section class="entry">
            <div class="entry-header">
                <div><h4><b>Lassonde School of Engineering, B.Sc., <abbr title="Honours">Hons.</abbr> Computer Science</b>, <i class="nb">York University</i>, GPA: 7.7/9.0 (A).</h4></div>
                <div class="date"><b>Sept.&nbsp;2016&ndash;May&nbsp;2020</b><span class="date-punct">:</span></div>
            </div>
            <ul class="left-heavy-columns">
                <li>Advanced Object Oriented Programming (A+)</li>
                <li>Design and Analysis of Algorithms (A+)</li>
                <li>Fundamentals of Data Structures (A+)</li>
                <li>Computer Architecture (A)</li>
                <li>Database Management Systems (A+)</li>
                <li>Applied Cryptography (A+)</li>
                <li>Mathematics of Cryptography (A)</li>
                <li>Network Security (A+)</li>
            </ul>
            <ul class="print" style="width:21em">
                <li>Advanced Object Oriented Programming (A+)</li>
                <li>Design and Analysis of Algorithms (A+)</li>
                <li>Fundamentals of Data Structures (A+)</li>
                <li>Computer Architecture (A)</li>
            </ul>
            <ul class="print" style="width:16em">
                <li>Database Management Systems (A+)</li>
                <li>Applied Cryptography (A+)</li>
                <li>Mathematics of Cryptography (A)</li>
                <li>Network Security (A+)</li>
            </ul>
        </section>
    </div>
    <div class="gap"></div>
    <h2 class="left">Work</h2>
    <div class="right">
        <section class="entry">
            <div class="entry-header">
                <div><h4><b>Ethica Channel Enablement Inc</b>, <i>Network Engineer</i>.</h4></div>
                <div class="date"><b>Dec.&nbsp;2018&ndash;Oct.&nbsp;2019</b><span class="date-punct">:</span></div>
            </div>
            <p>Developed several core projects and provided extensive consulting on C, Linux, git, and networking.</p>
            <ul>
                <li>built a Buildroot-based minimal Linux infrastructure for the launch of a multi-link VPN product</li>
                <li>created a fully automated high-speed operating system installer for x86 systems using BusyBox sh</li>
                <li>created a tool for remote Linux in-place replacement using POSIX sh and BusyBox</li>
                <li>developed a GitLab CI process for generating the deployable image</li>
            </ul>
        </section>
        <section class="entry">
            <div class="entry-header">
                <div><h4><b>York University</b>, <i>Undergraduate Student Research Award researcher</i>.</h4></div>
                <div class="date"><b>May&ndash;Aug. 2018</b><span class="date-punct">:</span></div>
            </div>
            <p>Co-developed a Django web platform for worldwide crowdsourced hydrographic data collaboration.</p>
        </section>
        <section class="entry">
            <div class="entry-header">
                <div><h4><b>York University</b>, <i>Teaching assistant</i>.</h4></div>
                <div class="date"><b>June&ndash;July 2017</b><span class="date-punct">:</span></div>
            </div>
            <p>Taught lab sessions for 48-student Android/web development course.</p>
        </section>
    </div>
    <div class="gap"></div>
    <div class="left">
        <h2>Community</h2>
        <address>
            <ul class="fakelist">
                <li>
                    <svg class="icon" role="img" height="12" width="12" fill="none" stroke="currentcolor" stroke-linecap="round" stroke-width="1.1">
                        <title>cgit:</title>
                        <path aria-hidden="true" d="m8 9 3-3-3-3 M4 3 l-3 3 3 3"/>
                    </svg>
                    <a href="https://cgit.alxu.ca/">cgit.alxu.ca</a>
                </li>
                <li>
                    <svg class="icon" role="img" height="12" width="12" fill="none" stroke="currentcolor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.1">
                        <title>GitHub:</title>
                        <path aria-hidden="true" d="m4.625 9.7566971c-2.5.75-2.5-1.25-3.5-1.5m7 3v-1.935a1.685 1.685 0 0 0 -.47-1.305c1.57-.175 3.22-.77 3.22-3.5a2.72 2.72 0 0 0 -.75-1.875 2.535 2.535 0 0 0 -.045-1.885s-.59-.175-1.955.74a6.69 6.69 0 0 0 -3.5 0c-1.365-.915-1.955-.74-1.955-.74a2.535 2.535 0 0 0 -.045 1.885 2.72 2.72 0 0 0 -.75 1.89c0 2.71 1.65 3.305 3.22 3.5a1.685 1.685 0 0 0 -.47 1.29v1.935"/>
                    </svg>
                    <a href="https://github.com/Hello71">gh/Hello71</a> <span style="font-style: normal">[</span><a href="https://github.com/search?q=type%3Apr+author%3AHello71&amp;s=created">PRs</a><span style="font-style: normal">]</span>
                </li>
            </ul>
        </address>
    </div>
    <div class="right">
        <section class="entry">
            <div class="entry-header">
                <div><h4><b><a href="https://alpinelinux.org/">Alpine Linux</a></b></h4></div>
                <div class="date"><b>March 2020&ndash;present</b><span class="date-punct">:</span></div>
            </div>
            <p><a href="https://gitlab.alpinelinux.org/groups/alpine/-/issues?state=all&amp;author_username=alxu">Reported</a>, documented, and <a href="https://gitlab.alpinelinux.org/groups/alpine/-/merge_requests?author_username=alxu&amp;state=all">contributed fixes</a> for issues including <a href="https://wiki.alpinelinux.org/wiki/Release_Notes_for_Alpine_3.14.0#faccessat2">Operation not permitted in Docker</a>, <a href="https://github.com/alpinelinux/docker-alpine/issues/134">sh: write error: Invalid argument</a>, and <a href="https://gitlab.alpinelinux.org/alpine/aports/-/issues/12368">Raspberry Pi doesn't boot, 7 blinks</a>. <a href="https://lists.alpinelinux.org/~alpine/devel/?search=from%3A%22Alex+Xu%22">Proposed changes</a> including <a href="https://lists.alpinelinux.org/~alpine/devel/%3C1628515011.zujvcn248v.none%40localhost%3E">-fno-plt for x86 and x86_64</a>, <a href="https://lists.alpinelinux.org/~alpine/devel/%3C1593702164.2nw55qdomr.none%40localhost%3E">compressing debuginfo</a>, and <a href="https://lists.alpinelinux.org/~alpine/devel/%3C1593625212.dirkptm3b0.none%40localhost%3E">reconsidering -Os</a>.</p>
        </section>
        <section class="entry">
            <div class="entry-header">
                <div><h4><b><a href="https://gitlab.freedesktop.org/glvnd/libglvnd">libglvnd</a></b></h4></div>
                <div class="date"><b>September 2021</b><span class="date-punct">:</span></div>
            </div>
            <p><a href="https://gitlab.freedesktop.org/glvnd/libglvnd/-/merge_requests/249">Implemented correct global-dynamic TLS support, fixing musl compatibility.</a></p>
        </section>
        <section class="entry">
            <div class="entry-header">
                <div><h4><b><a href="https://www.winehq.org/">Wine</a></b></h4></div>
                <div class="date"><b>July 2021</b><span class="date-punct">:</span></div>
            </div>
            <p><a href="https://www.winehq.org/pipermail/wine-devel/2021-July/191267.html">Implemented copy_file_range support, shrinking Wine prefixes from 200 MB to less than 1 MB.</a></p>
        </section>
        <section class="entry">
            <div class="entry-header">
                <div><h4><b>Linux kernel</b></h4></div>
                <div class="date"><b>2012&ndash;present</b><span class="date-punct">:</span></div>
            </div>
            <p>Reported issues and submitted fixes: <a href="https://lore.kernel.org/lkml/?q=f%3A%22Alex+Xu%22">lkml</a>, <a href="https://linuxlists.cc/profile/47355/Alex_Xu">linuxlists</a>. Diagnosed <a href="https://github.com/rust-lang/cargo/issues/9739">Cargo issue 9739</a> to <a href="https://lore.kernel.org/lkml/1628086770.5rn8p04n6j.none@localhost/">a long-standing kernel bug</a>, and <a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=46c4c9d1beb7f5b4cec4dd90e7728720583ee348">fixed the underlying issue</a>, resolving a deadlock in GNU Make and similar jobservers.</p>
        </section>
        <section class="entry">
            <div class="entry-header">
                <div><h4><b><a href="https://qemu.org/">QEMU</a></b></h4></div>
                <div class="date"><b>December 2020</b><span class="date-punct">:</span></div>
            </div>
            <p>Discovered and reported <a href="https://nvd.nist.gov/vuln/detail/CVE-2020-35517">an issue allowing full host device access from guests with virtiofsd enabled</a>.</p>
        </section>
        <section class="entry">
            <div class="entry-header">
                <div><h4><b><a href="https://cgit.alxu.ca/wfs.git/">wfs</a></b></h4></div>
                <div class="date"><b>June 2020</b><span class="date-punct">:</span></div>
            </div>
            <p>Built a concurrent Python web font subsetter with automatic pixel-perfect verification.</p>
        </section>
        <section class="entry">
            <div class="entry-header">
                <div><h4><b><a href="https://cgit.alxu.ca/cgit-syntax-highlighting.git">cgit-syntax-highlighting</a></b></h4></div>
                <div class="date"><b>March 2020</b><span class="date-punct">:</span></div>
            </div>
            <p>Built a concurrent Python pygments microservice, reducing TTFB from 1.1s to 0.15s on <a href="https://cgit.alxu.ca/">cgit.alxu.ca</a>. Improved portability and security and reduced LOC by 66% by <a href="https://cgit.alxu.ca/cgit-syntax-highlighting.git/commit/?id=bbbbafd21b1cade042d57c90cc70df682df28e6d">switching from http.server to aiohttp</a>.</p>
        </section>
        <section class="entry">
            <div class="entry-header">
                <div><h4><b><a href="https://cgit.alxu.ca/udpastcp.git">udpastcp</a></b></h4></div>
                <div class="date"><b>July 2016</b><span class="date-punct">:</span></div>
            </div>
            <p>Built a C tunnel to simulate datagrams using TCP packets, fixing TCP-over-TCP overhead.</p>
        </section>
        <section class="entry">
            <div class="entry-header">
                <div><h4><b><a href="https://github.com/Dwarf-Therapist/Dwarf-Therapist">Dwarf Therapist</a></b></h4></div>
                <div class="date"><b>Aug.&nbsp;2014&ndash;Sept.&nbsp;2017</b><span class="date-punct">:</span></div>
            </div>
            <p><a href="https://github.com/Dwarf-Therapist/Dwarf-Therapist/commits?author=Hello71">Implemented cross-bit ptrace, migrated from qmake to CMake, and refactored code</a>.</p>
        </section>
        <section class="entry">
            <div class="entry-header">
                <div><h4><b><a href="https://sourceforge.net/projects/simpregedit/">Simple Registry Editor</a></b></h4></div>
                <div class="date"><b>Sept. 2008</b><span class="date-punct">:</span></div>
            </div>
            <p>Built a minimal .NET registry editor.</p>
        </section>
    </div>
    <div class="gap"></div>
    <h2 class="left noprint">Personal</h2>
    <div class="right noprint">
        <section class="entry">
            <div class="entry-header">
                <div><h4><b>Resume</b></h4></div>
                <div class="date"><b>June 2020</b><span class="date-punct">:</span></div>
            </div>
            <p><a href="https://cgit.alxu.ca/alxu.ca.git/tree/resume">Rewrote my resume from LaTeX to modern web standards</a>:</p>
            <ul>
                <li>significantly improved mobile-friendliness and blind accessibility using standard HTML and CSS</li>
                <li>reduced total transfer to 30 kB including webfonts using aggressive inlining and font subsetting</li>
                <li>optimized loading time by minimizing size and reducing round trips using HTTP/2 server push</li>
                <li>automated builds, anycast deploys, and end-to-end checks using parallel GNU make</li>
            </ul>
        </section>
    </div>
    <div class="gap noprint"></div>
    <h2 class="left" style="font-size: 1.4em">Skills</h2>
    <div class="right">
        <p><strong>Alpine</strong>, Debian Linux; FreeBSD; Docker; <strong>Git</strong>; NGINX; <strong>WireGuard</strong>; TCP/IP; HTTP(S); DNS; SSH</p>
    </div>
    <h3 class="left">Programming</h3>
    <div class="right">
        <p><strong>C</strong>; C++; Go; <strong>Python</strong>; <strong>bash, POSIX sh</strong>; GNU make; HTML; CSS; JavaScript; SQL</p>
    </div>
    <script src="resume.js"></script>
</body>
</html>