If greatness necessitates adopting an unpleasant demeanour, I willingly embrace mediocrity.
Humility and empathy are qualities that often don't receive the recognition they truly deserve.
Matrix Multiplication: Optimizing the code from 6 hours to ~ 1 sec.
"Performance Engineering is a lost art." - Charles Leiserson
I followed this lecture -
Donald Knuth advice to young engineers -
- Follow your own instincts.
- Prestige comes from doing good science, not just popular science.
- Deep knowledge builds confidence.
- A liberal education involves learning everything about something and something about everything.
In the journey of every middle-class boy when he realises that the lack of respect is because of lack of money in his family.
From that day forward, a transformative shift begins.
Andrej Karpathy talking about -
- rarity of talents in distributed computing with GPUs.
- the opportunities in computer architecture because von Neumann architecture may not be optimal
- progress in precision
- sparsity in neural networks
I found this amazing lecture series on concurrent and parallel programming using rust.
I will be going through it myself. Not sure about the content quality but it looks good.
how to learn math from scratch? This might help.
assumption is that we have knowledge of discrete math topics - functions, set theory, order and relations, etc.
Linear Algebra -
Books: Introduction to Linear Algebra" by Gilbert Strang
Topics: Matrices, Systems of linear
Here are my favourite lectures on YT to learn distributed systems -
- MIT 6.824 Distributed Systems (Spring 2020)
- UWaterloo CS 436: Distributed Computer Systems
- lecture series by Martin Kleppmann
He is right. I would recommend studying the following trends in computer science -
- distributed systems
- multicore programming
- compilers
basically the backend that empowers AI. It needs a lot of work and a lot of opportunities there.
I know I’ll get a lot of backlash for this but I’ll say it anyway.
If you’re going to college for 4 years, you better be DAMN sure it’s a top rated one. In 4 years, we’ll have insanely good AI — You’d have spent that time doing irrelevant assignments while the world races past.
A few book recommendations to dive deep in the coming years, especially if you are into systems programming, concurrency, or distributed systems:
- Art of Multiprocessor Programming - Essential for understanding parallelism and concurrency, offering practical insights into
Listen! Has life showered you with misery? Do you carry a generational trauma of poverty or lack of money?
WORKING HARD is your only option!
I don't need to explain about that trauma, that disrespect, that feeling of being "i don't matter". If you have felt that you know what I
Sam talks about 'taking an year off'.
Being productive over a decade and not over-optimizing your days.
He talks about
- reading voraciously,
- traveling to different countries in conferences,
- engaging in interesting conversations
- and learning about investing.
A few years ago I wrote this post while I was following MIT performance engineering lectures.
I tried to achieve numpy level matrix multiplication performance. I started with a basic code which takes 6 hours and got it to execute around 1 sec.
Numpy took 0.6 secs. 🤯
One developer supports 5.2 million games annually, competing closely with Chess . com's 138-person team.
No meetings, no micromanagement—just one dedicated dev who cares.
Lichess: Uses scala and typescript() mostly and it uses rust to develop low-level
Videos I love about startups -
1. Competition is for Losers with Peter Thiel -
2. What does it mean to do things that don't scale? Paul Graham -
3. How to Start a Hard Tech Startup with Sam Altman -
Don't take advice from people whom you don't see executing.
Also, Avoid learning from teachers who don't practice.
Hardy, Feynman, Einstein, APJ Abdul Kalam, Yoshua Bengio etc all were executing in their field while teaching.
If you are looking to dive deeper in systems engineering topics like -
- Concurrency
- Distributed Systems
- Introduction to Formal Methods
We plan to cover things like -
- Mutex, Atomics and Lock less data structures
- Coroutines, Structured Concurrency, Work stealing etc.
-
Forget about memory and disk optimizations.
Yellowbricks architecture goal is to execute queries from the data persisted in CPU L3 cache rather than from main memory!
Insane system engineering.
Context : Build systems which will support AI. A lot of work needs to be done around distributed training and inference of AI. Look at mojo, a unified language for CPU and GPU programs.
I ain't saying AI model building is useless. I am saying that there are other areas too.
Operating system: three easy pieces is a good read.
I am reading a few good books these days. I need to fill some gaps in my knowledge. This book is really helpful.
It is in three parts - virtualization, concurrency and persistence.
Just being a teacher is a modern invention. A teacher who isn't an active practitioner in their field should be viewed with suspicion. Let me explain.
Note: My experience is in Computer Science and Mathematics, so this post is strictly about those domains.
Formal education as
How to Master Distributed Systems? 💡🤔
In recent years, there's been a surge in people eager to explore distributed systems. Whether you're a seasoned IT professional or a curious newcomer, grasping distributed systems might seem daunting.
Here's a streamlined approach to get
Finally, finished CMU Advanced DB course by Andy Pavlo.
Learnt so much!
- Vectorized query execution
- Parallel has joins
- DB networking
- Query Optimizations
- Internals of Photon, Dremel, Yellowbricks etc.
Reading Edgar Dijkstra's 1-page paper that introduced the notion of "mutex," I'm profoundly struck by his succinct writing.
A remarkable skill in precisely defining a problem above code, an ability that many programmers, like myself, lack.
So much to learn!
If you are interested in building Distributed Systems, Concurrent systems and tip-toe into formal methods, the 4th cohort of Empowered Coder is starting this weekend. 8 weeks, deep-dive and hands-on engineering. This is only for those who are really interested in exploring these
Torvalds Speaks: Rust's Impact on the Linux Kernel.
- plan is to integrate drivers and major sub-systems in rust
- it will take a some time before critical components or kernel is written in rust.
- Torvalds is not writing any rust, he is reading a lot of rust code though.
The next decade of computing will be around low-level engineering and formal methods!
Please don't create more wrappers around LLMs, you will be disrupted. Build deep-tech!
As systems evolve in complexity, proficiency in low-level engineering and a familiarity with formal
Programmers should learn to write recursion.
It is the cornerstone of good stateless programming.
Recursion encourages abstract thinking.
It is a gateway to think in terms of 'state machines'.
Imagine the following -
A 3 months outcome focused full-time in-person, residential bootcamp for programmers(read hackers) and mathematicians(also enthusiast), only deep tech topics -
- A GPU cluster
- networked multi-core servers
- Classic books available
- Whiteboards
Satya Nadella says Windows PCs will have a photographic memory feature called Recall that will remember and understand everything you do on your computer by taking constant screenshots
Don't fall for 52 books a year type of bs advice!
Read high quality books. Read maybe 5-6 books a year. Dense book. They should force you to think. Then write a lot, think about the new ideas you got.
This week I am learning async rust.
Today I learnt -
- Streams
- Fused Streams
- repeat_with and unfold
- Chain and Zip
- working of a Async Runtime
Follow along here -
Following img is a representation of how an async-runtime, say tokio work.
If you're looking for one piece of life-changing advice:
Find an active open-source project that aligns with your interests. Contribute to it regularly without expecting anything in return.
This is the best way to remind yourself, "I still code things that excite me!"
I have got a few book ideas, which one would you like to read?
- Code and Math -
Intersection of Math and Software. Influence of math in Computer science. Topics like queuing theory, set theory, formal methods but very non-academic.
- The Mathematics of War -
Understanding
Let me say this, Don't fake it.
If you think you don't know something, learn it. Take time - watch lectures, build prototypes etc.
In this world of pretence, Be honest, at least to yourself!
Lastly, with countless ways to live, choose the one that brings you true happiness.
Here is the video from today's call where we discussed
- Abstractions.
= thinking about computation in terms of state machine and state transitions.
- Coding as a Mathematical Proof using kani, a model checker in rust.
System Performance -
- LISA19 - Linux Systems Performance -
- Tuning Essentials - Linux Performance Optimization - Red Hat EX442 -
Please let me know if you have some resources, I want to get deeper into it.
Always fantastic to catch up with you
@arpit_bhayani
.
Loved the 2 hour discussions we had about -
- systems
- Teaching online and cohorts
- consistent hashing
- DiceDB, raft-rs
- working towards building deep tech companies
- communities and open source
- managing ego, etc.
If you are interested in -
- diving deep in concurrent systems
- exploring distributed systems
- read TLA+ spec and other formal method tools like Kani
- learn about GPUs
- write assembly code and import that in rust (new addition)
- read some research papers
- so much more.
Mad respect for
@MLStreetTalk
. It is still the top tech podcast. Each episode is equivalent to netflix production quality.
Here is Simon Prince talking about Deep Learning and his new book.
If you are looking to get started in DL, this is the video!
The truth is, you’re likely not as good as you think. It’s hard to accept, and your ego resists it.
But that quiet voice urging you to improve? It’s probably right.
- Learning to learn is tough. Schools fail here. Master it, and you’ll do wonders.
- Rust, C, Scala - don’t seek the best. Choose the one that lets you express yourself. We need to find a semantic level in which we are most comfortable in. The world needs C devs, GO devs, Java
These kids should get a reception similar to Indian Cricket team or coverage similar to ISRO.
They will inspire generations.
I also prepared for INMO in Bihar, a state with no culture or mentorship for this. Despite the challenges, the impact on my life was phenomenal.
It’s a matter of immense joy and pride that India has come 4th in its best-ever performance in the International Maths Olympiad. Our contingent has brought home 4 Golds and one Silver Medal. This feat will inspire several other youngsters and help make mathematics even more
"I was just an ordinary person who studied hard" -
“Study hard what interests you the most in the most undisciplined, irreverent and original manner possible. - Richard Feynman
Week 2 : Distributed systems and Concurrency cohort. We discussed this seminal paper by Edgar Dijkstra.
We will also be working on a transpiler project related to parallel programming. More updates to follow.
Elon Musk had 0 years of experience in the aerospace industry when he started SpaceX and built re-usable rockets.
Linux was built entirely asynchronously and remotely.
Apollo 11 Guidance Computer (AGC) operated on a single-threaded architecture.
Ramanujan's brief life yielded
A great podcast where
@ponnappa
shared his insights on -
- generalist vs specialists debate
- building a consulting + product company
- angel investing
Heard him on a twitter space, loved his thinking.
I hope to get a chance to talk to him soon!
Tech is a cooperative game. Stop gatekeeping.
Respect those in tech for financial goals or mere interview success; these pursuits are valid.
Everyone has the right to earn for their family's well-being and personal upliftment.
Technology - a powerful facilitator.
Sometimes It's hard to believe - 4 years of education and never read a single research paper? What were you doing?
However, the good thing is that you can still start doing it.
Visit the websites of top conferences like VLDB, NeurIPS etc and find a paper that interests you.
Career update -
Excited to join Resonatehq as engineer to work on durable async/await.
What makes it even more exciting?
- It's an open-source project.
A compact yet dynamic team all set to embark on the journey of building from the ground up.
Learn Math, people!
Not just AI, it is very useful in thinking about distributed systems too.
The more I am learning about Formal methods the better my thinking process become. Understanding RAFT from its TLA+ spec is so intuitive and all you need is basic Set Theory.
I’ve signed this letter alongside many others to emphasize the profound importance of math education. I think a deep understanding of math will help us build elements that will bring AI usefully into the human world.
This came in very late at night. Time to start my day with it now.
Learning GPU optimizations. Some amazing list of speakers.
Thank you
@chipro
for organising this. This was very helpful.
Every project at CMU Advanced DB course 2024, built on top of Datafusion.
To me, this denotes a clear trend towards "composable data stack" hypothesis.
Datafusion is designed from the ground up for extensibility.
Also, Rust lang was de-facto choice.
Leslie Lamport talks about 'The key differences between a programmer and a coder'.
Decide Behaviour -> Choose Algorithm -> Write Code
However, most of us fail to think a level above code. With increasing complexity in engineering, thinking in systems becomes a necessity!
If you are interested in Byzantine Fault Tolerance,
here is an amazing talk by Ittai Abraham (
@ittaia
) -
He spoke about -
1. Single Shot -> Consensus -> State Machine replication
2. Omission Model -> Byzantine fault tolerance
3. Blockchains
I was talking to an ex-Meta, Founder-CEO of ML Infra startup.
The amazing and important open source contribution of Meta is under-appreciated -
Data - RocksDB, Cassandra, GraphQL
AI - Pytorch
Frontend - React
Testing - Jest
Document - Docusaurus
A mathematician is not a scientist. A Physicists is not an engineer. A linguist is not a poet. A reporter is not a writer, etc.
-----------------
Coding can be taught in 2-3 month bootcamp.
After acquiring that, an individual has the option to either delve into mathematics,
Every modern database you see is being designed with a hardware-first approach.
Even if you don't become a Hardware expert, understanding hardware will bring in immense value.
Gone are the days of generic software programming with h/w abstractions.
Love rohan's advice.
Leave the realm of the database/compilers!
They already have people that are more skilled in their craft than you could ever be as a novice.
Rather start learning hardware!