Image by Nicole Jiang

This January, I joined Abnormal Security as a new grad Software Engineer. As you might expect by now, the onboarding process was entirely remote.

Prior to graduating from MIT with my BS in Electrical Engineering and Computer Science, I had interned as a software engineer at Microsoft and Cisco Meraki, among other companies (including several startups). I knew I was interested in the intersection of cybersecurity and machine learning and I wanted to find a full-time role that would allow me to continue building my skills while working on problems in these areas.

The interview process with Abnormal really impressed me. The questions my interviewers asked all seemed tailored to the work I’d be doing as an engineer on the team and everyone was…

So you’re interested in learning more about deep learning research, but you haven’t had a chance to work in a research lab. Maybe you just finished an online course or a bootcamp, or perhaps you’re just curious about the latest developments in the field. Where do you start?

If you’re not sure whether you want to focus on reading research papers, one of the easiest ways to be consistent about staying up to date on new research is by subscribing to a newsletter or mailing list that curates content. …

Using an RNN to Generate Realistic Short Fiction

Photo by Rucksack Magazine on Unsplash

It’s well-known that literary magazines like The New Yorker publish stories that carry a certain voice.

Fiction editors will often write that they want stories that don’t follow a formula. That they would prefer surprising work to stories that follow a predictable pattern or style. Nonetheless, the truth is self-evident.

Curious as to whether this style was easily replicated, I decided to build a flash fiction generator, implementing a form of a recurrent neural network (RNN) called a long short-term memory (LSTM) network, which is known for its historically strong results with text generation and summarizing tasks. The LSTM I built was trained on recent stories from The New Yorker’s summer short story collection.

I started…

While you won’t be able to learn ML in just five minutes, you should be able to get a sense of the different fields that make up the vast black box of research. Beyond just the buzzwords, there’s some “buzz-concepts” that you should be able to understand in order to intelligently interpret basic machine learning research and news. Even if you’re not gunning to become a machine learning engineer, it’s still useful to generally understand the computational resources needed for solving a reinforcement learning problem or whether a company’s business plan is actually machine learning feasible.

I first learned about…

As someone who occasionally reverse-engineers binaries, whether for analysis purposes or for a CTF, it can be difficult to remember the purpose of many of the registers, especially given that most disassembly tools don’t make it clear which registers do what.

Here’s a rundown of what some of the more common registers do, and what certain code blocks are used for:

32-bit Registers


You probably won’t see EIP when reading instructions, but it is used as the instruction pointer for the next address called after an instruction is run.


The current stack pointer — it holds the current address that you’re running


If you’re new to the world of IoT, chances are you’ve heard a number of terms and acronyms thrown around and wondered about their differences or whether you should purchase a Raspberry Pi or an ODROID.

Mojo FPGA board from SparkFun (randomly chosen to use as a sample board)

That main reason I became curious about how interchangeably these boards were being used was because some of the main intro to embedded systems labs at MIT (6.08, 6.111, 6.115) teach programming microcontrollers, PSoCs, and FPGAs.

I first started hearing about the different types of boards around 2012, around the time Arduino and Raspberry Pi were becoming popular. I’ve mostly used microcontroller development boards…

I recently came across problems from my laptop running out of power and forcing shutdown while it was in hibernation. When I later booted up the laptop again, I wasn’t able to access either the Windows 10 partition or the Manjaro partition (it was a dual-boot).

After combing across a number of posts in the Manjaro forums, I wasn’t able to find any that seemed to replicate the troubles I was having. This was especially relevant since I was trying to natively run a RE program that only had support for 32/64-bit UNIX (and I usually used OSX).

Image Credits: ReWritable (

At first…

Lately, my friend has been incredibly excited about using PowerTOP to decrease power usage for his Dell XPS running Arch. It’s a fantastic utility that displays a minimalist monitor for background activity in the terminal, but unfortunately it only exists for Linux systems.

I’ve regularly used Activity Monitor for monitoring my CPU and memory usage, but I was beginning to wonder if it might be possible to have a non-GUI assistant for Mac systems.

A thread on Stack Exchange recommended powermetrics, a command-line utility designed specifically for Mac usage. …

I learned about GitHub somewhere between middle and high school after checking out some repositories from old Technology Student Association projects for the Video Game event. I remember watching a video demo of the state champion from Colorado TSA and checking out his C code afterwards, wondering how someone could possibly build such a complex project in a matter of months.

Later, a friend of mine from Key Club (Danny) showed me some of his code from FIRST Robotics that was hosted online, as well as simulations for Zero Robotics. As it turned out, a lot of clubs at my…

I figured it was probably time to memorize vim commands. At my high school, all of our CS classes required that we learn emacs and terminal commands. While I did have cursory knowledge of vim (enough to save git commits and exit the window), I didn’t necessarily have enough knowledge to entirely disregard the keybindings.

Recently, I stumbled across Vim Adventures, an adorable text-based game modeled after the likes of Legend of Zelda. It teaches some of the more basic commands of vim, as well as drastically lowering the learning curve (vim and vi in particular are known for being…

Sharon Lin

Software Engineer & Writer | Prev EECS @MIT | | Twitter @sharontlin

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store