HN user

mrathi12

95 karma
Posts30
Comments22
View on HN
thesephist.com 4y ago

Habitcrafting and Tool-Making

mrathi12
3pts0
minwiz.com 5y ago

A full website in 1.7 KB (all assets included)

mrathi12
2pts0
graydon2.dreamwidth.org 5y ago

What's Next?

mrathi12
1pts0
mukulrathi.co.uk 5y ago

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

mrathi12
5pts1
mukulrathi.co.uk 5y ago

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

mrathi12
7pts3
mukulrathi.co.uk 5y ago

AI is not a magic sauce

mrathi12
1pts0
mukulrathi.co.uk 5y ago

Backpropagation through, well, anything (2018)

mrathi12
2pts0
mukulrathi.co.uk 5y ago

React from First Principles

mrathi12
1pts0
mukulrathi.co.uk 5y ago

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

mrathi12
2pts0
mukulrathi.co.uk 5y ago

Regulation Entrenches Incumbents

mrathi12
1pts0
mukulrathi.co.uk 5y ago

No, AI can’t predict the outcome of the election

mrathi12
2pts0
mukulrathi.co.uk 5y ago

17 Tips to Convert an Internship to a Full-Time Offer from a Former FB Intern

mrathi12
1pts0
mukulrathi.co.uk 5y ago

17 Tips for Converting Your Internship at FAANG to a Full-Time Offer

mrathi12
2pts0
mukulrathi.co.uk 5y ago

A Protobuf tutorial for OCaml and C++

mrathi12
2pts0
twitter.com 5y ago

Evan Czaplicki's ICFP20 Keynote – Thread

mrathi12
1pts0
mukulrathi.co.uk 6y ago

Deep learning from first principles: Gradient Descent

mrathi12
1pts0
mukulrathi.co.uk 6y ago

Git Good – The Ultimate Beginner Reference with Diagrams and Code GIFs

mrathi12
3pts0
mukulrathi.co.uk 6y ago

Creating our own language part 6: desugaring high-level language features

mrathi12
1pts0
mukulrathi.co.uk 6y ago

Implementing Our Own Version of Rust's Non-Lexical Lifetimes in Bolt

mrathi12
3pts0
mukulrathi.netlify.app 6y ago

An accessible introduction to type-checkers

mrathi12
1pts0
mukulrathi.netlify.app 6y ago

Writing your own type-checker doesn't have to be hard

mrathi12
1pts0
mukulrathi.netlify.app 6y ago

How to use OCamllex and Menhir for your language parser

mrathi12
2pts0
mukulrathi.netlify.app 6y ago

So how do you structure a compiler project?

mrathi12
1pts0
github.com 6y ago

Show HN: Bolt: A research language with finer-grained concurrency than Rust

mrathi12
103pts24
github.com 6y ago

Show HN: Bolt: A language with finer-grained concurrency than Rust

mrathi12
2pts0
www.mukulrathi.com 6y ago

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

mrathi12
2pts0
mukulrathi.com 6y ago

What it's like to intern at Facebook in 2019

mrathi12
10pts3
mukulrathi.com 6y ago

Level up your website in 2019 with Gatsby and React

mrathi12
3pts1
mukul-rathi.github.io 7y ago

Beginner's Guide to Postgres Database Server with Docker and Flask

mrathi12
2pts0
mukul-rathi.github.io 7y ago

Beginner Git Cheatsheet

mrathi12
1pts0

This is such a common fallacy. C exposes lower-level memory management, but to then say "oh now you have pointers you can implement anything" is a push.

If you need to implement virtual tables and function pointers, you'd use C++ - there's no need to reinvent the wheel.

Besides software engineering is about focusing on the intrinsic complexity, and using languages and tools to mitigate the incidental complexity.

C lets you use OO if you want it

Tenuous - if you are willing to implement objects yourself then you could use C sure, but I don't think that means the language "lets you use OO". It's like you could also probably implement algebraic datatypes in C using unions and structs, but would that mean "C lets you use algebraic datatypes"? I would strongly argue no.

Yes, exactly. Clang emitted IR especially has a lot of (C/C++)-specific junk. If you look past that clutter, it's not too bad.

I think the best way to learn to read IR is to look at super-minimal examples, and then you'll be able to tell which parts of larger IR files are relevant.

Hey, author of the post here. Do I think the C++ API is important? For most languages no. The OCaml bindings in my case were almost sufficient, but I planned to do some memory fences and other operations in my language that the OCaml bindings didn't have.

In hindsight, it's probs better to choose OCaml bindings and then link in any special instructions you need from C++ if you need to.

[dead] 6 years ago

Hey, Author here. This post is just some of the advice I picked up along the way. What advice would you give interns and junior developers starting out in the industry?

Also, Bolt runs on the JVM and thus has a garbage collector

No, Bolt targets LLVM IR

As for your other points, whilst there are escape hatches in Rust that do let you do it, it's not in the core ownership type system. That's what is being compared - the type systems.

The escape hatches mean you lose some of the guarantees the type system gives you - Bolt's approach still gives you the guarantees. That's the difference.

In response to your comment, Facebook merely gave a talk, they did not refer anyone - I applied online without a referral.

This post is about what the internship itself was like, not how to apply - there are plenty of other posts about that online.

It's coming round to internship interviewing season again, so for those considering interning at Facebook, here's a post that will hopefully give you a better insight of what it is like to intern at Facebook! I thoroughly enjoyed my internship this summer and would strongly recommend interning here - in fact I'll be returning next summer for another internship!

I think getting into the habit of testing and good code style will pay dividends. Most test frameworks are very similar across languages so I'd say learn multiple languages and try to test your code as you do so.