Rustie Lin UC Berkeley CS, Distributed Systems, Blockchain

Summer 2018

Updates 5/23/18

  • Atom Image Paste
  • GFM for Jekyll.
    • Turns out there's some bug, so workaround right now is to just use HTML
  • Reorganized website.
    • Added "Notes" page, for more categorical content
  • Launch Blockchain Fundamentals edX
    • Writing second course now
  • Update Blockchain Fundamentals textbook
    • In progress
  • Berkeley Mobile splash screen
    • Redesigning application architecture from the top down, in progress
  • Blockchain dev
    • Changed to more academic focus
  • Kill it at Amazon


  • Playing around with Cytoscape JS
    • Reach goal is to make an interactive Paxos simulation. Very rough work in progress here.

The spring semester came to a close last Friday, with my last final ending at 10pm. The past semester was exhausting, but in a productive way. I’m planning to ride this wave of productivity through the summer and beyond. Writing this post to timestamp and keep track of my goals.

Starting end of May, I’ll be working as a Software Development Engineer Intern at Amazon, specifically in the HR Connections team. Super excited to meet my team and the rest of the interns, and of course to explore Seattle and the surrounding area.

I’ll also be continuing work on my edX program, Blockchain Fundamentals. Our first course is launching early July, and a lot of work still has to be done before launch, such as a final QA pass, testing, accessibility review, etc. We’re also starting to begin development for our second course soon, as that one releases in September. A reach goal regarding Blockchain Fundamentals is to complete the textbook during the summer as well. We have all the course design figured out, and our first course has 300+ pages of transcripts, so I’ll be parsing through and transcribing into a more textbook-like style. It’ll be the spiritual successor to my original writings, but with an emphasis on accessibility and minimal use of jargon. I wrote a post about the notes I wrote last summer.

Regarding the blockchain textbook, I also want to take some time streamlining my writing workflow. I transcribe most of my personal notes (studying, meetings, etc.) into either Markdown or LaTeX, whichever is more convenient. Visual Studio Code used to be my go-to text editor for writing, but I have since switched to Atom. One of my favorite plugins for VS code allowed me to paste images directly into markdown files, automatically creating a PNG file in a pre-specified directory, and inserting the image using appropriate markdown syntax. Such plugins exist, but are not as extensive (support multiple syntax, selecting image directories, etc.) and do not suit my needs. I’ll do some research into existing plugins and how to contribute. Or, I might take some time to hack together my own Atom package and brush up on my JavaScript/CoffeeScript :)

On the topic of hacking, I wanted to spend time this summer buffing up my development skills in general. Here are some fun projects I’ve been thinking about:

  • Updating this website. Writing in this blog helps me organize my thoughts, but the number of posts makes it such that it’s increasingly difficult to find older posts. Perhaps a search bar, filter, or UI overhaul is necessary here. UI needs to be fixed on the front page as well, especially with the links and all. I’m pretty horrible at UI, so this will be a pretty big challenge for me. I’d also like to look into adding some more useful plugins into Jekyll. One feature that just came into mind was having this site display GitHub flavor markdown so that I can have check boxes on this post.

  • Improving the user experience on Berkeley Mobile. My last push in the Berkeley Mobile team was to bring both our Android and iOS apps open source, so that people (probably students) can play around with our app, and maybe even suggest/submit feature suggestions. One feature I’ve always wanted to see was the addition of a customizable splash screen. Users already have the option to favorite libraries and food items, so it seems natural to be able to see these on some sort of splash screen. Currently, the app just dumps the user on a screen with the Berkeley Mobile logo, with the navigation drawer open, linking to all our other screens. Being able to customize their own experience is pretty important in mobile apps, from my experience, and here I’m applying my own “be your own user” mentality. As I explained earlier, I’m pretty trash at UI/UX, so it’ll be a learning experience for me, and I’ll definitely consult some designers for their opinions.

  • Blockchain protocol development. Over the past semester or so, I’ve read papers and documentation about all these cool consensus algorithms and blockchain platforms, but I have yet to touch their code. In fact, besides some Solidity smart contract development on Ethereum, I have minimal exposure to blockchain development. Since my interests are in infrastructure and protocol, my plan is to dive down the stack and explore some fundamental technologies and projects, reading papers and implementing some cool stuff. I’m specifically looking forward to reading more on IPFS, Cosmos/Tendermint, Hyperledger, Lightning, and Plasma.

Super excited to start checking off items on my sumer TODO list, which isn’t all above. I have many other summer plans of course: helping out a blockchain incubator in Palo Alto, figuring out ways to fine tune my workflow, enjoying a book and good vibes in a cafe… and of course most importantly of all, spending time with friends and family.