Low Level Bits
lowlevelbits.org · Personal blog · on HN since 2015
Alex Denisov writes about LLVM, compilers, and testing, including bitcode, learning compilers, and how projects like GNU Make and FreeBSD are tested.
What HN saysCommenters recommend his Bitcode Demystified post for how bitcode works at a low level, and the author also posts there seeking work.
22HN people shared it
9linked it in comments
40stories submitted
1.1Kstory points
12 months agolast shared
2015people per year2026
Most-shared posts
- 1Bitcode Demystified12 people · 56 points · first shared 2015 · 12 comments on HN
- 2How to learn compilers: LLVM Edition3 people · 371 points · first shared 2021 · 26 comments on HN
- 3How GNU Make is tested2 people · 96 points · first shared 2016 · 24 comments on HN
- 4Components: taking a step back from Dependency Management2 people · 31 points · first shared 2015 · 3 comments on HN
- 5Mutation testing based on LLVM (2018) [pdf]2 people · 29 points · first shared 2018 · 6 comments on HN
- 6Type Equality in LLVM2 people · 7 points · first shared 2020 · discussion on HN
- 7System Under Test: How is FreeBSD tested?2 people · 6 points · first shared 2016 · discussion on HN
- 8Building an LLVM-based tool. Lessons learned2 people · 6 points · first shared 2019 · discussion on HN
- 9Reverse Engineering Stickies.app – Low Level Bits2 people · 5 points · first shared 2017 · 1 comments on HN
- 10Bottom-Up CMake Introduction2 people · 4 points · first shared 2019 · 1 comments on HN
- 11Debugging dyld2 people · 3 points · first shared 2018 · discussion on HN
- 12LLVM-Based Mutation Testing System: Request for Comments2 people · 3 points · first shared 2016 · discussion on HN
- 13List of scientific papers found in OpenJDK source code1 people · 198 points · first shared 2016 · 28 comments on HN
- 14How is LLVM tested?1 people · 137 points · first shared 2016 · 22 comments on HN
- 15Parsing Mach-O files1 people · 44 points · first shared 2015 · 5 comments on HN
What HN people wrote when they linked it
AlexDenisov · 2019-06-11
SEEKING WORK
Location: Berlin, Germany (CET/CEST)
Remote: yes
Skills: LLVM, reverse-engineering, software hardening
Portfolio: https://lowlevelbits.org/projects
Website: https://lowlevelbits.org
Email: [email protected]
Shank · 2016-10-23
It's worth noting that there have been discussions about bitcode and ARM in the past, notably ATP 122 and Bitcode Demystified. Both are worth listening to and reading respectively if you're interested in how this stuff works on a low level:
http://atp.fm/episodes/122
http://lowlevelbits.org/bitcode-demystified/
tiu · 2025-11-08
The comments are wildly fragmented in this thread. I agree with @torginus, the article has less and less of anything useful to people that want to get into compilers.
Anyways, the "Who .. hires compiler engineer?" section is fairly vague in my opinion, so: AMD, Nvidia, Intel, Apple, Google definitely hire for compiler positions. These hire fairly 'in-open' so probably the best bets all around. Aside from this, Jane Street and Bloomberg also do hire at the peak tier but for that certain language. The off beat options are: Qualcomm, Modular, Amazon (AWS) and ARM. Also see, https://mgaudet.github.io/CompilerJobs/
I seriously attempted getting into compilers last year before realising it is not for me but during those times it felt like people who want to be compiler devs are much much more in number compared to jobs that exist (yes exist, not vacant).
The common way to get going is to do LLVM. Making a compiler is great and all but too many people exist with a lox interpreter-compiler or something taken from the two Go books. Contributing to LLVM (or friends like Carbon, Swift, Rust) or atleast some usage experience is the way. The other side of this is doing GNU GCC and friends but I have seen like only one opening that mentions this way as being relevant. University level courses are rarely of any use.
Lastly, LLVM meetups/conferences are fairly common at most tech hubs and usually have a jobs section listing all requirements.
A few resources since I already made this…
inkyoto · 2023-05-15
We kind of have it, except it does not seem to have taken off and has been relegated to a second-class citizen at best.
I am talking about LLVM Bitcode[0] – when the binary product (a executable or .o/.a files) is shipped in the LLVM IR representation and then is «AOT»'d into the final product (a final executable) that can, for instance, take advantage of the latest ISA features (armv9, Zen23, POWER18 or new RISC-V extensions) with zero effort on the end user part. For a while, Apple even encouraged iOS devs to upload their apps into the App Store in the Bitcode format. That has all but ceased to exist for not obvious reasons about a year or two ago. Technically, if Apple chose to transition onto an alternative ISA again (say, RISC-V), at least iOS apps would not require recompilation and would get statically converted to the new ISA at the download time.
Imagine a world where there would be a single Linux distribution for a given architecture shipped in the Bitcode format (sans the small arch specific boot area and the AOT engine), for instance.
[0] https://lowlevelbits.org/bitcode-demystified/
[1] https://www.highcaffeinecontent.com/blog/20190518-Translating-an-ARM-i…
egsmi · 2020-12-28
In theory that’s what bitcode protects against.
Today, that doesn’t save binaries not distributed through the store or ones you compiled yourself via other compiler chains.
It is possible to change that. One could even imagine it as part of the loading procedure.
https://lowlevelbits.org/bitcode-demystified/
threeseed · 2020-01-29
Lots of suspicion because of the move to force App Store apps to have Bitcode enabled for submission. This would allow them to potentially transpile x86 apps for ARM:
https://lowlevelbits.org/bitcode-demystified/
Also as we've seen with iPad Pro + AWS M6G instances the performance is now there to power desktops.
sitharus · 2017-08-02
bitcode is indeed a thing, its a file format for LLVM IR https://lowlevelbits.org/bitcode-demystified/
It's not really a bytecode as it's not interpreted, but that's debatable.
coldtea · 2016-09-17
>Apple adds features like PCI-e for discrete GPU support (ok, they did in A9), and if Ax series performance starts to exceed corresponding Intel mobile parts by >50% (enough to compensate for the overhead of binary translation for legacy x86 apps).
When it happens, it might not need binary translation.
http://lowlevelbits.org/bitcode-demystified/
fowl2 · 2016-01-12
I think he's refering to things like Apple's "bitcode".
http://lowlevelbits.org/bitcode-demystified/