-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
626 lines (379 loc) · 20.9 KB
/
index.html
File metadata and controls
626 lines (379 loc) · 20.9 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
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Matthew Cadier Kim" />
<meta name="description" content="Personal site and cv">
<link rel="favicon" href="/static/img/favicon.ico">
<title>Matthew Cadier Kim</title>
<!-- Bootstrap -->
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"
integrity="sha256-MfvZlkHCEqatNoGiOXveE8FIwMzZg4W85qfrfIFBfYc= sha512-dTfge/zgoMYpP7QbHy4gWMEGsbsdZeCXz7irItjcC3sPUFtf0kuFbDz/ixG7ArTxmDjLXDmezHubeNikyKGVyQ=="
crossorigin="anonymous">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<!-- Custom styles for this template -->
<link href="/static/css/main.css" rel="stylesheet">
<link href="http://fonts.googleapis.com/css?family=Source+Sans+Pro:200,400,200bold,400old" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
<link href="/static/css/bootstrap.icon-large.min.css" rel="stylesheet">
<!-- Google Analytics -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', '', 'auto');
ga('send', 'pageview');
</script>
</head>
<!-- Main Body-->
<body>
<!-- Wrap all page content here -->
<div id="wrap">
<!-- Navbar header -->
<nav class="navbar navbar-default ">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="/index.html"> Matthew Cadier Kim </a>
</div>
<div id="navbar">
<ul class="nav navbar-nav navbar-right">
<li><a href="/#about"> me </a></li>
<li><a href="/#projects"> projects </a></li>
<li><a href="/#cv"> cv </a></li>
<li><a href="/#services"> services </a></li>
<li><a href="/#writing">writing</a></li>
</ul>
</div>
</div>
</nav>
<section id="home">
<div class = "container">
<div class="landingbg">
<div class="avatar">
<img class="img-circle" src="/static/img/hex_art.png" alt="cool image">
</div>
</div>
</div>
</section>
<section id="about">
<div class = "container">
<h3 align = "left "> about </h3>
<h4 align="left">
<p>Seasoned software and ML engineer with experience in fintech, Bitcoin infrastructure, and machine vision. I have a background as a research mathematician and a proven track record at high-growth startups and major financial technology companies. Expertise in real time machine learning systems, risk management, cryptocurrency systems, and data engineering.</p>
</h4>
</div>
</section>
<!-- CV stuff -->
<section id="cv">
<div class="container">
<h3 align = "left "> curriculum vitae <a href="/assets/matthew_kim_2025_cv.pdf" class="active"> pdf </a></h3>
<div class="panel panel-default">
<div class="panel-body">
<h4>work</h4>
<article>
<header>
<h5> <strong>L6 software engineer</strong> at CashApp (Block Inc) </h5>
<span> <address>San Francisco, CA </address> <time>April 2022 - January 2024</time> <br>
<!-- supervisor: -->
</span>
</header>
<p> Worked on the bitcoin custody team, managing hot wallet and Lightning Network infrastructure. Built proof of reserves pipeline and managed critical system during high-fee environments. </p>
</article>
<article>
<header>
<h5> <strong>Senior Software Engineer </strong> at Square (Block Inc) </h5>
<span> <address>San Francisco, CA </address> <time>May 2018 - Apr 2022</time> <br>
<!-- supervisor: -->
</span>
</header>
<p> Technical lead for Square Bitcoin Conversions project. Built risk management systems for payments and banking. Collaborated across organization on critical financial infrastructure. </p>
</article>
<article>
<header>
<h5> <strong>Machine Learning Engineer</strong> at Coinbase </h5>
<span> <address>San Francisco, CA </address> <time>November 2017 - December 2018</time> <br>
<!-- supervisor: Christian Mladenov -->
</span>
</header>
<p> Backend services delivering model predictions and rule evaluations for payments risk, event pipelines, ETL, data warehousing. </p>
</article>
<article>
<header>
<h5> <strong>Senior Software Engineer: ML</strong> at Postmates </h5>
<span> <address>San Francisco, CA </address> <time>May 2016 - November 2017</time> <br>
<!-- supervisor: Dr. David Auerbach -->
</span>
</header>
<p> Built event-based prediction services for payments fraud, platform abuse, and prep-time estimation. Worked on systems to train and deploy statistical models, internal services and apis, airflow maintance, ETL jobs, ad hoc analysis, BI table design, and running portions of the interviews for DS and DE candidates. </p>
</article>
<article>
<header>
<h5> <strong>Machine Vision Engineer </strong> at UCSF Proctor Foundation </h5>
<span> <address>San Francisco, CA </address> <time>May 2015 - May 2016</time> <br>
<!-- supervisor: Dr. Travis Porco -->
</span>
</header>
<p> Worked on a grant funded project to detect Trachoma (an eye infection) in field images. I investigated and developed a collection of machine vision algorithms to classify images of eyelids. I worked with the PI to define the direction of the project and was the principal developer of the grading application. </p>
</article>
<article>
<header>
<h5> <strong>Data Scientist</strong> at Argyle Data </h5>
<span> <address>San Mateo, CA </address> <time>June, 2014 - February, 2015</time> <br>
<!-- supervisor: Arshak Navruzyan -->
</span>
</header>
<p> I prototyped statistical machine learning algorithms for time series analysis and fraud detection in network data as well as implemented production versions in Java. </p>
</article>
<h4> conferences </h4>
<article>
<p> <strong>UAI 2018</strong> at Association for Uncertainty in Artificial Intelligence, Monterey, CA <time>2018</time>: Participant
</p>
</article>
<article>
<p> <strong>Fourth Encuentro Colombiano de Combinatoria</strong> at Universidad de los Andes, Bogota, Colombia <time>2014</time>: invited speaker
</p>
</article>
<article>
<p> <strong>FPSAC</strong> at KAIST, Daejeon, South Korea <time>2015</time>: participant
</p>
</article>
<article>
<p> <strong>Summer Graduate School on Geometric Group Theory</strong> at MSRI, Berkeley, CA, USA <time>2015</time>: invited participant
</p>
</article>
<article>
<p> <strong>Richard Stanley Birthday Conference</strong> at MIT, Cambridge MA, USA <time>2014</time>: participant
</p>
</article>
<h4> papers/talks </h4>
<article>
<p> <a href=""> <strong> A Characterization of Generalized Permutohedra for the Classical Reflection Groups </strong> </a>,
2015,
(thesis)
</p>
</article>
<article>
<p> <a href="/assets/poster_gen_perm.pdf"> <strong> Generalized W-Permutohedra (poster) </strong> </a>,
2015,
(Poster presented at graduate student showcase.)
</p>
</article>
<article>
<p> <a href="/assets/slides_perm.pdf"> <strong> Generalized W-permutohedra (Talk) </strong> </a>,
2015,
((slides for a talk about the background of my thesis))
</p>
</article>
<article>
<p> <a href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0210463"> <strong> Sensitivity and specificity of computer vision classification of eyelid photographs for programmatic trachoma assessment </strong> </a>,
2015,
with Dr. Travis Porco and Dr. Kazunori Okada,
(UCSF F. I. Proctor Foundation project)
</p>
</article>
<article>
<p> <a href="/assets/free_resolution_of_matroid_ideals.pdf"> <strong> Free resoltuions of matroid ideals </strong> </a>,
2015,
with Justin Davis,
</p>
</article>
<h4> education </h4>
<article>
<p> <strong> SFSU, </strong>
MA,
Mathematics,
</p>
</article>
<article>
<p> <strong> University of Paris-1, </strong>
Visiting Student,
Philosophy, Logic, Mathematics,
</p>
</article>
<article>
<p> <strong> SFSU, </strong>
BA,
Philosophy, Mathematics, Computer Science,
</p>
</article>
<h4> languages/tools </h4>
<article>
Python, Java, Kotlin, SQL dialects,
<br>
The usual python and ruby frameworks,, Bitcoin, Lightning Network, Keras, Redshift, General AWS services,
</article>
</div>
</div>
</div>
</section>
<!-- writing (in future a blog?) -->
<section id="writing">
<div class="container">
<h3 align = "left "> writing</h3>
<div class="panel panel-default">
<div class="panel-body">
<p><a href = http://nbviewer.jupyter.org/github/MaCaki/algorithms/blob/master/euler_107/problem_107.ipynb?flush_cache=true> <strong> Seeing the forest for the matroid of trees </strong> </a>
<br>
<p>Light introduction to matroids through Kruskall’s algorithm</p>
</p>
</div>
</div>
</div>
</section>
<!-- Projects -->
<section id="projects">
<div class="container">
<h3 align = "left "> selected projects </h3>
<div class="panel panel-default">
<div class="panel-body">
<p>
<h5><strong> Square Bitcoin Conversions </strong> at Block Inc </h5>
<p>I created the first integration of CashApp into Square seller accounts, enabling automated and instant transfer of card sale proceeds to CashApp for bitcoin conversion (effectively creating an SMB bitcoin treasury). After recruiting 5-7 engineers from across Block, I guided the project from hackweek through alpha release, culminating in general availability in April 2024.</p>
<p>As the founding engineer, I served as technical lead, project manager, and occasional informal engineering manager. I collaborated closely with both Square and CashApp engineering teams while working with Square leadership to champion the feature’s vision and value, including presenting alongside Block Leadership at the company-wide meeting.
<a href="https://x.com/jack/status/1783167463645155690">See the tweet</a></p>
<br>
</p>
<img src="/static/img/square_bitcoin_savings.png" alt="project image" style="max-width: 100%; height: auto; margin: 20px 0;">
<p>
<h5><strong> Bitcoin Ephemera </strong> at Inscribing Atlantis </h5>
<p>I worked with a digital artist and the lead developer of the ordinal protocol to create and launch a novel auction mechanism for our collection: <a href="https://ephemera.gallery">ephemera.gallery</a>.</p>
<p>We made an attribute generation algorithm that creates unique 3D assets rendered in the inscription using another inscribed JS library. Ephemeris data from the JPL horizons api was pulled into each inscription and rendered on a funky and beautiful retro display. Users can bid on individual dates to inscribe on the kit.</p>
<p><a href="https://ordinals.com/inscription/f297186c8bd704fd9ea2d5d183930bfe2c4d2b8d4f48a337c9a61100e787599ci0">The Parent Inscription!</a></p>
<br>
</p>
<img src="/static/img/bitcoin_ephemera.png" alt="project image" style="max-width: 100%; height: auto; margin: 20px 0;">
<p>
<h5><strong> Asynchronous Event Infrastructure </strong> at Coinbase </h5>
<p>When I joined Coinbase, there was no system for developers to emit events to downstream event-processing systems. This capability was essential for building next-generation real-time risk assessment and fraud prevention systems. We needed detailed event data from every step of the user flow for both training and evaluation.</p>
<p>I designed and implemented an asynchronous event pipeline using fluentD for the Coinbase monolith, enabling real-time data collection. The solution was lightweight and developer-friendly, significantly expanding our fraud detection capabilities during a period of rapid company growth.</p>
<br>
</p>
<p>
<h5><strong> Risk Assessment Service </strong> at Postmates </h5>
<p>Designed and built a real-time risk assessment service for Postmates. Using kinesis events, the service makes decisions for every single job on the platform as well as reconstructs customer and merchant data as a network graph. The service increased the velocity and scope of anti-fraud measures available to the Risk team.</p>
<br>
</p>
<p>
<h5><strong> PostGIS to Redshift ETL </strong> at Postmates </h5>
<p>Postmates dealt with massive amounts of courier location data. I developed a feature for our core ETL pipeline that extracts geo-spatial data from a PostGIS format and stores it in AWS Redshift-compatible data types. This made vital geospatial data available to analysts for business intelligence.</p>
<br>
</p>
<p>
<h5><strong> CNNs to Detect Trachoma </strong> at UCSF </h5>
<p>At the UCSF Francis I. Proctor Foundation for Research in Ophthalmology, I designed and implemented an algorithm to classify field photographs of patients’ everted eyelids for trachoma infection. Using transfer learning from a large convolutional neural network, I extracted features to train a classifier that distinguishes between healthy eyelids and those showing follicles and inflammation.</p>
<p><a href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0210463">Resulted in this Paper</a></p>
<br>
</p>
<p>
<h5><strong> Counting bloom filter for spam detection </strong> at Argyle Data </h5>
<p>I adapted and implemented the counting Bloom filter from the AT&T research paper “Mitigating SMS Spam by Online Detection of Repetitive Near-Duplicate Messages”. The filter produces an on-line, probabilistic count of similar text messages in constant memory. Using this I was able to identify mass SMS campaigns and possible fraud in the client’s unlabeled database.</p>
<br>
</p>
<p>
<h5><strong> Hidden Markov models for fraud </strong> at Argyle Data </h5>
<p>Researched, adapted and implemented a hidden Markov model for fraud detection in a telecommunications data. We trained a one-class classifier for sequential data, which was used for anomaly detection, identifying previously unknown irregularities in customer behavior to the client.</p>
<br>
</p>
</div>
</div>
</div>
</section>
<!-- Math stuff -->
<section id="cv">
<div class="container">
<h3 align = "left "> math </h3>
<div class="panel panel-default">
<div class="panel-body" >
<div id="math_bio">
<p>I am interested in polytopes whose normal fans are related to the classical symmetry groups and submodular functions such as Coxeter matroid polytopes, and generalized permutohedra.</p>
<p>I would like to see how we can use groups and other algebraic structures to describe geometric phenomena, and vice versa. Currently I am trying to see how certain set functions and problems from classical combinatorial optimization can be generalized beyond the Symmetric group.</p>
</div>
</div>
</div>
</div>
</section>
<!-- services (teaching and consulting) -->
<section id="services">
<div class="container">
<h3 align = "left "> services</h3></h3>
<div class="panel panel-default">
<div class="panel-body">
<h4>consulting</h4>
<div class="panel-body" >
<div id="consulting_info">
<p>I provide consulting and independent contractor work in data engineering, infrastructure, analysis, machine learning systems design, and data strategy.</p>
<p>A well-designed data model and collection strategy is often the key determinant of a data project’s success. This means creating the right schema for your analytical needs while ensuring data warehouse immutability and job idempotency. Through my experience on data teams at high-growth startups, I’ve developed expertise in this detail-oriented work and built effective strategies to manage it. As a machine learning practitioner, I focus on building long-term capabilities to transform data into trained models and create valuable downstream data products.</p>
</div>
</div>
<br>
<h4>teaching</h4>
<div class="panel-body" >
<div id="teaching_bio">
<a href="/assets/cv_teaching_compiled.pdf" class="active"> Teaching CV </a>
<p>I have taught mathematics, statisitics, and computer science in both one on one and classroom settings.
I can aid with the following subjects:</p>
<ul>
<li>HS and lower division undergrad math (Algebra, Trig, Geometry, Calc, Stats etc.)</li>
<li>Linear Algebra</li>
<li>Probability and Statistics</li>
<li>Machine learning</li>
<li>Discrete Mathematics</li>
<li>Univariate and Multivariate Calculus</li>
<li>Algorithms</li>
<li>Software Engineering</li>
<li>Mock coding interviews</li>
</ul>
<p>Learning mathematics is hard. But not any harder than learning music or a new physical
skill. Tutoring meetings should be expected to be high intensity training sessions
where we establish the framework for self study. We set the correct expectations for the
domain of interest as well as workshop a disciplined and appropriately paced curriculum.</p>
<p>Feel free to inquire with questions about your particular study goals.</p>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="contact">
<div class = "container">
<h3>Contact me at: m (dot) cadier (dot) kim (at) gmail (dot) com </h3>
<div class="social">
<h4>
<a href="http://github.com/macaki"><i class="fa fa-github"></i></a>
<a href="mailto:m (dot) cadier (dot) kim (at) gmail (dot) com"><i class="fa fa-envelope"></i></a>
<a href="http://linkedin.com/in/matthew-kim-7350b8208"><i class="fa fa-linkedin"></i></a>
</h4>
</div>
</div>
</section>
</div>
<!-- Footer -->
<footer>
<div id="footer">
<div class="container">
<p class="text-muted">© All rights reserved.
</div>
</div>
</footer>
<div class="footer"></div>
<!-- Bootstrap core JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"
integrity="sha256-Sk3nkD6mLTMOF0EOpNtsIry+s1CsaqQC1rVLTAy+0yc= sha512-K1qjQ+NcF2TYO/eI3M6v8EiNYZfA95pQumfvcVrTHtwQVDG+aHRqLi/ETn2uB+1JqwYqVG3LIvdm9lj6imS/pQ=="
crossorigin="anonymous"></script>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="/static/js/docs.min.js"></script>
<script src="/static/js/main.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="/static/js/ie10-viewport-bug-workaround.js"></script>
</body>
</html>