summaryrefslogtreecommitdiff
path: root/resume/resume.html
blob: 219933f0dd4239dd234dd6c5ecd6ca0933dd0f3a (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
<!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>
    </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.5 4.5-3.5 4.5 3.5v5.5a1 1 0 0 1 -1 1h-7a1 1 0 0 1 -1-1z"/>
                        <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" width="12" height="12" viewBox="0 0 640 640">
                        <title>cgit:</title>
                        <path aria-hidden="true" fill="#ac0000" d="M 215 628c-42-15-70-43-82-83-13-40-9-45 31-45 25 0 34 7 47 32 19 39 61 52 139 45 66-7 90-31 90-87 0-39 0-39-32-29-38 10-141 12-188 3-18-4-48-22-66-41-34-34-34-34-34-182 0-137 2-150 23-181 28-41 82-60 172-59 124 0 195 48 195 131 0 25-3 28-35 28-30 0-35-3-35-23 0-42-26-65-83-72-30-4-73-3-98 2-62 12-79 48-79 168 0 142 23 172 131 174 85 2 129-29 129-90 0-17 6-20 36-17 37 3 37 3 35 118-3 142-15 174-78 201-50 21-167 25-218 7 z"/>
                    </svg>
                    <a href="https://cgit.alxu.ca/">cgit.alxu.ca</a>
                </li>
                <li>
                    <svg class="icon" role="img" width="12" height="12" viewBox="0 0 325 317">
                        <title>GitHub:</title>
                        <path aria-hidden="true" fill="#1b1817" d="m163 0c-90 0-163 73-163 163 0 72 46 133 111 154 8 2 11-3 11-7v-28c-45 10-55-22-55-22-7-19-18-24-18-24-15-10 1-10 1-10 17 1 25 17 25 17 15 25 38 18 48 14 1-11 5-18 10-22-36-4-74-18-74-81 0-17 6-32 16-43-1-4-7-21 2-44 0 0 14-4 45 17 13-3 27-5 41-5 13 0 27 2 40 5 31-21 45-17 45-17 9 23 3 40 2 44 10 11 17 26 17 43 0 63-39 77-75 81 6 5 11 15 11 30v45c0 4 3 9 11 7 65-21 111-82 111-154 0-90-72-163-162-163"/>
                    </svg>
                    <a href="https://github.com/Hello71">@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>
                <li>
                    <svg class="icon" role="img" width="15" height="16" fill="none">
                        <title>The Mail Archive:</title>
                        <path aria-hidden="true" stroke="#c21" d="M1.5 8l0-6.5l2.8 6.4l2.8-6.4l0 6.5" stroke-linecap="butt" stroke-linejoin="bevel" />
                        <path aria-hidden="true" stroke="#000" d="M8 15l3-7l3 7M9.5 12.2l3 0" />
                    </svg>
                    <a href="https://www.mail-archive.com/search?a=1&l=all&from=alex+xu+(hello71)&o=newest">Alex Xu</a>
                </li>
                <li>
                    marc:
                    <a href="https://marc.info/?a=145271750200002">Alex Xu</a>
                </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 C++ 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" style="font-size: 1.4em">Skills</h2>
    <div class="right">
        <p>Alpine, Debian Linux; FreeBSD; Docker; Git; NGINX; WireGuard; TCP/IP; HTTP(S); DNS; SSH</p>
    </div>
    <h3 class="left">Programming</h3>
    <div class="right">
        <p>C; C++; Go; Python; bash, POSIX sh; GNU make; HTML; CSS; JavaScript; SQL</p>
    </div>
    <script src="resume.js"></script>
</body>
</html>