Partially, yes. If your portfolio is 5 small web applications or Python scripts that AI can make in half an hour, their weight as a “demonstration of skills” drops.So, the fact that you can do it manually is no longer impressive.
What becomes important now:
Architecture at scale — AI does not yet know all the nuances of large systems, distributed services, performance optimization, and security.
Business logic integration — understanding how the business actually works, where the pain points are, how users interact with the product.
Creativity and unique concepts — AI can create boilerplate, but it doesn't always understand that it is creating something fundamentally new.
Moral: AI takes away the “simple feats” but opens up new space for true engineering mavens. If you can do something that AI can’t easily replicate, your portfolio gets even cooler.
Of course, you still did a great job, I also work with LLM, and I know that there are a lot of difficulties with them, and sometimes it even seems that it is better to write the code yourself than to explain to the AI what you need to improve or make.
Cool project, lightweight and easy to drop into a codebase I have a few ideas.
1. Zone name storage – right now you store a raw char. If it points to a stack/local string it can blow up . Better to use const char (if always literals) or strdup.
2. Thread-safety – the global arrays (prof_zones, prof_zones_stack) aren’t protected. In multithreaded workloads everything breaks. You could make them thread_local.
3. Cycles vs time – __rdtsc() isn’t always stable (TurboBoost, NUMA, CPU scaling). clock_gettime() is more portable. Might be nice to let the user pick via a macro.
4. Output – the printf("[%16s]...") is old-school. Sorting zones by total_secs or total_cycles would make hot spots pop out immediately.
5. Limits – PROF_MAX_NUM_ZONES = 256 is small for bigger projects. Could malloc and grow dynamically.
6. Overhead – the profiler doesn’t subtract its own overhead (push/pop, clock reads), so absolute numbers are inflated. Relative numbers are still valid, though.
Wow, you wrote 65 thousand lines of code yourself? Did I understand correctly? If so, you're really cool, and how much time did you invest in the project?
Good point. I just thought that a direct link or summary of the formal reasoning would have made it easier for readers unfamiliar with the topic. But fair enough, the linked paper does cover it.
1. Why exactly n = 2 minimizes π. The article shows this graphically, but there is no formal proof (although the Adler & Tanton paper is mentioned). It would be interesting to understand why this is the case mathematically.
2. How to calculate π for n-metrics numerically. The general idea of "divide the circle into segments and calculate the length by the metric" is explained, but the exact algorithm or formulas are not shown.
3. What happens when n → 0. It mentions that "the concept of distance breaks down," but it does not explain exactly how and why this is so.
For me, a project feels complete when everything is done—full src, tests, and documentation. Most of my unfinished projects usually have only half of the src implemented, so that’s why they feel “stuck.”
There’s no connection between my projects; each new idea is totally unique and unrelated to previous ones.
I’ve worked on quite a variety: a new data compression algorithm, binary optimization, a logging library, an alternative to giflib, and many other library experiments.
When the time comes when this will be used all over the world, there will be more pollution, we need not only a new way of recycling, but also for the people to be better.
To be honest: for use as a local cache/S3 accelerator for large files – it’s fine. The API is simple but flexible. The only point is that the documentation is in English, and you need to understand how “hedged fe” works.
It looks pretty cool, and I liked the automatic support for visual charts to make everything easy to see, it lets you know everything quickly and at once, it's pretty useful.
But when I opened it on my phone, the screen twitched for some reason when generating the message.