<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: bytefish</title><link>https://news.ycombinator.com/user?id=bytefish</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 06 Apr 2026 04:39:37 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=bytefish" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by bytefish in "Eight years of wanting, three months of building with AI"]]></title><description><![CDATA[
<p>This resonates with my experience.<p>I have several Open Source projects and wanted to refactor them for a decade. A week ago I sat down with Google Gemini and completely refactored three of my libraries. It has been an amazing experience.<p>What’s a game changer for me is the feedback loop. I can quickly validate or invalidate ideas, and land at an API I would enjoy to use.</p>
]]></description><pubDate>Sun, 05 Apr 2026 18:20:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=47652300</link><dc:creator>bytefish</dc:creator><comments>https://news.ycombinator.com/item?id=47652300</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47652300</guid></item><item><title><![CDATA[New comment by bytefish in "Decisions that eroded trust in Azure – by a former Azure Core engineer"]]></title><description><![CDATA[
<p>The first and most important lesson, that I try to each every young developer starting in the industry: Go home after clocking in your hours negotiated in your contract. Drop your pen. Go home. Sleep well.<p>And I hope, that every sensible senior developer in here does the same. Lead by example. Maybe it would prevent a few burnouts in this industry.<p>And if you are a manager, then send your people home after they have clocked in their negotiated hours. For their own well-being. It’s your responsibility. And if it’s not working, then force them to go home.<p>I hope you are better by now and got through the tough time. All the best for you!</p>
]]></description><pubDate>Fri, 03 Apr 2026 09:07:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=47624599</link><dc:creator>bytefish</dc:creator><comments>https://news.ycombinator.com/item?id=47624599</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47624599</guid></item><item><title><![CDATA[New comment by bytefish in "Some things just take time"]]></title><description><![CDATA[
<p>As for the tree analogy and open source.<p>Yes, you cannot build years of community and trust in a weekend. But sometimes it's totally sufficient to plant a seed, give it some small amounts of water and leave it on its own to grow. Go ask my father having to deal with a huge maple tree, that I’ve planted 30 years ago and never cared for it.<p>Open Source projects sometimes work like this. I've created a .NET library for Firebase Messaging in a weekend a few years ago… and it grew on its own with PRs flowing in. So if your weekend project generates enough interest and continues to grow a community without you, what’s the bad thing here? I don’t get it.<p>Sometimes a tree dies and an Open Source project wasn’t able to make it.<p>That said, I’ve just finished rewriting four libraries to fix long standing issues, that I haven’t been able to fix for the past 10 years.<p>It's been great to use Gemini as a sparring partner to fix the API surface of these libraries, that had been problematic for the past 10 years. I was so quick to validate and invalidate ideas.<p>Once being one of the biggest LLM haters I have to say, that I immensely enjoy it right now.</p>
]]></description><pubDate>Sat, 21 Mar 2026 19:16:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=47470287</link><dc:creator>bytefish</dc:creator><comments>https://news.ycombinator.com/item?id=47470287</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47470287</guid></item><item><title><![CDATA[New comment by bytefish in "We mourn our craft"]]></title><description><![CDATA[
<p>To me, it’s super exciting to play ping pong with ideas up until I arrive at an architecture and interfaces, that I am fine with.<p>My whole life I have been reading other people’s code to accumulate best practices and improve myself. While a lot of developers start with reading documentation, I have always started with reading code.<p>And where I was previously using the GitHub Code Search to eat up as much example code as I could, I am now using LLMs to speed the whole process up. Enormously. I for one enjoy using it.<p>That said, I have been in the industry for more than 15 years. And all companies I have been at are full of data silos, tribal knowledge about processes and organically grown infrastructure, that requires careful changes to not break systems you didn’t even know about.<p>Actually most of my time isn’t put into software development at all. It’s about trying to know the users and colleagues I work with, understand their background and understand how my software supports them in their day to day job.<p>I think LLMs are very, very impressive, but they have a long way to go to reach empathy.</p>
]]></description><pubDate>Sat, 07 Feb 2026 20:14:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=46927450</link><dc:creator>bytefish</dc:creator><comments>https://news.ycombinator.com/item?id=46927450</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46927450</guid></item><item><title><![CDATA[New comment by bytefish in "The lost art of XML"]]></title><description><![CDATA[
<p>What I miss the most about the XML ecosystem is the tooling. And I think, this is what most people are sentimental about. There was a time it was so easy to generate contracts using XSDs and it made it easy to validate the data. OpenAPI slowly reaches parity to what I worked with in 2006.<p>But what I do not miss is the over-engineering that happened in the ecosystem, especially with everything SOAP. Yes, when it worked, it worked. But when it didn’t work, which was often the case when integrating different enterprise systems, then well… lord have mercy on me.<p>Sometimes I still use XSD to define a schema for clients, because in some areas there’s still better tooling for XML. And it gives me the safety of getting valid input data, if the XML couldn’t be validated.<p>And in the enterprise world, XML is far from being dead anyways.</p>
]]></description><pubDate>Fri, 23 Jan 2026 18:09:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=46735669</link><dc:creator>bytefish</dc:creator><comments>https://news.ycombinator.com/item?id=46735669</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46735669</guid></item><item><title><![CDATA[Show HN: Designing State Machines]]></title><description><![CDATA[
<p>I often want to quickly draw a state machine diagram to visualize my application state transitions. Full-blown solutions like draw.io make it hard to get all arrows and labels aligned nicely, so I wrote a very stripped down application to do it.<p>You can save, load and export your diagrams. Nothing is stored on a server, and localstorage is used to persist the state between page refreshes.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46654283">https://news.ycombinator.com/item?id=46654283</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 17 Jan 2026 01:02:22 +0000</pubDate><link>https://github.com/bytefish/fsm-designer</link><dc:creator>bytefish</dc:creator><comments>https://news.ycombinator.com/item?id=46654283</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46654283</guid></item><item><title><![CDATA[New comment by bytefish in "[dead]"]]></title><description><![CDATA[
<p>Delete only works within a time frame and if there are no comments yet. I didn’t think quick enough and instead of posting the link twice I’ve edited it to this. Lots of bad decisions on my side. Now it’s also too late to edit.</p>
]]></description><pubDate>Fri, 16 Jan 2026 23:57:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=46653804</link><dc:creator>bytefish</dc:creator><comments>https://news.ycombinator.com/item?id=46653804</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46653804</guid></item><item><title><![CDATA[Show HN: Routing with OSM, PgRouting and MapLibre]]></title><description><![CDATA[
<p>I’ve been working on an example application for routing with OSM data. The repository makes it easy to experiment with the implementation. The Angular Frontend, uses maplibre-gl for displaying the map and visualizing the routes.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46650753">https://news.ycombinator.com/item?id=46650753</a></p>
<p>Points: 4</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 16 Jan 2026 19:13:59 +0000</pubDate><link>https://github.com/bytefish/PgRoutingExperiments</link><dc:creator>bytefish</dc:creator><comments>https://news.ycombinator.com/item?id=46650753</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46650753</guid></item><item><title><![CDATA[New comment by bytefish in "2026 will be my year of the Linux desktop"]]></title><description><![CDATA[
<p>I stand corrected. I didn’t know the Home Version has no option to disable it. You are right for calling me out.</p>
]]></description><pubDate>Sat, 03 Jan 2026 09:25:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=46474512</link><dc:creator>bytefish</dc:creator><comments>https://news.ycombinator.com/item?id=46474512</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46474512</guid></item><item><title><![CDATA[New comment by bytefish in "2026 will be my year of the Linux desktop"]]></title><description><![CDATA[
<p>It takes literally a click to deactivate it though. One could argue about Bing Search being the default, but I didn’t run the user surveys to see, which is best for the average user.</p>
]]></description><pubDate>Sat, 03 Jan 2026 06:19:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=46473293</link><dc:creator>bytefish</dc:creator><comments>https://news.ycombinator.com/item?id=46473293</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46473293</guid></item><item><title><![CDATA[New comment by bytefish in "Log level 'error' should mean that something needs to be fixed"]]></title><description><![CDATA[
<p>Making software is 20% actual development and 80% is maintenance.  Your code and your libraries need to be easy to debug, and this means logs, logs, logs, logs and logs. The more the better. It makes your life easy in the long run.<p>So the library you are using fires too many debug messages? You know, that you can always turn it off by ignoring specific sources, like ignoring namespaces? So what exactly do you lose? Right. Almost nothing.<p>As for my code and libraries I always tend to do both, log the error and then throw an exception. So I am on the safe side both ways. If the consumer doesn’t log the exception, then at least my code does it. And I give them the chance to do logging their way and ignore mine. I am doing a best-guess for you… thinking to myself, what’s an error when I’d use the library myself.<p>You don’t trust me? Log it the way you need to log it, my exception is going to transport all relevant data to you.<p>This has saved me so many times, when getting bug reports by developers and customers alike.<p>There are duplicate error logs? Simply turn my logging off and use your own. Problem solved.<p>If it is a program level error, maybe a warning and returning the error is the correct way to do. Maybe it’s not? It depends on the context.<p>And this basically is the answer to any software design question: It depends.</p>
]]></description><pubDate>Sun, 21 Dec 2025 07:06:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=46342861</link><dc:creator>bytefish</dc:creator><comments>https://news.ycombinator.com/item?id=46342861</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46342861</guid></item><item><title><![CDATA[New comment by bytefish in "Estimates are difficult for developers and product owners"]]></title><description><![CDATA[
<p>I have never been in a project, where estimates were spot-on, and I do this for 15 years now. By now hundreds of features have floated by the river and hundreds of meetings have been held.<p>Estimations are often complicated, because there are way too many variables involved to give accurate estimates. Politics within companies, restructuring of teams. The customer changes their mind, the reality you've expected is slightly different, your architecture has shortcomings you find out late in a project, the teams your work depends on disband, … and a million other things.<p>Theoretically you could update your estimates in a SCRUM meeting, sure, but to be honest, this has always been nothing but a fantasy. We rarely do work in a void. Our features have been communicated higher up and have already been pitched to customers. In a fully transparent and open organization you might update your estimates, and try to explain this to your customers. In reality though? I have never seen this.<p>While this sounds very negative, my take on it is not to waste too much time on estimates. Give a range of time you expect your features to fall into, and go on with getting your work done.</p>
]]></description><pubDate>Mon, 08 Dec 2025 05:58:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=46188879</link><dc:creator>bytefish</dc:creator><comments>https://news.ycombinator.com/item?id=46188879</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46188879</guid></item><item><title><![CDATA[New comment by bytefish in "GitHub to Codeberg: my experience"]]></title><description><![CDATA[
<p>I have once migrated my repositories to Codeberg, but have moved back to GitHub.<p>While I despise a lot of features on GitHub, Codeberg is sadly lacking the gravitational pull and visibility. I know, someone has to start, but as a single maintainer I need collaboration to keep the projects alive.</p>
]]></description><pubDate>Mon, 01 Dec 2025 07:51:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=46104663</link><dc:creator>bytefish</dc:creator><comments>https://news.ycombinator.com/item?id=46104663</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46104663</guid></item><item><title><![CDATA[New comment by bytefish in "FlightAware Map Design (2024)"]]></title><description><![CDATA[
<p>It’s great to see Apache Baremaps being mentioned. It’s a great project and I saw its first iterations. Really amazing they have built a community around it.<p>Although my library in Apache Baremaps probably plays a minor role only (PgBulkInsert for Postgres COPY protocol), it’s great to see it chugging on all this data day by day.</p>
]]></description><pubDate>Sun, 02 Nov 2025 13:12:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=45790047</link><dc:creator>bytefish</dc:creator><comments>https://news.ycombinator.com/item?id=45790047</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45790047</guid></item><item><title><![CDATA[New comment by bytefish in "CLI to manage your SQL database schemas and migrations"]]></title><description><![CDATA[
<p>If you are using SQL Server, then SQL Server Database Projects are an amazing tool to work with. I found them to generate high-quality migration scripts and it makes it easy to diff against an existing database.<p>ORMs are good up until the point you need to include SQL Views, Stored Procedures, Functions, User-defined Types… which is usually the point the ORM abstractions begin to crack (and every SQL Server database I use include them).<p>For PostgreSQL I usually hand-write the scripts, because it is easier, than fighting against an ORM.<p>I heard the Redgate tooling is also great to work with, but I’ve never used it personally.</p>
]]></description><pubDate>Sun, 02 Nov 2025 09:59:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=45789141</link><dc:creator>bytefish</dc:creator><comments>https://news.ycombinator.com/item?id=45789141</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45789141</guid></item><item><title><![CDATA[New comment by bytefish in "NPM flooded with malicious packages downloaded more than 86k times"]]></title><description><![CDATA[
<p>It provides a runtime, that sandboxes your application and requires you to give explicit permissions for file system operations and network requests.<p>This limits the attack surface, when it comes to installing malicious dependencies, that npm happily installs for you.<p>So yes, I was wrong and my previous comment a hyperbole. A big problem is npm, and not JavaScript.<p>My point about the staggering amount of dependencies still holds though.</p>
]]></description><pubDate>Fri, 31 Oct 2025 11:15:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=45770745</link><dc:creator>bytefish</dc:creator><comments>https://news.ycombinator.com/item?id=45770745</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45770745</guid></item><item><title><![CDATA[New comment by bytefish in "NPM flooded with malicious packages downloaded more than 86k times"]]></title><description><![CDATA[
<p>I feel super uneasy developing Software with Angular, Vue or any framework using npm. The amount of dependencies these frameworks take is absolutely staggering. And just by looking at the dependency tree and thousands of packages in my node_modules folder, it is a disaster waiting to happen. You are basically one phishing attack on a poor open source developer away from getting compromised.<p>To me the entire JavaScript ecosystem is broken. And a typo in your “npm -i” is sufficient to open up yourself for a supply-chain attack. Could the same happen with NuGet or Maven? Sure!<p>But at least in these languages and environments I have a huge Standard Library and very few dependencies to take. It makes me feel much more in control.</p>
]]></description><pubDate>Fri, 31 Oct 2025 05:54:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=45768822</link><dc:creator>bytefish</dc:creator><comments>https://news.ycombinator.com/item?id=45768822</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45768822</guid></item><item><title><![CDATA[New comment by bytefish in "LINQ and Learning to Be Declarative"]]></title><description><![CDATA[
<p>Once you start with LINQ you basically see it everywhere. It makes you think different about structuring your code, which is a good thing. It makes you think about immutability and pure functions, leading to more robust code.<p>But it’s also a fine line, when to use it and when not to. While LINQ is easy to read and make sense of, it is far from being easy to debug. Especially on inexperienced teams I tend to limit my LINQ usage and try to write more “debuggable” code. But that’s my approach, I would love to hear other peoples thoughts on it.</p>
]]></description><pubDate>Sun, 19 Oct 2025 07:27:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=45632569</link><dc:creator>bytefish</dc:creator><comments>https://news.ycombinator.com/item?id=45632569</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45632569</guid></item><item><title><![CDATA[New comment by bytefish in "Do the simplest thing that could possibly work"]]></title><description><![CDATA[
<p>For a lot of problems it’s a good idea to talk to customers and stakeholders, and make the complexity very transparent.<p>Maybe some of the edge cases only apply to 2% of the customers? Could these customers move to a standard process? And what’s the cost of implementing, testing, integrating and maintaining these customer-specific solutions?<p>This has actually been the best solution for me to reduce complexity in my software, by talking to customers and business analysts… and making the complexity very transparent by assigning figures to it.</p>
]]></description><pubDate>Sat, 30 Aug 2025 12:14:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=45073964</link><dc:creator>bytefish</dc:creator><comments>https://news.ycombinator.com/item?id=45073964</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45073964</guid></item><item><title><![CDATA[New comment by bytefish in "Microsoft is open sourcing Windows 11's UI framework"]]></title><description><![CDATA[
<p>We also settled on WPF for a new LOB Desktop application, this validates the decision. If you combine WPF with the CommunityToolkit MVVM, it’s a very nice framework to develop with.</p>
]]></description><pubDate>Sat, 02 Aug 2025 18:59:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=44770344</link><dc:creator>bytefish</dc:creator><comments>https://news.ycombinator.com/item?id=44770344</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44770344</guid></item></channel></rss>