Reddit Programming – Telegram
Reddit Programming
212 subscribers
1.22K photos
125K links
I will send you newest post from subreddit /r/programming
Download Telegram
My 18-Month Journey Building a SaaS App
https://www.reddit.com/r/programming/comments/1ncl45v/my_18month_journey_building_a_saas_app/

<!-- SC_OFF -->I spent 18 months building RekoSearch, a SaaS that lets you semantically search photos, videos, documents, and audio. A project I had initially planned to take only 3-4 months, but here we are, 18 months and 60,000 LOC later... Building it taught me more than any desktop project could. I learned a ton about infrastructure, scalability, web development, Kubernetes and AWS, in particular. For those more interested in the technical details, including extensive handmade Excalidraw diagrams, here’s the repository: https://github.com/Obscurely/RekoSearch-Public <!-- SC_ON --> submitted by /u/CrismarucAdrian (https://www.reddit.com/user/CrismarucAdrian)
[link] (https://www.adriancrismaruc.com/blog/building-rekosearch-journey) [comments] (https://www.reddit.com/r/programming/comments/1ncl45v/my_18month_journey_building_a_saas_app/)
Engineering a High-Performance Go PDF Microservice
https://www.reddit.com/r/programming/comments/1ncl9ws/engineering_a_highperformance_go_pdf_microservice/

<!-- SC_OFF -->I built GoPdfSuit, an open-source web service for generating PDFs, and wanted to share the technical design that makes it exceptionally fast and efficient. My goal was to create a lean alternative to traditional, resource-heavy PDF solutions. Core Technical Design The core of the service is built on Go 1.23+ and the Gin framework for their high performance and concurrency capabilities. Unlike many other services that rely on disk-based processing, GoPdfSuit is a high-performance in-memory PDF generator. This approach is crucial to its speed, as it completely bypasses slow disk I/O operations, leading to ultra-fast response times of sub-millisecond to low-millisecond. For the actual HTML-to-PDF and HTML-to-image conversions, the service leverages the power of wkhtmltopdf and wkhtmltoimage. This allows it to accurately render web pages and HTML snippets into high-quality PDFs and images. The project demonstrates how intelligently integrating and managing a powerful external tool like wkhtmltopdf can lead to a highly optimized and performant solution. Key Features and Implementation Details Template-Driven System: GoPdfSuit utilizes a JSON-driven templating system. This design separates data from presentation, making it simple to generate complex, dynamic PDFs by just sending a JSON payload to the REST API. Flexible PDF Generation: The service supports multi-page documents with automatic page breaks and custom page sizes, giving developers a high degree of control over the output. It also includes support for AcroForm and XFDF data, enabling the filling out of interactive forms programmatically. Deployment: It's deployed as a single, statically compiled binary, making it extremely easy to get up and running in any environment, from a local machine to a containerized cloud deployment. I'm happy to discuss the implementation details, the challenges of orchestrating wkhtmltopdf in a high-concurrency environment, or the design of the in-memory processing pipeline. GitHub: https://github.com/chinmay-sawant/gopdfsuit Project Page: https://chinmay-sawant.github.io/gopdfsuit/ <!-- SC_ON --> submitted by /u/chinmay06 (https://www.reddit.com/user/chinmay06)
[link] (https://chinmay-sawant.github.io/gopdfsuit/) [comments] (https://www.reddit.com/r/programming/comments/1ncl9ws/engineering_a_highperformance_go_pdf_microservice/)
Isn’t Kubernetes enough?
https://www.reddit.com/r/programming/comments/1ncndp2/isnt_kubernetes_enough/

<!-- SC_OFF -->Many devs ask me: ‘Isn’t Kubernetes enough?’ I have done the research to and have put my thoughts below and thought of sharing here for everyone's benefit and Would love your thoughts! This 5-min visual explainer https://youtu.be/HklwECGXoHw showing why we still need API Gateways + Istio — using a fun airport analogy. Read More at:
https://faun.pub/how-api-gateways-and-istio-service-mesh-work-together-for-serving-microservices-hosted-on-a-k8s-8dad951d2d0c https://medium.com/faun/why-kubernetes-alone-isnt-enough-the-case-for-api-gateways-and-service-meshes-2ee856ce53a4 <!-- SC_ON --> submitted by /u/mmk4mmk_simplifies (https://www.reddit.com/user/mmk4mmk_simplifies)
[link] (https://youtu.be/HklwECGXoHw) [comments] (https://www.reddit.com/r/programming/comments/1ncndp2/isnt_kubernetes_enough/)
JEP 401: Value classes and Objects (Preview) has just been submitted!
https://www.reddit.com/r/programming/comments/1nd8vob/jep_401_value_classes_and_objects_preview_has/

<!-- SC_OFF -->The JDK it is coming out in is still not known. However, this is a major milestone to have crossed. Plus, a new Early Access build of Valhalla (up-to-date with the current JDK, presumably) will go live soon too. Details in the linked post. And for those unfamiliar, u/brian_goetz (https://www.reddit.com/u/brian_goetz) is the person leading the Project Valhalla effort. So, comments by him in the linked post can help you separate between assumptions by your average user vs the official words from the Open JDK Team themselves. u/pron98 (https://www.reddit.com/u/pron98) is another OpenJDK Team member commenting in the linked post. <!-- SC_ON --> submitted by /u/davidalayachew (https://www.reddit.com/user/davidalayachew)
[link] (https://www.reddit.com/r/java/comments/1nckdwr/jep_401_value_classes_and_objects_preview_has/) [comments] (https://www.reddit.com/r/programming/comments/1nd8vob/jep_401_value_classes_and_objects_preview_has/)
Comparing Virtual Threads vs Platform Threads in Spring Boot using JMeter Load Test
https://www.reddit.com/r/programming/comments/1nd95t0/comparing_virtual_threads_vs_platform_threads_in/

<!-- SC_OFF -->I have created one video lesson on Spring Boot Virtual Threads vs Platform Threads Performance with JMeter Load Testing . Link: https://youtu.be/LDgriPNWCjY Here I checked how Virtual Threads actually perform compared to Platform Threads in a real Spring Boot app in case of IO Based Operations .
For the setup , I ran two instances of the same application: First one - with Virtual Threads enabled Second one - Same application with the default Tomcat thread pool (Platform Threads) running on different port Then I used JMeter to hit both application with increasing load (starting around 200 users/sec, then pushing up to 1000+). I have also captured the side-by-side results ( like the graphs, throughput, response times) . Observations: With Platform Threads, once Tomcat hit its around 200 thread pool limit, response times started getting worse gradually With Virtual Threads, the application did scale pretty well - throughput was much higher and the average response timesremained low. The difference became more more distinct when I was running longer tests with heavier load. One caveat: this benefit really shows up with I/O-heavy requests (I even added a Thread.sleep to simulate work). As expected ,for CPU-heavy stuff, Virtual Threads don’t give the same advantage. <!-- SC_ON --> submitted by /u/mrayandutta (https://www.reddit.com/user/mrayandutta)
[link] (https://youtu.be/LDgriPNWCjY) [comments] (https://www.reddit.com/r/programming/comments/1nd95t0/comparing_virtual_threads_vs_platform_threads_in/)
We messed up our query builder for years. Here's the story of how we fixed it and the lessons we earned along the way.
https://www.reddit.com/r/programming/comments/1nddp6e/we_messed_up_our_query_builder_for_years_heres/

<!-- SC_OFF -->I want to share a story from our team at SigNoz. For a long time, our platform had a mildy-frustrating query builder. In the early days, we had separate interfaces for logs, traces, and metrics, which led to a fragmented experience. Our next attempt to unify it with a SQL-based UI was fundamentally flawed, especially for logs, as it couldn't handle complex boolean logic or parentheses. After 2 years of accumulating issues and user feedback, we realized we had to completely overhaul our approach. A key lesson for us was that no matter how technically "obvious" a feature seems, if it isn't discoverable, it's useless. We also learned not to make assumptions on behalf of users, as it only leads to a frustrating and surprising experience. This led to Query Builder V5, a full architectural rewrite that not only fixed the core issues but also allowed us to pay off a lot of UX debt. It was a humbling journey, but the result is a tool that allows for complex searching and is so intuitive that some users have voluntarily replaced their raw ClickHouse SQL queries with it :) yay <!-- SC_ON --> submitted by /u/ExcitingThought2794 (https://www.reddit.com/user/ExcitingThought2794)
[link] (http://signoz.io/blog/query-builder-v5/) [comments] (https://www.reddit.com/r/programming/comments/1nddp6e/we_messed_up_our_query_builder_for_years_heres/)
C++ DataFrame new version (3.6.0) is out
https://www.reddit.com/r/programming/comments/1ndeyjx/c_dataframe_new_version_360_is_out/

<!-- SC_OFF -->C++ DataFrame (https://github.com/hosseinmoein/DataFrame) new version includes a bunch of new analytical and data-wrangling routines. But the big news is a significant rework of documentations both in terms of visuals and content. Your feedback is appreciated. <!-- SC_ON --> submitted by /u/hmoein (https://www.reddit.com/user/hmoein)
[link] (https://github.com/hosseinmoein/DataFrame) [comments] (https://www.reddit.com/r/programming/comments/1ndeyjx/c_dataframe_new_version_360_is_out/)
A Git like Database
https://www.reddit.com/r/programming/comments/1ndnjho/a_git_like_database/

<!-- SC_OFF -->I just came across a database called DoltDB , which presented itself as an Agent Database at the AI Agent Builder Summit. I looked into their documentation to understand what they mean by git-like. It essentially wraps the command line with a dolt CLI, so you can run commands like dolt diff, dolt merge, and dolt checkout. That’s an interesting concept. I’m still trying to figure out the real killer use case for this feature, but so far I haven’t found any clear documentation that explains it. docs $ dolt sql -q "insert into docs values (10,10)" Query OK, 1 row affected docs $ dolt diff diff --dolt a/docs b/docs --- a/docs @ 2lcu9e49ia08icjonmt3l0s7ph2cdb5s +++ b/docs @ vpl1rk08eccdfap89kkrff1pk3r8519j +-----+----+----+ | | pk | c1 | +-----+----+----+ | + | 10 | 10 | +-----+----+----+ docs $ dolt commit -am "Added a row on a branch" commit ijrrpul05o5j0kgsk1euds9pt5n5ddh0 Author: Tim Sehn Date: Mon Dec 06 15:06:39 -0800 2021 Added a row on a branch docs $ dolt checkout main Switched to branch 'main' docs $ dolt sql -q "select * from docs" +----+----+ | pk | c1 | +----+----+ | 1 | 1 | | 2 | 1 | +----+----+ docs $ dolt merge check-out-new-branch Updating f0ga78jrh4llc0uus8h2refopp6n870m..ijrrpul05o5j0kgsk1euds9pt5n5ddh0 Fast-forward docs $ dolt sql -q "select * from docs" +----+----+ | pk | c1 | +----+----+ | 1 | 1 | | 2 | 1 | | 10 | 10 | +----+----+ <!-- SC_ON --> submitted by /u/No_Lock7126 (https://www.reddit.com/user/No_Lock7126)
[link] (https://docs.dolthub.com/concepts/dolt/git/merge) [comments] (https://www.reddit.com/r/programming/comments/1ndnjho/a_git_like_database/)