Revising Resources for Coding Interviews

For the past two weeks, I’ve been doing 1 Leetcode problem a day, by hitting the random problem button. This is a bad strategy, since it’s inefficient at figuring out my weaknesses. The optimal strategy seems to involve working through a list of representative problems, categorized by topic, like the Blind 75. You would basically go through the entire list several times, looking at answers if you need to, until you can easily recognize the patterns. I did this back in early 2020, then I forgot everything.

More …

Distributed Tracing Project Proposal

Here is the accepted proposal for the distributed tracing project I will be working on this summer. Pythia is written in Rust and Jaeger is in Go. As I write weekly updates for this project, I’ll continue to post some here under the tracing tag.

Project Title: Enabling an automated instrumentation framework in a distributed tracing platform

Abstract

Diagnosing performance problems in distributed systems is challenging. One reason is that it is hard to know in advance what instrumentation to enable that can help diagnose problems. Pythia is an automated instrumentation framework that aims to solve this decision problem. The approach uses the key insight that performance variation in workflows that are expected to perform similarly provides insight to where instrumentation should be enabled. This project will validate Pythia’s approach by integrating with a mature distributed tracing system to automatically enable instrumentation that can help diagnose performance problems, as well as evaluating the system in representative distributed applications.

More …

3 Month Study Plan

I finally graduated. But not really. I’m done with coursework, but I have to complete a project or thesis before graduating in September. In lieu of taking the project class (which was only offered in the fall), I am working on an MS Project. That will take up at least 16 hours per week, from May 24 to August 13, or roughly 12 weeks. The rest of the time will be spent working on projects, hobbies, applying to jobs, and practicing for interviews. This post will serve as a list of resources as well as a timeline for my studying.

Organizing all this has become so much better with the Raindrop.io bookmarks manager. Previously, I used Instapaper but searching is not free and organization/tagging is slow. I’m planning to keep this short so I’m not overwhelmed by the amount of resources.

More …

2020 Retrospective

2020 was one of the most challenging and formative years of my career. Between internships, academic projects, teaching, research, and job interviews, I learned as muhc from setbacks as successes

  1. Summer Internship
  2. Cloud Computing Project
  3. Teaching Assistant
  4. Research Assistant
  5. Job Interviews

Summer Internship

I joined Foundation Devices, a pre-seed hardware startup, to work on an early version of the Passport bitcoin wallet firmware. The first firmware was a proof of concept to show investors. Towards the end of my internship, the team started reworking the firmware to prepare for the open source release and to conform to MicroPython specs. A few features I built made it into the public release, including a keypad driver with event buffering, display word wrapping, and error logging to MicroSD. It was my first exposure to the pace, trade-offs, and resource constraints of early-stage product development.Only some of my contributions went into the public version, but it still feels great to have features I worked on end up on a real device.

Added

More …

Embedded Systems Study Materials

List of embedded systems resources. I’m narrowing down from my earlier 2020 Study Plan to focus on embedded systems and firmware development in C. Bold indicates something I am currently reading or using for class.

Hardware and Software

  • Beagle Bone Black Rev C
  • FRDM-K64F NXP
  • Raspberry Pi 4
  • Mbed
  • QEMU
  • FreeRTOS
  • Busybox
  • Raspberry Pi Zero W
  • PwnPi

Buylist

  • STM32F4DISCOVERY
  • ESP8266, ESP32
  • Saleae Logic Analyzer
  • More Pi Zeros for a Kubernetes cluster

Articles and Threads

Books

More …