Jesse Li
blog.jse.li · Personal blog · on HN since 2018
Jesse Li writes about programming and security, including a BitTorrent client in Go, malware reverse engineering and a browser timing attack.
What HN saysHN commenters repeatedly recommend his BitTorrent client tutorial as an informative, free guide to the protocol.
23HN people shared it
6linked it in comments
28stories submitted
1.8Kstory points
4 months agolast shared
2018people per year2026
Most-shared posts
- 1Building a BitTorrent client from the ground up in Go8 people · 1.5K points · first shared 2020 · 90 comments on HN
- 2Finding secrets by decompiling Python bytecode in public repositories5 people · 180 points · first shared 2020 · 51 comments on HN
- 3Where Did Software Go Wrong?5 people · 17 points · first shared 2020 · discussion on HN
- 4Approve merge requests with your eyes closed2 people · 5 points · first shared 2025 · discussion on HN
- 5Reverse Engineering a Piece of JavaScript Malware2 people · 2 points · first shared 2018 · discussion on HN
- 6Show HN: Ten seconds to ponder if a thread is worth it1 people · 148 points · first shared 2021 · 47 comments on HN
- 7Detecting incognito mode in Chrome 76 with a timing attack1 people · 4 points · first shared 2019 · discussion on HN
- 8Bypassing Cert Pinning in the Steam Mobile App1 people · 3 points · first shared 2019 · discussion on HN
- 9My Brother’s Hamster1 people · 3 points · first shared 2020 · discussion on HN
- 10Play Chrome's dinosaur game with your body and webcam1 people · 2 points · first shared 2021 · discussion on HN
- 11Breaking Electron-Store's Encryption1 people · 2 points · first shared 2021 · discussion on HN
- 12Estimating the heights of New Yorkers from their scuff marks1 people · 1 points · first shared 2026 · 1 comments on HN
- 13An Analysis of Cloudflare's Email Address Obfuscation1 people · 1 points · first shared 2025 · discussion on HN
- 14Detecting incognito mode in Chrome with a timing attack1 people · 1 points · first shared 2019 · 1 comments on HN
- 15Monitor Your Company's Stock Price on Grafana1 people · 1 points · first shared 2025 · discussion on HN
What HN people wrote when they linked it
sarp · 2023-10-19
My starting point was searching for tutorials and asking ChatGPT to implement a torrent parser :) There are great blog posts [0] for building a BitTorrent client. Along the way, I referenced open-source implementations and the BitTorrent Protocol Specification as well [1].
[0] https://blog.jse.li/posts/torrent/
[1] https://www.bittorrent.org/beps/bep_0003.html
cherryteastain · 2025-02-24
Agree with C and old style C++, but going off the flowchart [1] in the article this could be done quite cleanly with boost::asio and C++20 coroutines as well.
[1] https://blog.jse.li/torrent/download.png
techn00 · 2023-10-19
Reminds me of building a bittorrent client in go: https://blog.jse.li/posts/torrent/
throwaway4aday · 2023-10-19
what's with the sign in required, is this a paid tutorial?
Here are some free tutorials:
JS - https://allenkim67.github.io/programming/2016/05/04/how-to-make-your-o…
GO - https://blog.jse.li/posts/torrent/
Python - https://markuseliasson.se/article/bittorrent-in-python/
rakoo · 2022-09-14
I typically only use the spec (https://www.bittorrent.org/beps/bep_0003.html) because it's simple enough, but in case of doubt I guess a third party resource is good. I found https://blog.jse.li/posts/torrent/ to be quite informative about it.
I used to work on a fork of https://github.com/jackpal/Taipei-Torrent with custom features, I found its code to be easy enough to understand
eat_veggies · 2021-07-03
I think you've nailed why copilot is so exciting, so irresponsible, yet so not novel. The other comment in this thread who compares it to tab complete gets it too — tab complete is a dialogue as well, as is every "utterance" in the feedback loop between you and your computer.
The first half of this essay I wrote last year also develops the dialogic nature of computing, using some of the ideas from Soviet philosopher Mikhail Bakhtin: https://blog.jse.li/posts/software/