PageSourceSearch

https://shilun-allan-li.github.io/resume/

html shilun-allan-li.github.io collected 2026-10-03 09:56:34 UTC 47,467 bytes, 2 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en"><head><title>Resume | Shilun (Allan) Li</title><meta name="generator" content="Jekyll v4.4.1" /><meta property="og:title" content="Resume" /><meta name="author" content="Shilun (Allan) Li" /><meta property="og:locale" content="en" /><meta name="description" content="Resume of Shilun (Allan) Li." /><meta name="twitter:description" property="og:description" content="Resume of Shilun (Allan) Li." /><link rel="canonical" href="https://shilun-allan-li.github.io/resume/" /><meta property="og:url" content="https://shilun-allan-li.github.io/resume/" /><meta property="og:site_name" content="Shilun (Allan) Li" /><meta property="og:type" content="website" /><meta name="twitter:card" content="summary" /><meta name="twitter:title" content="Resume" /> 
2<script type="application/ld+json"> {"@context":"https://schema.org","@type":"WebPage","author":{"@type":"Person","name":"Shilun (Allan) Li"},"description":"Resume of Shilun (Allan) Li.","headline":"Resume","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://shilun-allan-li.github.io/assets/img/profile.jpg"},"name":"Shilun (Allan) Li"},"url":"https://shilun-allan-li.github.io/resume/"}</script>
2<meta name="theme-color" content="rgb(25,55,71)"><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"><meta http-equiv="x-ua-compatible" content="ie=edge"><meta name="mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-title" content="Shilun (Allan) Li"><meta name="apple-mobile-web-app-status-bar-style" content="default"><meta name="application-name" content="Shilun (Allan) Li"><meta name="generator" content="Hydejack v9.1.6" /><link rel="alternate" href="https://shilun-allan-li.github.io/resume/" hreflang="en"><link type="application/atom+xml" rel="alternate" href="https://shilun-allan-li.github.io/feed.xml" title="Shilun (Allan) Li" /><link rel="shortcut icon" href="/assets/icons/favicon.ico"><link rel="apple-touch-icon" href="/assets/icons/icon-192x192.png"><link rel="manifest" href="/assets/site.webmanifest"><link rel="preload" href="/assets/img/swipe.svg" as="image" id="_hrefSwipeSVG"><link rel="dns-prefetch" href="/assets/js/search-worker-9.1.6.js" as="worker" id="_hrefSearch"><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
vendor: 64 bytes, line 2
2 <script async src="https://www.googletagmanager.com/gtag/js?id=
2UA-68290006-3
vendor: 12 bytes, line 2
2"></script> 
2<script> 
vendor: 127 bytes, line 2
2window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', '
2UA-68290006-3
vendor: 4 bytes, line 2
2'); 
2</script>
2 
2<script>!function(r,c){"use strict";function a(e,t,n,o){e.addEventListener?e.addEventListener(t,n,o):e.attachEvent?e.attachEvent("on"+t,n):e["on"+t]=n}r.loadJS=function(e,t){var n=c.createElement("script"),e=(n.src=e,t&&a(n,"load",t,{once:!0}),c.scripts[0]);return e.parentNode.insertBefore(n,e),n},r._loaded=!1,r.loadJSDeferred=function(e,t){var n=c.createElement("script");function o(){r._loaded=!0,t&&a(n,"load",t,{once:!0});var e=c.scripts[0];e.parentNode.insertBefore(n,e)}return n.src=e,r._loaded?o():a(r,"load",o,{once:!0}),n},r.setRel=r.setRelStylesheet=function(e){a(c.getElementById(e),"load",function(){this.rel="stylesheet"},{once:!0})}}(window,document); !function(a){"use strict";var b=function(b,c,d){function e(a){return h.body?a():void setTimeout(function(){e(a)})}function f(){i.addEventListener&&i.removeEventListener("load",f),i.media=d||"all"}var g,h=a.document,i=h.createElement("link");if(c)g=c;else{var j=(h.body||h.getElementsByTagName("head")[0]).childNodes;g=j[j.length-1]}var k=h.styleSheets;i.rel="stylesheet",i.href=b,i.media="only x",e(function(){g.parentNode.insertBefore(i,c?g:g.nextSibling)});var l=function(a){for(var b=i.href,c=k.length;c--;)if(k[c].href===b)return a();setTimeout(function(){l(a)})};return i.addEventListener&&i.addEventListener("load",f),i.onloadcssdefined=l,l(f),i};"undefined"!=typeof exports?exports.loadCSS=b:a.loadCSS=b}("undefined"!=typeof global?global:this); !function(a){if(a.loadCSS){var b=loadCSS.relpreload={};if(b.support=function(){try{return a.document.createElement("link").relList.supports("preload")}catch(b){return!1}},b.poly=function(){for(var b=a.document.getElementsByTagName("link"),c=0;c<b.length;c++){var d=b[c];"preload"===d.rel&&"style"===d.getAttribute("as")&&(a.loadCSS(d.href,d,d.getAttribute("media")),d.rel=null)}},!b.support()){b.poly();var c=a.setInterval(b.poly,300);a.addEventListener&&a.addEventListener("load",function(){b.poly(),a.clearInterval(c)}),a.attachEvent&&a.attachEvent("onload",function(){a.clearInterval(c)})}}}(this); !function(w) { w._baseURL = '/'; w._publicPath = '/assets/js/'; w._noPushState = false; w._noDrawer = false; w._noNavbar = true; w._noToc = false; w._noSearch = true; w._advertise = false; w._search = { DATA_URL: '/assets/sitedata.json?no-cache', STORAGE_KEY: 'mini-search/', INDEX_KEY: 'index--2026-07-28T03:52:15+00:00', }; }(window);</script>
2<style id="_styleInline"> .clearfix,.sidebar-social::after{content:"";display:table;clear:both}.color-transition,.content .avatar,.nav-btn,.nav-btn-bar,.navbar,.message,.note-sm,#markdown-toc,.note,.hr-bottom,.hr-after::after,hr,.hr,p,body{transition:none}#_dark-mode{font-size:1.25rem}@media screen{body.light-mode{--body-color: #333;--body-bg: #fff;--border-color: #ebebeb;--gray: #777;--gray-bg: rgba(0, 0, 0, 0.025);--gray-text: #666;--menu-text: #bbb;--inv-body-color: #ccc;--inv-body-bg: var(--dark-mode-body-bg)}body.light-mode .content{-webkit-font-smoothing:initial;-moz-osx-font-smoothing:initial}body.dark-mode{--body-color: #ccc;--body-bg: var(--dark-mode-body-bg);--border-color: var(--dark-mode-border-color);--gray: rgba(255,255,255,.5);--gray-bg: rgba(255,255,255,.05);--gray-text: rgba(255,255,255,.625);--menu-text: rgba(255,255,255,.25);--inv-body-color: #333;--inv-body-bg: #fff}body.dark-mode .content{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}html{--font-family: system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, Arial, sans-serif;--font-family-heading: system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, Arial, sans-serif;--code-font-family: ui-monospace, Menlo, Monaco, Cascadia Mono, Segoe UI Mono, Roboto Mono, Oxygen Mono, Ubuntu Monospace, Source Code Pro, Fira Mono, Droid Sans Mono, Courier New, monospace;--body-color: #333;--body-bg: #fff;--border-color: #ebebeb;--gray: #777;--gray-bg: rgba(0, 0, 0, 0.025);--gray-text: #666;--menu-text: #bbb;--inv-body-color: #ccc;--inv-body-bg: var(--dark-mode-body-bg)}html .content{-webkit-font-smoothing:initial;-moz-osx-font-smoothing:initial}html{--root-font-size: 15px;--root-font-size-medium: 16px;--root-font-size-large: 17px;--root-font-size-print: 8pt;--root-line-height: 1.75;--font-weight: 400;--font-weight-bold: 700;--font-weight-heading: 700;--content-width-5: 58rem;--content-margin-5: 4rem;--sidebar-width: 21rem;--half-content: 33rem;--break-point-3: 64em;--break-point-5: 86em;--break-point-dynamic: 1728px}*{box-sizing:border-box}html,body{margin:0;padding:0}html{font-family:var(--font-family);font-size:var(--root-font-size);line-height:var(--root-line-height)}body{color:var(--body-color);background-color:var(--body-bg);font-weight:var(--font-weight);overflow-y:scroll}.content img,.img,.content video,.video{max-width:100%;height:auto}.lead{margin-left:-1rem;margin-right:-1rem;margin-bottom:1.5rem}img.lead,video.lead{display:block;max-width:calc(100% + 2rem);width:calc(100% + 2rem);height:auto}.heading,.f6,h6,.h6,.f5,h5,.h5,.f4,.sidebar-nav-item,h4,.h4,.post-date,.f3,h3,.h3,.f2,h2,.h2,.f1,h1,.h1{font-family:var(--font-family-heading);font-weight:var(--font-weight-heading)}.f1,h1,.h1{font-size:2rem;line-height:1.3}.f2,h2,.h2{font-size:1.5rem;line-height:1.4}.f3,h3,.h3{font-size:1.2em;line-height:1.5}.f4,.sidebar-nav-item,h4,.h4,.post-date{font-size:1.08rem;line-height:1.6}.f5,h5,.h5{font-size:1.04rem;line-height:1.7}.f6,h6,.h6{font-size:1rem}.content h1>a,.content .h1>a{text-decoration:none;border-bottom:none}@media screen and (max-width: 42em){.content h1,.content .h1{font-size:1.7rem;line-height:1.35}}@media screen and (min-width: 86em){.content h1,.content .h1{font-size:2.4rem;line-height:1.25}}@media screen and (min-width: 1728px){body:not(.no-large-headings) .content h1,body:not(.no-large-headings) .content .h1{width:calc(100% + 50vw - 32rem);font-size:3rem;line-height:1.2}}@media screen and (min-width: 124em){body:not(.no-large-headings) .content h1,body:not(.no-large-headings) .content .h1{font-size:4rem;line-height:1.1}}h1,h2,h3,.h1,.h2,.h3{margin:4rem 0 1rem}h4,h5,h6,.h4,.post-date,.h5,.h6{margin:3rem 0 .5rem}p{margin-top:0;margin-bottom:1rem}p.lead{font-size:1.2em;margin-top:1.5rem;margin-bottom:1.5rem;padding:0 1rem}ul,ol,dl{margin-top:0;margin-bottom:1rem}ul,ol{padding-left:1.25rem}hr,.hr{border:0;margin:1rem 0;border-top:1px solid var(--border-color)}.hr-after::after{content:"";display:block;margin:1rem 0;border-top:1px solid var(--border-color)}.hr-bottom{border-bottom:1px solid var(--border-color);padding-bottom:.75rem;margin-bottom:1rem}.page{margin-bottom:3em}.page li+li{margin-top:.25rem}.page>header{position:relative;margin-bottom:2rem}@media screen and (min-width: 1728px){body:not(.no-third-column) .page>header>.lead+.note-sm,body:not(.no-third-column) .page>header>.lead+#markdown-toc,body:not(.no-third-column) .page>header>.lead+.note,body:not(.no-third-column) .page>header>a.no-hover+.note-sm,body:not(.no-third-column) .page>header>a.no-hover+#markdown-toc,body:not(.no-third-column) .page>header>a.no-hover+.note{position:absolute;right:-25rem;width:21rem;bottom:0;margin-bottom:0}}.page-title,.post-title{margin-top:0}.post-date{display:flex;justify-content:space-between;margin-top:-0.6rem;height:2rem;margin-bottom:.85rem;color:var(--gray)}.post-date>.ellipsis,.post-date#breadcrumbs>ul{cursor:pointer}.post-date [class^=icon-]{display:inline-block;font-size:smaller;margin-right:.25rem}.related-posts{padding-left:0;list-style:none;margin-bottom:2rem}.related-posts>li,.related-posts>li+li{margin-top:1rem}.message,.note-sm,#markdown-toc,.note{margin-bottom:1rem;padding:1rem;color:var(--gray-text);background-color:var(--gray-bg);margin-left:-1rem;margin-right:-1rem}.note-sm,#markdown-toc,.note{background:rgba(0,0,0,0);color:var(--body-color);font-size:smaller;border-left:1px solid var(--border-color);padding:1.2rem 1rem 0 1rem;margin:1rem -1rem;position:relative}.note-sm:before,#markdown-toc:before,.note:before{font-size:.667rem;font-weight:bold;font-style:normal;letter-spacing:.025rem;text-transform:uppercase;color:var(--menu-text);position:absolute;top:0}.note-sm[title]:before,[title]#markdown-toc:before,[title].note:before{content:attr(title) !important}.note{font-size:1rem}@media screen{body::before{content:"";width:.5rem;background:var(--gray-bg);position:fixed;left:0;top:0;bottom:0}}@media(min-width: 64em){body::before{width:21rem}}@media(min-width: 1728px){body::before{width:calc(50% - 33rem)}}@media screen and (min-width: 42em){html{font-size:var(--root-font-size-medium)}}@media screen and (min-width: 124em){html{font-size:var(--root-font-size-large)}}#breadcrumbs>ul{height:1rem;margin:-1.5rem 0 .5rem;padding:0;font-size:.667rem;color:var(--menu-text);text-transform:uppercase;width:100%;list-style:none}#breadcrumbs>ul>li{display:inline}#breadcrumbs>ul>li a{color:var(--gray);text-decoration:none;border-bottom:none}.fl{float:left}.fr{float:right}.mb4{margin-bottom:4rem}.mb6{margin-bottom:6rem}.mt0{margin-top:0}.mt1{margin-top:1rem}.mt2{margin-top:2rem}.mt3{margin-top:3rem}.mt4{margin-top:4rem}.pb0{padding-bottom:0}.ml1{margin-left:1rem}.mr1{margin-right:1rem}.sixteen-nine{position:relative}.sixteen-nine::before{display:block;content:"";width:100%;padding-top:56.25%}.sixteen-nine>*{position:absolute;top:0;left:0;right:0;bottom:0}.sixteen-ten{position:relative}.sixteen-ten::before{display:block;content:"";width:100%;padding-top:62.5%}.sixteen-ten>*{position:absolute;top:0;left:0;right:0;bottom:0}.four-three{position:relative}.four-three::before{display:block;content:"";width:100%;padding-top:75%}.four-three>*{position:absolute;top:0;left:0;right:0;bottom:0}.sr-only{display:none}.larger{font-size:larger}.smaller{font-size:smaller}.clearfix,.sidebar-social::after{content:"";display:table;clear:both}.ellipsis,#breadcrumbs>ul{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.border{border:1px solid var(--border-color)}@media(min-width: 42em){.border-radius,.lead,.page .aspect-ratio.sixteen-nine.lead{border-radius:.5rem}}.fallback-img{background-position:center;background-repeat:no-repeat;background-image:url("data:image/svg+xml;
2base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTYwIiBoZWlnaHQ9IjkwIiB2aWV3Qm94PSIwIDAgMTYwIDkwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuMDQ4ODI4LCAwLCAwLCAwLjA0Nzk5MSwgNTQuOTk5OTczLCAyMC40MjgxNDgpIj4KICAgIDxwYXRoIHN0eWxlPSJmaWxsOnJnYmEoMTI4LDEyOCwxMjgsLjMzKSIgZD0iTTk1OS44ODQgMTI4YzAuMDQwIDAuMDM0IDAuMDgyIDAuMDc2IDAuMTE2IDAuMTE2djc2Ny43N2MtMC4wMzQgMC4wNDAtMC4wNzYgMC4wODItMC4xMTYgMC4xMTZoLTg5NS43N2MtMC4wNDAtMC4wMzQtMC4wODItMC4wNzYtMC4xMTQtMC4xMTZ2LTc2Ny43NzJjMC4wMzQtMC4wNDAgMC4wNzYtMC4wODIgMC4xMTQtMC4xMTRoODk1Ljc3ek05NjAgNjRoLTg5NmMtMzUuMiAwLTY0IDI4LjgtNjQgNjR2NzY4YzAgMzUuMiAyOC44IDY0IDY0IDY0aDg5NmMzNS4yIDAgNjQtMjguOCA2NC02NHYtNzY4YzAtMzUuMi0yOC44LTY0LTY0LTY0djB6Ii8+CiAgICA8cGF0aCBzdHlsZT0iZmlsbDpyZ2JhKDEyOCwxMjgsMTI4LC4zMykiIGQ9Ik04MzIgMjg4YzAgNTMuMDIwLTQyLjk4IDk2LTk2IDk2cy05Ni00Mi45OC05Ni05NiA0Mi45OC05NiA5Ni05NiA5NiA0Mi45OCA5NiA5NnoiLz4KICAgIDxwYXRoIHN0eWxlPSJmaWxsOnJnYmEoMTI4LDEyOCwxMjgsLjMzKSIgZD0iTTg5NiA4MzJoLTc2OHYtMTI4bDIyNC0zODQgMjU2IDMyMGg2NGwyMjQtMTkyeiIvPgogIDwvZz4KPC9zdmc+")}hy-push-state a{color:var(--body-color)}@supports not ((text-decoration-thickness: initial) and (text-underline-offset: initial)){hy-push-state a{text-decoration:none;border-bottom:2px solid}}@supports(text-decoration-thickness: initial) and (text-underline-offset: initial){hy-push-state a{text-decoration-style:solid;text-underline-offset:.35rem;text-decoration-thickness:2px}}hy-push-state a.no-hover{border-bottom:none;text-decoration-thickness:unset;text-underline-offset:unset}@supports(text-decoration-thickness: initial) and (text-underline-offset: initial){.content a:not(.btn):not(.no-hover){text-decoration-color:var(--accent-color-faded)}}.content a:not(.btn):not(.no-hover){border-color:var(--accent-color-faded)}.content .aspect-ratio{overflow:hidden}.content .aspect-ratio img{margin:0;width:100%;height:100%;background-color:var(--gray-bg)}hy-drawer{width:100%;position:relative;overflow:hidden;display:block;z-index:4}@media screen and (min-width: 64em){hy-drawer{position:fixed;width:21rem;top:0;left:0;bottom:0;margin-left:0}hy-drawer.cover{position:relative;width:100%}}@media screen and (min-width: 1728px){hy-drawer{width:calc(50% - 33rem)}}.sidebar{position:relative;display:flex;justify-content:center;align-items:center;color:rgba(255,255,255,.75);text-align:center;min-height:100vh}.sidebar.invert{color:rgba(32,32,32,.75)}.sidebar a{color:#fff;border-bottom-color:rgba(255,255,255,.2);text-decoration-color:rgba(255,255,255,.2)}.sidebar.invert a{color:#222;border-bottom-color:rgba(32,32,32,.2);text-decoration-color:rgba(32,32,32,.2)}.sidebar-bg{position:absolute;top:0;left:calc(50% - 50vw);width:100vw;height:100%;background:#202020 center/cover}.sidebar-bg::after{content:"";position:absolute;top:0;left:0;bottom:0;right:0;background:rgba(0,0,0,.05)}.sidebar-bg.sidebar-overlay::after{background:linear-gradient(to bottom, rgba(32, 32, 32, 0) 0%, rgba(32, 32, 32, 0.5) 50%, rgba(32, 32, 32, 0) 100%)}.sidebar-sticky{position:relative;z-index:3;max-width:21rem;padding:1.5rem;contain:content}.sidebar-about .avatar{margin-bottom:1.5rem}.sidebar-about>a.sidebar-title{text-decoration:none}.sidebar-about>a.sidebar-title>h2{margin:0;padding-bottom:.5rem}.sidebar-about>a.sidebar-title::after{content:"";display:block;border-bottom:2px solid;margin:0 auto .5rem;width:4rem;border-color:rgba(255,255,255,.2);transition:border-color 250ms}.sidebar-about>a.sidebar-title:hover::after{border-color:#fff;transition:border-color 50ms}.sidebar.invert .sidebar-about>a.sidebar-title::after{border-color:rgba(32,32,32,.2)}.sidebar.invert .sidebar-about>a.sidebar-title:hover::after{border-color:#222}.sidebar-nav>ul{list-style:none;padding-left:0}.sidebar-nav-item{display:inline-block;margin-bottom:.5rem}@media(min-width: 64em){#_main.no-drawer #_menu{display:none}#_main.no-drawer .nav-btn-bar>:nth-child(2){border:none}}.sidebar-social>ul{display:inline-block;list-style:none;padding-left:0;margin-bottom:0}.sidebar-social>ul>li{float:left}.sidebar-social>ul>li>a{display:inline-block;text-align:center;font-size:1.4rem;width:3rem;height:4rem;padding:.5rem 0;line-height:3rem;text-decoration:none;border-bottom-width:2px;border-bottom-style:solid}.sidebar-social>ul li+li{margin-top:0}.fixed-common,.fixed-bottom,.fixed-top{position:fixed;left:0;width:100%;z-index:2}.fixed-top{top:0}.fixed-bottom{bottom:0}.navbar>.content{position:relative;padding-top:0;padding-bottom:0;min-height:0;max-height:5rem}.nav-btn-bar{margin:0 -1rem;background-color:#fff;background-color:var(--body-bg);height:5rem;display:flex;align-items:center;position:relative}.nav-btn-bar>:first-child,.nav-btn-bar>:last-child{border:none}.nav-btn{background:none;border:none;text-decoration:none;display:flex;align-items:center;justify-content:center;width:3.25rem;height:5rem;color:var(--menu-text);border-right:1px solid var(--border-color);border-left:1px solid var(--border-color);margin-left:-1px}
2#markdown-toc{margin:2rem -1rem 2rem calc(-1rem + 1px);padding-left:2.5rem;padding-bottom:.5rem}#markdown-toc:before{left:1rem}@media screen and (min-width: 1728px){body:not(.no-toc) #markdown-toc{position:absolute;z-index:4;width:20.5rem;right:0;margin:auto;overflow:auto}}@media screen and (min-width: 1728px){body.no-break-layout:not(.no-toc) #markdown-toc{width:calc(50% - 33rem)}}.content{margin-left:auto;margin-right:auto;padding:8rem 1rem 12rem}@media screen{.content{padding-left:1.5rem;min-height:100vh}}@media screen and (min-width: 42em){.content{max-width:44rem}}@media screen and (min-width: 54em){.content{max-width:52rem}}@media screen and (min-width: 64em){.content{padding-left:1rem;margin-left:24rem;margin-right:3rem}}@media screen and (min-width: 86em){.content{padding-top:9rem;margin-left:25rem;margin-right:4rem;max-width:58rem}}@media screen and (min-width: 1728px){.content{margin:auto}}.large-only{display:none}@media screen and (min-width: 1728px){.large-only{display:block}}.avatar{width:7rem;height:7rem;border-radius:100%;overflow:hidden;display:inline-block}.avatar img{width:100%}.content .avatar{float:right;box-sizing:content-box;border:1rem solid var(--body-bg);transition:border-color 1s ease;margin-top:-1.5rem;margin-right:-1rem}.no-navbar .content{padding-top:4rem}.note:before{content:"Note"}.page>header>.note-sm:before,.page>header>.note:before,.page>header>#markdown-toc:before{content:"Description"}#markdown-toc:before{content:"Table of Contents"}.layout-resume .note-sm:before,.layout-resume .note:before,.layout-resume #markdown-toc:before{content:"Summary"} .clearfix,.layout-resume .columns::after,.layout-resume .clearafter::after{content:"";display:table;clear:both}.color-transition,.layout-resume .symbol,.layout-resume .tag{transition:none}.layout-resume h1{display:inline-block;margin-bottom:.25rem;position:relative;z-index:2}.layout-resume header>p{margin-bottom:0}.layout-resume .page>header{margin-bottom:1.5rem}.layout-resume .subline{margin-top:0}.layout-resume .mt2{margin-top:1rem}.layout-resume ul{margin-bottom:1.5rem}.layout-resume .h3{margin-bottom:1rem}.layout-resume .h4{margin-top:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",Arial,sans-serif !important;font-weight:var(--font-weight-bold) !important}.layout-resume .bc{color:var(--body-color)}.layout-resume .bold{font-weight:var(--font-weight-bold)}.layout-resume .tags{list-style:none;font-size:smaller;padding-left:0;margin:0 -0.375rem 1.5rem;clear:both}.layout-resume .tag{border:1px solid var(--border-color);display:inline-block;margin:.25rem .125rem;padding:.125rem .25rem;color:var(--gray);line-height:1.4}.layout-resume .help{cursor:help}.layout-resume .symbol{float:right;color:var(--menu-text);margin-top:4px;margin-left:.5rem}.layout-resume .contact{margin-top:2rem}.layout-resume .contact dl{margin-bottom:0}.layout-resume .contact dt,.layout-resume .contact dd{margin-bottom:.5rem}.layout-resume .contact dt{clear:both;float:left;width:2rem}.layout-resume .contact dt [class*=icon-]{font-size:1.17rem;position:relative;top:2px}.layout-resume .contact dd{float:left;margin-left:0;width:calc(100% - 2rem);padding-left:.25rem}.layout-resume .reference{margin-top:1.5rem;margin-left:-1rem}.layout-resume .reference>footer{margin-bottom:0;font-weight:bold}.layout-resume .skills>dt{margin-bottom:0}.layout-resume .skills>dd{margin:0}.layout-resume .columns{margin-left:-2.5rem}.layout-resume .column{float:left;padding-left:2.5rem;width:100%}.layout-resume .fr{float:none;display:inline-block;margin-left:.25rem}@media screen and (min-width: 86em){.layout-resume .fr{float:right}
2.layout-resume .column-3-5{width:66.67%}.layout-resume .column-2-5{width:33.33%}}@media screen and (min-width: 1728px){.layout-resume .columns-break{width:calc(50vw + 24rem)}.layout-resume .columns-break>.column-3-5{width:58rem}.layout-resume .columns-break>.column-2-5{width:calc(50vw + 24rem - 58rem);max-width:26.5rem}}@media print{.layout-resume .screen-only{display:none}.layout-resume h2{page-break-after:avoid;break-after:avoid-page}.layout-resume section section,.layout-resume header,.layout-resume blockquote,.layout-resume dd,.layout-resume .npb{page-break-inside:avoid;break-inside:avoid-page}.layout-resume .avatar{width:9rem;height:9rem}}@media print and (min-width: 5.247in){.layout-resume article>.note{padding-right:11rem}.layout-resume .fr{float:right}.layout-resume .column-3-5{width:70%}.layout-resume .column-2-5{width:30%}}</style><link rel="preload" as="style" href="/assets/css/hydejack-9.1.6.css" id="_stylePreload"><link rel="preload" as="style" href="/assets/icomoon/style.css" id="_iconsPreload"> 
2<script> setRel('_stylePreload'); setRel('_iconsPreload'); /**/ </script>
2 <noscript><link rel="stylesheet" href="/assets/css/hydejack-9.1.6.css"><link rel="stylesheet" href="/assets/icomoon/style.css"> </noscript><style id="_pageStyle"> html{--accent-color: rgb(79,177,186);--accent-color-faded: rgba(79, 177, 186, 0.5);--accent-color-highlight: rgba(79, 177, 186, 0.1);--accent-color-darkened: rgb(25.0432172869%, 60.6118447379%, 63.8783513405%);--theme-color: rgb(25,55,71);--dark-mode-body-bg: hsl(200.8695652174, 5.9895833333%, 17.5%);--dark-mode-border-color: hsl(200.8695652174, 5.9895833333%, 22.5%)}</style><link rel="dns-prefetch" href="https://assets.gumroad.com"> 
2<script type="module"> const loadJS = x => new Promise(r => window.loadJS(x).addEventListener('load', r)); let p1, p2, io1, io2, embedCreated, overlayCreated; document.querySelector('hy-push-state').addEventListener('load', () => { io1 ||= new IntersectionObserver(async (entries) => { if (entries.some(x => x.isIntersecting)) { p1 = p1 || loadJS('https://gumroad.com/js/gumroad-embed.js'); await p1; !embedCreated && await new Promise(function check1(res) { if (typeof createGumroadEmbed !== 'undefined') { embedCreated = 1; res(createGumroadEmbed()); } else setTimeout(() => check1(res), 200); }); await new Promise(function check2(res) { if (typeof GumroadEmbed !== 'undefined') res(GumroadEmbed.reload()); else setTimeout(() => check2(res), 200); }); } }, { rootMargin: '1440px' }); io2 ||= new IntersectionObserver(async (entries) => { if (entries.some(x => x.isIntersecting)) { p2 = p2 || loadJS('https://gumroad.com/js/gumroad.js'); await p2; !overlayCreated && await new Promise(function check(res) { if (typeof createGumroadOverlay !== 'undefined') { overlayCreated = 1; res(createGumroadOverlay()); } else setTimeout(() => check(res), 200); }); } }, { rootMargin: '300px' }); document.querySelectorAll('.gumroad-product-embed').forEach(el => io1.observe(el)); document.querySelectorAll('.gumroad-button').forEach(el => io2.observe(el)); }); </script>
2<body class="no-break-layout no-navbar"> <hy-push-state id="_pushState" replace-selector="#_main" link-selector="a[href]:not([href^='/assets/']):not(.external):not(.no-push-state)" script-selector="script" duration="500" hashchange ><main id="_main" class="content layout-resume" role="main" ><nav id="breadcrumbs" class="screen-only"><ul><li><a href="/">home</a><li> <span>/</span> <span>resume</span></ul></nav><article id="resume" class="page vcard h-card" role="article" vocab="http://schema.org/" typeof="Person" resource="#resume" ><header><h1 class="page-title fn p-name" property="name">Shilun (Allan) Li</h1><p class="h3 faded subline title p-job-title" property="jobTitle">PhD Student<div class="hr pb0"></div></header><p class="p-note" property="description"> I am a fourth-year Ph.D. student in Mathematics at UC Berkeley, advised by Prof. Venkatesan Guruswami. Previously, I graduated from Stanford University with a Bachelor’s degree in Mathematics with honors and a concurrent Master’s degree in Computer Science (AI track). My research interests lie broadly in Error-Correcting Codes, Complexity Theory, Automated Theorem Proving, and Machine Learning.<div class="screen-only"> <a href="/assets/Resume.pdf" class="btn btn-sm btn-primary mt1"> <small class="icon-file-pdf"></small> PDF </a></div><div class="columns contact columns-break"><dl class="column column-3-5"><dt class="faded"> <span class="icon-envelop" title="Email"></span> <span class="sr-only">Email</span><dd class="bold"><meta property="email" content="[email protected]"/> <a href="mailto:[email protected]" class="external no-print-link email u-email">[email protected]</a><dt class="faded"> <span class="icon-home3" title="Website"></span> <span class="sr-only">Website</span><dd class="bold"> <a href="https://shilun-allan-li.github.io/" class="external no-print-link url u-url" property="sameAs">https://shilun-allan-li.github.io/</a></dl><dl class="column column-2-5"><dt class="faded"> <span class="icon-google-scholar" title="Google Scholar"></span> <span class="sr-only">Google Scholar</span><dd class="bold"> <a class="nickname p-nickname " href="https://scholar.google.com/citations?user=xKhyfocAAAAJ&hl=en" property="sameAs" >Shilun Li</a><dt class="faded"> <span class="icon-github" title="GitHub"></span> <span class="sr-only">GitHub</span><dd class="bold"> <a class=" " href="https://github.com/Shilun-Allan-Li" property="sameAs" >Shilun-Allan-Li</a></dl></div><div class="columns columns-break"><div class="column column-3-5"><section><div class="npb"><h2 id="work" class="h3 hr-bottom"> Experience <span class="symbol icon-briefcase"></span></h2><section><header class="" property="alumniOf" typeof="Organization" ><h3 class="h4 faded"><meta property="name" content="Apple"/><div><span class="bc">Machine Learning Intern</span> at <a class=" " href="https://www.apple.com/" property="sameAs" >Apple</a></div><div class="faded" style="font-size:0.85em;"> <time datetime="2026-01-01T00:00:00+00:00">Jan 2026</time> – <time datetime="2026-07-01T00:00:00+00:00">Jul 2026</time> &nbsp;·&nbsp; Cupertino, CA</div></h3></header><h4 class="sr-only">Highlights</h4><ul><li>Built internal performance models for next-generation Apple silicon.<li>Derived novel physical-system theories and implemented them in production models.<li>Wrote custom CUDA and Metal kernels for physics at scale at high performance.</ul></section></div><section><header class="mt2" property="alumniOf" typeof="Organization" ><h3 class="h4 faded"><meta property="name" content="XAcademy"/><div><span class="bc">Advisor/Lecturer</span> at <a class=" " href="https://info.xacademy.cc/en/" property="sameAs" >XAcademy</a></div><div class="faded" style="font-size:0.85em;"> Jul – Aug 2023 & Jul – Aug 2025 &nbsp;·&nbsp; Shanghai, China</div></h3></header><h4 class="sr-only">Highlights</h4><ul><li>Taught a 45-lecture ML/DL course (2023) to 40 students, covering neural networks, RNNs, CNNs, NLP, Transformers, and LLMs.<li>Taught a 50-lecture Multimodal Learning course (2025) to 30 students, covering joint embeddings, alignment, multimodal Transformers, and vision–language applications.</ul></section><section><header class="mt2" property="alumniOf" typeof="Organization" ><h3 class="h4 faded"><meta property="name" content="Microsoft Research"/><div><span class="bc">Research Collaborator</span>
2 at <a class=" " href="https://www.microsoft.com/en-us/research/" property="sameAs" >Microsoft Research</a></div><div class="faded" style="font-size:0.85em;"> <time datetime="2024-05-01T00:00:00+00:00">May 2024</time> – <time datetime="2025-01-01T00:00:00+00:00">Jan 2025</time> &nbsp;·&nbsp; Mountain View, CA</div></h3></header><h4 class="sr-only">Highlights</h4><ul><li>Built a post-training framework combining MCTS, PPO, and reward models for automated theorem proving.<li>Improved Qwen2.5-7B-Instruct by 10–25% on the MATH benchmark.</ul></section><section><header class="mt2" property="alumniOf" typeof="Organization" ><h3 class="h4 faded"><meta property="name" content="FutureX (Futurexyz Co.)"/><div><span class="bc">Co-founder</span> at <span class=" bc">FutureX (Futurexyz Co.)</span></div><div class="faded" style="font-size:0.85em;"> <time datetime="2022-05-01T00:00:00+00:00">May 2022</time> – <time datetime="2023-05-01T00:00:00+00:00">May 2023</time> &nbsp;·&nbsp; Palo Alto, CA</div></h3></header><h4 class="sr-only">Highlights</h4><ul><li>Built a Web3 platform for professional networking and events.<li>Raised $300K in seed funding from MiraclePlus (formerly Y Combinator China).</ul></section><section><header class="mt2" property="alumniOf" typeof="Organization" ><h3 class="h4 faded"><meta property="name" content="Tencent"/><div><span class="bc">AI Developer Intern</span> at <a class=" " href="https://www.tencent.com/" property="sameAs" >Tencent</a></div><div class="faded" style="font-size:0.85em;"> <time datetime="2021-06-01T00:00:00+00:00">Jun 2021</time> – <time datetime="2021-09-01T00:00:00+00:00">Sep 2021</time> &nbsp;·&nbsp; Shenzhen, China</div></h3></header><h4 class="sr-only">Highlights</h4><ul><li>Designed a procedural 3D city-generation algorithm in Unreal Engine 4 (C++).<li>Automated generation of roads, buildings, rivers, and parks for game environments.</ul></section><section><header class="mt2" property="alumniOf" typeof="Organization" ><h3 class="h4 faded"><meta property="name" content="Stanford Vision and Learning Lab (Fei-Fei Li)"/><div><span class="bc">Research Assistant</span> at <a class=" " href="https://svl.stanford.edu/" property="sameAs" >Stanford Vision and Learning Lab (Fei-Fei Li)</a></div><div class="faded" style="font-size:0.85em;"> <time datetime="2020-06-01T00:00:00+00:00">Jun 2020</time> – <time datetime="2020-10-01T00:00:00+00:00">Oct 2020</time> &nbsp;·&nbsp; Stanford, CA</div></h3></header><h4 class="sr-only">Highlights</h4><ul><li>Implemented Social-GAN pedestrian prediction on the JRDB dataset.<li>Evaluated predictions in real-world robot perception pipelines.</ul></section><section><header class="mt2" property="alumniOf" typeof="Organization" ><h3 class="h4 faded"><meta property="name" content="Stanford NLP Group (Christopher Manning)"/><div><span class="bc">Research Assistant</span> at <a class=" " href="https://nlp.stanford.edu/" property="sameAs" >Stanford NLP Group (Christopher Manning)</a></div><div class="faded" style="font-size:0.85em;"> <time datetime="2019-06-01T00:00:00+00:00">Jun 2019</time> – <time datetime="2019-09-01T00:00:00+00:00">Sep 2019</time> &nbsp;·&nbsp; Stanford, CA</div></h3></header><h4 class="sr-only">Highlights</h4><ul><li>Designed a probing framework for BERT to analyze syntactic and semantic signals across intermediate layers.</ul></section></section><section><div class="npb"><h2 id="education" class="h3 hr-bottom"> Education <span class="symbol icon-library"></span></h2><section><header class=""><p class="faded"> <time datetime="2022-08-01T00:00:00+00:00">Aug 2022</time> – <time datetime="2026-12-01T00:00:00+00:00">Dec 2026</time><h3 class="h4 faded" property="alumniOf" typeof="EducationalOrganization"> <span class="bc">Ph.D.</span> in <span class="bc">Mathematics</span><br>&emsp;&emsp;from <span class="bc" property="name">UC Berkeley</span> with GPA of <span class="bc">4.0/4.0</span></h3></header><h4 class="sr-only">Courses</h4><ul><li>Advised by <a href="https://people.eecs.berkeley.edu/~venkatg/">Venkatesan Guruswami</a></ul></section></div><section><header class="mt2"><p class="faded"> <time datetime="2019-09-01T00:00:00+00:00">Sep 2019</time> – <time datetime="2022-07-01T00:00:00+00:00">Jul 2022</time><h3 class="h4 faded" property="alumniOf" typeof="EducationalOrganization"> <span class="bc">M.S.</span> in <span class="bc">Computer Science (AI track)</span><br>&emsp;&emsp;from <span class="bc" property="name">Stanford University</span> with GPA of <span class="bc">4.0/4.0</span></h3></header></section><section><header class="mt2"><p class="faded"> <time datetime="2018-09-01T00:00:00+00:00">Sep 2018</time> – <time datetime="2022-07-01T00:00:00+00:00">Jul 2022</time><h3 class="h4 faded" property="alumniOf" typeof="EducationalOrganization"> <span class="bc">B.S.</span> in <span class="bc">Mathematics with Honors</span><br>&emsp;&emsp;from <span class="bc" property="name">Stanford University</span> with GPA of <span class="bc">4.0/4.0</span></h3></header><h4 class="sr-only">Courses</h4><ul><li>Advised by <a href="https://profiles.stanford.edu/rafe-mazzeo">Rafe Mazzeo</a></ul></section></section><section><div class="npb"><h2 id="publications" class="h3 hr-bottom"> Publications <span class="symbol icon-book"></span></h2><section><div class=""><p style="margin:0;"> <strong><a href="https://arxiv.org/abs/2505.09839">Density Frankl–Rödl on the Sphere</a></strong><p style="margin:0;" class="faded"> <a href="https://people.eecs.berkeley.edu/~venkatg/">Venkatesan Guruswami</a>*, <strong>Shilun Li</strong>* &middot; <em><a href="https://randomconference.com/random-2025-home/">RANDOM 2025</a></em><p style="margin:0;" class="faded"><small>Generalizes the Frankl–Rödl theorem to the sphere by proving a density statement for spherical avoidance problems; further establishes that all simplices are sphere Ramsey.</small></div></section></div><section><div class="mt1"><p style="margin:0;"> <strong><a href="https://ieeexplore.ieee.org/abstract/document/10777554">A Deterministic Construction of a Large Distance Code from the Wozencraft Ensemble</a></strong><p style="margin:0;" class="faded"> <a href="https://people.eecs.berkeley.edu/~venkatg/">Venkatesan Guruswami</a>*, <strong>Shilun Li</strong>* &middot; <em>IEEE Transactions on Information Theory</em> &middot; Presented at <a href="https://randomconference.com/random-2023-home/">RANDOM 2023</a><p style="margin:0;" class="faded"><small>Applies Sidon sets to code construction (the first such application) and presents the first explicit construction of rate-1/2 Wozencraft codes with Ω(√k) minimum distance.</small></div></section><section><div class="mt1"><p style="margin:0;"> <strong><a href="https://arxiv.org/abs/2310.02662">Dynamics and Probability in the Toss of a Coin with Symmetric Inhomogeneous Density</a></strong><p style="margin:0;" class="faded"> <strong>Shilun Li</strong> &middot; <em>Preprint</em><p style="margin:0;" class="faded"><small>Proves that coin tosses are biased — coins favor the starting face — and extends Diaconis's probability formula to general biased coins.</small></div></section></section></div><div class="column column-2-5"><section><div class="npb"><h2 id="awards" class="h3 hr-bottom"> Awards <span class="symbol icon-trophy"></span></h2><section><div class=""><p style="margin:0;"><strong>McBeth Family Fellowship in Mathematics</strong><p style="margin:0;" class="faded">UC Berkeley — 2025</div></section></div><section><div class="mt1"><p style="margin:0;"><strong>Departmental Honors in Mathematics</strong><p style="margin:0;" class="faded">Stanford University — 2022<p style="margin:0;" class="faded"><small>(Awarded to top 15% of graduating cohort.)</small></div></section><section><div class="mt1"><p style="margin:0;"><strong>Top Three Projects</strong><p style="margin:0;" class="faded">Stanford BIOME Biohackathon — 2018</div></section><section><div class="mt1"><p style="margin:0;"><strong>AMS Special Award</strong><p style="margin:0;" class="faded">Intel ISEF — 2017<p style="margin:0;" class="faded"><small>(The world's largest pre-college STEM competition.)</small></div></section><section><div class="mt1"><p style="margin:0;"><strong>
2National Best High School Student</strong><p style="margin:0;" class="faded">All-China Students' Federation — 2017<p style="margin:0;" class="faded"><small>(Top 10 out of 170,000 nationwide.)</small></div></section><section><div class="mt1"><p style="margin:0;"><strong>First Prize (Two-time)</strong><p style="margin:0;" class="faded">Provincial Science & Technology Innovation Contest — 2016<p style="margin:0;" class="faded"><small>(Top 5 out of 400 in the province.)</small></div></section><section><div class="mt1"><p style="margin:0;"><strong>Gold Award in Science & Gold Award in Math</strong><p style="margin:0;" class="faded">S.-T. Yau Science Award — 2016<p style="margin:0;" class="faded"><small>(1st out of 5,800+ global participants.)</small></div></section></section><section class="npb"><h2 id="skills" class="h3 hr-bottom"> Skills <span class="symbol icon-wrench"></span></h2><dl class="skills"><dt class="fl">Mathematics<dd class="faded clearafter"><div class="fr"> <span class="sr-only">Level:</span> <span class="help" title="3"> <span class="sr-only">3</span> <span class="icon-star-full"></span><span class="icon-star-full"></span><span class="icon-star-full"></span> </span></div><div> <span class="sr-only">Keywords:</span><ul class="tags"><li class="tag">Error-Correcting Codes<li class="tag">Complexity Theory<li class="tag">Combinatorics<li class="tag">Probability Theory</ul></div><dt class="fl">Machine Learning<dd class="faded clearafter"><div class="fr"> <span class="sr-only">Level:</span> <span class="help" title="3"> <span class="sr-only">3</span> <span class="icon-star-full"></span><span class="icon-star-full"></span><span class="icon-star-full"></span> </span></div><div> <span class="sr-only">Keywords:</span><ul class="tags"><li class="tag">Pytorch<li class="tag">LLM<li class="tag">GNN<li class="tag">Post Training<li class="tag">Reinforcement Learning</ul></div><dt class="fl">Python<dd class="faded clearafter"><div class="fr"> <span class="sr-only">Level:</span> <span class="help" title="2.5"> <span class="sr-only">2.5</span> <span class="icon-star-full"></span><span class="icon-star-full"></span><span class="icon-star-half"></span> </span></div><div> <span class="sr-only">Keywords:</span><ul class="tags"><li class="tag">Scikit-learn<li class="tag">NumPy<li class="tag">SQL<li class="tag">jekyll</ul></div><dt class="fl">C++<dd class="faded clearafter"><div class="fr"> <span class="sr-only">Level:</span> <span class="help" title="2.5"> <span class="sr-only">2.5</span> <span class="icon-star-full"></span><span class="icon-star-full"></span><span class="icon-star-half"></span> </span></div><div> <span class="sr-only">Keywords:</span><ul class="tags"><li class="tag">High-Performance Computing<li class="tag">GPU Programming<li class="tag">Unreal Engine 4</ul></div><dt class="fl">Theorem Formalization<dd class="faded clearafter"><div class="fr"> <span class="sr-only">Level:</span> <span class="help" title="2"> <span class="sr-only">2</span> <span class="icon-star-full"></span><span class="icon-star-full"></span><span class="icon-star-empty"></span> </span></div><div> <span class="sr-only">Keywords:</span><ul class="tags"><li class="tag">Lean 4<li class="tag">Autoformalization</ul></div><dt class="fl">Other Languages<dd class="faded clearafter"><div class="fr"> <span class="sr-only">Level:</span> <span class="help" title="2"> <span class="sr-only">2</span> <span class="icon-star-full"></span><span class="icon-star-full"></span><span class="icon-star-empty"></span> </span></div><div> <span class="sr-only">Keywords:</span><ul class="tags"><li class="tag">Java<li class="tag">MATLAB<li class="tag">Scala<li class="tag">R<li class="tag">Shell</ul></div></dl></section><section class="npb"><h2 id="languages" class="h3 hr-bottom"> Languages <span class="symbol icon-bubbles"></span></h2><dl class="skills"><dt class="fl">English<dd class="faded clearafter"><div class="fr"> <span class="sr-only">Fluency:</span> <span class="help" title="Native Speaker"> <span class="sr-only">Native Speaker</span> <span class="icon-star-full"></span><span class="icon-star-full"></span><span class="icon-star-full"></span> </span></div><dt class="fl">Chinese Mandarin<dd class="faded clearafter"><div class="fr"> <span class="sr-only">Fluency:</span> <span class="help" title="Native Speaker"> <span class="sr-only">
2Native Speaker</span> <span class="icon-star-full"></span><span class="icon-star-full"></span><span class="icon-star-full"></span> </span></div><dt class="fl">Cantonese<dd class="faded clearafter"><div class="fr"> <span class="sr-only">Fluency:</span> <span class="help" title="Elementary Proficiency"> <span class="sr-only">Elementary Proficiency</span> <span class="icon-star-full"></span><span class="icon-star-empty"></span><span class="icon-star-empty"></span> </span></div></dl></section><section class="npb"><h2 id="interests" class="h3 hr-bottom"> Interests <span class="symbol icon-heart"></span></h2><dl class="skills"><dt>Sports<dd> <span class="sr-only">Keywords:</span><ul class="tags"><li class="tag">Professional Freediver </br>(National Rank #45 CWB, #31 CNF)<li class="tag">Skiing<li class="tag">Tennis<li class="tag">Golf<li class="tag">Mountain Biking</ul><dt>Other<dd> <span class="sr-only">Keywords:</span><ul class="tags"><li class="tag">Photography<li class="tag">Pastry Arts<li class="tag">Bartending<li class="tag">Singing<li class="tag">Gaming</ul></dl></section></div></div></article><footer class="content" role="contentinfo"><hr/><p><small class="copyright">© 2026. All rights reserved. </small><nav class="legal"><small> <a class="heading flip-title" href="/LICENSE/">LICENSE</a> | <a class="heading flip-title" href="/NOTICE/">NOTICE</a> </small></nav><hr class="sr-only"/></footer></main><hy-drawer id="_drawer" class="" side="left" threshold="10" noscroll ><header id="_sidebar" class="sidebar" role="banner"><div class="sidebar-bg sidebar-overlay" style="background-color:rgb(25,55,71);background-image:url(/assets/img/sidebar-bg.jpg)"></div><div class="sidebar-sticky no-fouc"><div class="sidebar-about"> <a class="no-hover" href="/" tabindex="-1"> <img src="/assets/img/profile.jpg" class="avatar" alt="Shilun (Allan) Li" width="120" height="120" loading="lazy" /> </a> <a class="sidebar-title" href="/"><h2 class="h1">Shilun (Allan) Li</h2></a><p class=""> Mathematics PhD at UC Berkeley</div><nav class="sidebar-nav heading" role="navigation"> <span class="sr-only">Navigation:</span><ul><li><div class="list-wrapper"> <a id="_navigation" href="/" class="sidebar-nav-item" >Home</a></div><li><div class="list-wrapper"> <a href="/about/" class="sidebar-nav-item" >About</a></div><li><div class="list-wrapper"> <a href="/resume/" class="sidebar-nav-item" >Resume</a></div><li><div class="list-wrapper"> <a href="/publications/" class="sidebar-nav-item" >Publications</a></div><li><div class="list-wrapper"> <a href="/projects/tcslib/" class="sidebar-nav-item" >TCSlib</a></div></ul></nav><div class="sidebar-social"> <span class="sr-only">Social:</span><ul><li> <a href="https://github.com/Shilun-Allan-Li" title="GitHub" class="no-mark-external"> <span class="icon-github"></span> <span class="sr-only">GitHub</span> </a><li> <a href="https://scholar.google.com/citations?user=xKhyfocAAAAJ&hl=en" title="Google Scholar" class="no-mark-external"> <span class="icon-google-scholar"></span> <span class="sr-only">Google Scholar</span> </a></ul></div></div></header></hy-drawer><hr class="sr-only" hidden /> </hy-push-state> 
2<script nomodule>!function(){var t,n=document.createElement("script");!("noModule"in n)&&"onbeforeload"in n&&(t=!1,document.addEventListener("beforeload",function(e){if(e.target===n)t=!0;else if(!e.target.hasAttribute("nomodule")||!t)return;e.preventDefault()},!0),n.type="module",n.src=".",document.head.appendChild(n),n.remove())}(); </script>
2 
2<script src="/assets/js/hydejack-9.1.6.js" type="module"></script>
2 
2<script src="/assets/js/LEGACY-hydejack-9.1.6.js" nomodule defer></script>
2 
2<script src="/assets/js/sidebar-folder.js"></script>
2 
2<script src="/assets/js/clap-button.js"></script>
2 
2<script type="module"> document .getElementById("_pushState") .addEventListener("hy-push-state-load", function () { get_clap_count(); }); </script>
2 
2<script type="module"> if ('serviceWorker' in navigator) { /**/ navigator.serviceWorker.getRegistration() .then(r => r.unregister()) .catch(() => {}); /**/ } </script>
2 
2<script> document.getElementById('_pushState').addEventListener('hy-push-state-after', function (e) { function e(e){ (console.error?console.error:console.log).call(console,e) } function t(e){ return l.innerHTML='<a href="'+e.replace(/"/g,"&quot;")+'"></a>',l.childNodes[0].getAttribute("href") } function r(e,t){ var r=e.substr(t,2);return parseInt(r,16) } function n(e,n){ for(var o="",c=r(e,n),a=n+2;a<e.length;a+=2){ var l=r(e,a)^c; o+=String.fromCharCode(l) } return t(o) } var o="/cdn-cgi/l/email-protection#", c=".__cf_email__", a="data-cfemail", l=document.createElement("div"); !function(){ for(var t=document.getElementsByTagName("a"),r=0;r<t.length;r++) try{ var c=t[r],a=c.href.indexOf(o); a>-1&&(c.href="mailto:"+n(c.href,a+o.length)) }catch(t){ e(t) } }(), function(){ for(var t=document.querySelectorAll(c),r=0;r<t.length;r++) try{ var o=t[r],l=n(o.getAttribute(a),0),i=document.createTextNode(l); o.parentNode.replaceChild(i,o) }catch(t){ e(t) } }() }); </script>
2<div hidden><h2 class="sr-only">Templates (for web app):</h2><template id="_animation-template"><div class="animation-main fixed-top"><nav id="breadcrumbs" class="screen-only"><ul></ul></nav><div class="content"><div class="page"></div></div></div></template> <template id="_loading-template"><div class="loading nav-btn fr"> <span class="sr-only">Loading…</span> <span class="icon-cog"></span></div></template> <template id="_error-template"><div class="page"><h1 class="page-title">Error</h1><p class="lead"> Sorry, an error occurred while loading <a class="this-link" href=""></a>.</div></template> <template id="_permalink-template"> <a href="#" class="permalink"> <span class="sr-only">Permalink</span> <span class="content-hash"></span> </a> </template></div></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.