RSSAmplifier

Blog

Mukul's Blog's RSS Feed

Mukul Rathi's personal website and blog

mukulrathi.comRSS feed ↗47 posts

Latest posts

Deep Learning with Differential Privacy (DP-SGD Explained)

Many of the world's greatest machine learning problems require access to sensitive data, such as patient records for cancer detection. The…

How to ramp up on a new team and stack quickly

I joined the Messenger Privacy Experiences team as an iOS engineer about two months ago. New team, completely new stack. I'd never written…

How do I get into Cambridge Computer Science?

I've had a couple of comments on my YouTube videos asking about advice on applying to Cambridge, so here's a snippet with some of my…

My Facebook Bootcamp Experience

Disclaimer : these are my personal opinions: I'm not speaking on behalf of Facebook, nor am I discussing anything remotely confidential, nor…

What Programming Language Should I Learn?

Today I saw this video by a YouTuber called ForrestKnight on how many programming languages to learn, and whilst it is well-meaning, I…

Learning Objective C - Weird Syntax, Same Concepts

New tech stack, new language I've decided to learn some iOS programming at Facebook during my Bootcamp. Because well, it's just another tech…

React Keys and ReactDOM

Keys help identify React Components Traditionally when we are taught about keys in React, it is in the context of rendering a list of…

Google Translate is biased, and here's how we can fix it!

That's right, Google Translate is biased. When it comes to assigning gender from a gender-neutral language like Hungarian, it defaults to…

I've Started a YouTube Channel

I started a YouTube channel 3 weeks ago. I probably should've written this post then but hey ho! I've posted 4 videos so far, and I've…

Adding Inheritance and Method Overriding to Our Language

Welcome back to part 11 of the series! We've got concurrency and generics in our language, but we're still missing a key component…

Generics - adding polymorphism to Bolt

Onward with more features that any "proper" programming language needs. Today we're implementing generics . Generics allow you to reuse…

Write It and They Will (Eventually) Come

At the start of the year, I set myself a goal . Not "reach 1000 Twitter followers". Not "get 100,000 page views". Not to "rank #1 on Google…

Implementing Concurrency and our Runtime Library

The Role of a Runtime Library Up till now, we've translated constructs in our language Bolt directly into LLVM IR instructions. The biggest…

A Complete Guide to LLVM for Programming Language Creators

Update : this post has now taken off on Hacker News and Reddit . Thank you all! Who's this tutorial for? This series of compiler…

How do I use__? A guide to React hooks

Prefer this in video form? I ran a React workshop for Hackers at Cambridge last month that covered React hooks in the context of a web…

A (somewhat subjective) Guide to Part II CompSci Dissertations

I've been fortunate enough to get some great advice about Part II dissertations throughout the course of the last year, which culminated in…

React From First Principles

React is a JavaScript library for creating interactive UIs that is all the rage right now. However too often beginners dive straight into…

Do technical mechanisms for building ‘trust’ help people trust systems?

Technical mechanisms for building trust do help people trust systems - the rise of e-commerce sites and in particular sharing economies is…

AI is not a magic sauce

I wrote this as part of an assignment for my Tech Law and Society module for my Master's at the University of Cambridge. I'll probably flesh…

17 Tips to Convert Your Internship to a Full-time Offer!

Throughout my university degree, I've completed 3 internships: one at a cybersecurity startup, and two internships at Facebook. I believe…

A Protobuf tutorial for OCaml and C++

Now that we've desugared our language into a simple "Bolt IR" that is close to LLVM IR, we want to generate LLVM IR. One problem though, our…

Desugaring - taking our high-level language and simplifying it!

Just give me the code! All the illustrative code snippets in this blog post link to the respective file in the Bolt repository . There's…

A tutorial on liveness and alias dataflow analysis

Dataflow Analysis - the big picture In the previous post in the series, we looked at how type-checking the core language worked. This…

An accessible introduction to type theory and implementing a type-checker

This post is split into 2 halves: the first half explains the theory behind type-checkers, and the second half gives you a detailed deep…

Writing a Lexer and Parser using OCamllex and Menhir

We can't directly reason about our Bolt program, as it is just an unstructured stream of characters. Lexing and parsing pre-processes them…

So how do you structure a compiler project?

Writing a compiler is like any other software engineering project in that it involves a lot of key design decisions: what language do you…

How I wrote my own "proper" programming language

The diagram above is the compiler for the language Bolt we'll be building. What do all the stages mean? I have to learn OCaml and C++? Wait…

A step-by-step guide to integrating ReasonML into your Gatsby site

Overview If you're reading this post, you probably have heard of Reason and want to try it out. If you haven't, go read this or this to…

OCaml Testing and CI

Whilst OCaml's amazing type system might prevent a lot of common programmer errors, it certainly doesn't mean you should not test your code…

A handy guide to Dune - the BEST ReasonML/OCaml build system out there

Why have a build system? When working on a larger OCaml project, you'll eventually end up working on programs spread across multiple files…

My experience interning at Facebook

Disclaimer : these are my personal opinions: I'm not speaking on behalf of Facebook, nor am I discussing anything remotely confidential, nor…

Level up your website in 2019 with Gatsby and React!

Website v1.0 - Humble beginnings From the start, my personal website has had two main purposes: A testbed to learn the latest and greatest…

Why Continuous Integration will change the way you code

Bug-free code is a myth when working at scale You know the deal, you just change one little feature, and that causes another part of your…

A beginner's guide to setting up your own Postgres database server with Docker and Flask!

Overview of the tutorial In this tutorial we'll set up a database with a REST endpoint that other applications can send requests in order to…

The Ultimate Git Beginner Reference Guide

What is Git and why should I care? Git is a distributed version-control system - i.e. it records the changes made to files in a repository…

Backpropagation through, well, anything!

Introduction So far in this series, we have looked at the general principle of gradient descent , and how we computed backpropagation for…

Recurrent Neural Networks

We move onto the next neural network architecture - the recurrent neural network , used for tasks where the input is a sequence. Motivation…

Backpropagation in a Convolutional Neural Network

Introduction In this post, we will derive the backprop equations for Convolutional Neural Networks. Again there is a Jupyter notebook…

Convolutional Neural Networks

Introduction In this blog post, we'll look at our first specialised neural network architecture - the convolutional neural network . There…

Debugging the Learning Curve

Introduction We've talked a lot about training our model, and improving our optimisation algorithms to really get the best out of it, but we…

Optimising Learning

Improving Gradient Descent Gradient descent is a good learning algorithm for neural networks, however we can do better to improve learning…

Backpropagation

This may be the most important post in the series, and also the most overlooked, both for the same reason - this is where the maths gets…

FeedForward Neural Networks

Now to introduce our first deep learning algorithm - the feedforward neural network! Reminder: the code for this series of tutorials can be…

Learning Through Gradient Descent

Having looked at linear and logistic regression, we will look at how these algorithms "learn". Loss Functions: For a machine algorithm to…

Linear and Logistic Regression

Introduction: Today, we get our hands dirty with our first machine learning algorithms! Whilst we are starting out simple, these algorithms…

What is a neural network?

Introduction In this series of blog posts I aim to demystify the main types of neural networks, and delve into the maths behind these deep…

Demystifying Deep Learning Primer

Why bother with the maths behind deep learning? Deep learning has been getting more powerful with the advent of more data and computational…