Bruno
Bruno is a Git-integrated, fully offline, and open-source API client
The online whiteboard of Kristofer Palmvik
Bruno is a Git-integrated, fully offline, and open-source API client
Under Black Week misslyckades många företag med att skapa en relevant och engagerande kundupplevelse. I stället för att använda den tillgängliga datan om kunders tidigare köp eller preferenser, skickade företagen generiska erbjudanden i massutskick. Inte ett enda av de mejl jag fick under veckan var personaliserat eller kopplat till mina tidigare köp.
No small set of metrics can tell you you’re doing a good job. They’re a limited clue. This is why I have a resistance to measuring my work. Reducing my job to numbers ignores most of the most significant parts.
Two to six people is ideal. More than this and you have a department, which is what we're trying to avoid. Less than two people and, well, you don’t have a team.
Glöd eller levebröd är en bok om organisationskultur. Den är en hyllning till människans inneboende drivkrafter, men också en påminnelse om människors behov av ett syfte. Under januari kan du ladda ner den gratis!
A set of high-level guiding principles for approaching web accessibility
I suspect that we could benefit from accepting his theory as a law: the ultimate goal of software design should be (organizational) knowledge building. So the next time you choose a name, or structure a project, or ponder whether to write or omit a certain comment, rather than thinking in terms of the burden on future maintainers, think: how much will this decision affect—how much will it help or hinder—their building of a mental model of the system, of the business, of the world.
We could think of that category as things I’ve found. That’s the purpose of my link blog: it’s an ongoing log of things I’ve found—effectively a combination of public bookmarks and my own thoughts and commentary on why those things are interesting.
Turn websites into LLM-ready data Power your AI apps with clean data crawled from any website. It's also open-source.
Since email is static, we faced the challenge of embedding something dynamic (an 𝕏 post). Given that email-safe HTML cannot embed an 𝕏 post, so we needed to find a way to convert any post to an email-friendly form.
Companies with relatively young, high-quality codebases benefit the most from generative AI tools, while companies with gnarly, legacy codebases will struggle to adopt them. In other words, the penalty for having a ‘high-debt’ codebase is now larger than ever.
For EMs, wartime means leading low-morale teams through ambiguity, hard constraints, frequently changing goals, and intense pressure to perform. It can feel like working in a house on fire. What can an EM do in this situation?
If you are using LLMs, or if you’re directed to do so, you’re about to turn from an author of your own code into a reviewer and maintenance programmer — and maybe a tester, too — for a barely competent programmer producing mountains of mediocre and unreliable code.
Billions of people use our tools every day. We possess the skills to make those tools shine. So, what if we made the world a better place simply by building great ones?
Not sure what colors to use in your designs or where to use them? Happy Hues is a color palette inspiration site that acts as a real world example as to how the colors could be used in your design projects.
When you have a problem with an LLM, prompting should ideally be your first approach. Reach for finetuning, or smarter more expensive models once your prompts are as good as they can be - or you're leaving money and performance on the table.
Features are a lot like problems. Problems have problem chains (i.e. problems, solutions, and new problems weave an endless chain that starts over and over again) and features have feature loops (features that lead to more features).
An exclusive list of the most promising SwedenTech startups that have also reached significant valuation milestones over the previous few years.
Getting out of the daily grind of people's conjecture about what might happen and what is likely to happen and instead looking at what actually happens after the fact was a lot easier on my mind.
TrunkVer is a versioning scheme for continuously-delivered, trunk-based applications and systems that don't follow a release scheme. It is a syntax-compatible drop-in replacement for SemVer and replaces the version with meaningful meta data, telling you at a glance what the artifact is, when it was built and where you may find the build log.
If your company is sick, you need to fix it. That means courageous decisions only you can make. You will need to dive in and operate sometimes. That doesn’t mean you create bottlenecks by deciding everything for years to come.
Coops nya AI-reklam har mötts av en kritikstorm på sociala medier. Nu tar matjätten åt sig av kritiken.
One solution to deploy serverless workloads everywhere - Serverless Container Framework (SCF) is a unified development and deployment experience for containers on serverless platforms.
React Scan automatically detects performance issues in your React app. Previously, existing tools required lots of code change, lacked simple visual cues, and didn't have a simple, portable API
35+ fully open-source, accessible components for dashboards and charts. Built with React, Tailwind CSS and Radix UI.
Rails 7.1 adds the ability to define the local variables a template can accept. This helps in precompiling templates during application startup rather than at runtime. To achieve this, we have to add a locals magic comment inside the partial.
We help you find European alternatives for digital service and products, like cloud services and SaaS products.
The hook model—or ‘hooked’ model—is a concept introduced by Nir Eyal to describe how digital products can retain customers by getting them to form habits. Customers repeatedly pass through the four stages of the “hook”: trigger, action, variable reward, and investment. The hook process gets people to acquire an emotional association with the product, prompting them to use it even when there are no external triggers.
You start iterating on your MVP, trying to improve it. But as you add complexity, the system becomes increasingly unpredictable. You’re making changes based on vibes, improving some edge cases while (invisibly) breaking others. This is the stage 90% of companies building AI are in.
You can use our visual editor. You can code. You can self-host or use our cloud. You will get the job done. Let's go!
Meet the system for modern software development. Streamline issues, projects, and product roadmaps.
When all this works, the result is astounding. Small teams of highly competent managers of one can progress at an unbelievable pace. Left to just do their job, they get it done, and are in turn rewarded with that precious job satisfaction of really making a direct, personal difference. There's nothing better than shipping quickly alongside peers you respect highly.
Two conversational AI agents switching from English to sound-level protocol after confirming they are both AI agents
Explore our collection of innovative European AI services that are shaping the future. Find the perfect tools for your projects or discover new AI experiences.
With the latest iOS and iPadOS betas, users can view AI-generated summaries of reviews left by others on App Store listings.
Pagefind adds a static search bundle to your built files, which exposes a JavaScript search API that can be used anywhere on your site. Pagefind also provides a prebuilt UI that can be used with no configuration.
Our new AI assisted review responses feature makes this easier by generating an initial response as a starting point, avoiding the need to create replies from scratch. This article describes some of the approaches we’ve taken as we introduced this exciting new feature into our product, some of the challenges we’ve faced, and some suggestions on things to watch out for as you build generative AI features.
A community-driven platform showcasing the most innovative indie games, with transparent revenue data and developer insights. Built with Cursor AI and Claude 3.7.
The future belongs to developers who can effectively collaborate with AI, maintaining that careful balance between leveraging its capabilities and engaging their own critical faculties. This is not vibe coding or passive acceptance. This is thoughtful, deliberate software development enhanced by AI.
Every major advance that made coding easier—high-level languages, frameworks, cloud computing all led to more software, not less. AI will follow the same pattern: by lowering the barrier to entry, it will flood the world with more software, more systems, and more complexity. And that means we need more engineers, not fewer.
Every map projection introduces distortion, and each has its own set of problems. One of the most common criticisms of the Mercator map is that it exaggerates the size of countries nearer the poles (US, Russia, Europe), while downplaying the size of those near the equator (the African Continent).
Den stora grejen för de flesta är nog bara att samla sig, bilda sig en uppfattning och bestämma sig ifall det är dags att agera eller inte. Gissa om jag tycker det är dags nu..?!
Ett extremt, men tyvärr inte längre osannolikt scenario, vore att en framtida amerikansk administration i konflikt med Bryssel pressade amerikanska teknikföretag att begränsa tjänster i Europa eller använde sitt digitala inflytande för politiska syften.
LLM crawlers don't respect robots.txt requirements and include expensive endpoints like git blame, every page of every git log, and every commit in your repository. They do so using random User-Agents from tens of thousands of IP addresses, each one making no more than one HTTP request, trying to blend in with user traffic.
When we detect unauthorized crawling, rather than blocking the request, we will link to a series of AI-generated pages that are convincing enough to entice a crawler to traverse them. But while real looking, this content is not actually the content of the site we are protecting, so the crawler wastes time and resources.
Find the best cursor rules for your framework and language
Theoretically, the feature is a useful tool that helps consumers quickly decide what products to buy. But the appearance of these summaries underscores the pitfalls of relying on generative AI: inaccuracy and misleading information.
Two European-based cloud service companies, Exoscale and Elastx, tell WIRED they have seen an uptick in potential customers looking to abandon US cloud providers over the last two weeks—with some already starting to make the jump.
MCP is an open protocol that standardizes how applications provide context to LLMs. Think of MCP like a USB-C port for AI applications.
CTRF is a JSON based test report specification designed to standardize the structure of test results reports across all tools and frameworks.
Remote MCP support is like the transition from desktop software to web-based software. People expect to continue tasks across devices and to login and have things just work. Local MCP is great for developers, but remote MCP connections are the missing piece to reach everyone on the Internet.
Every company out there has evolved a working culture over time that is the sum total of the pre-existing biases of every employee, and especially of the leadership team. Status quo bias is an obvious contender here. Fear comes into play.
It joins your incidents automatically, bringing the full force of simulated executive presence. From setting the tone with high-stakes questions (“Why haven’t we rebooted the database already?”) to driving healthy cadence of communication (“It’s been 3 minutes, can I get another update?”), Agentic CTO ensures your team never forgets the real priorities: visibility, accountability, and a heightened sense of importance.
At Monzo, we have a set of engineering principles which encapsulate what we value, what we expect our engineers to embody, as well as to provide a foundation for collaboration with peers when making decisions and navigating trade-offs.
Vi behöver bygga organisationer där varje medarbetare får vara en levande varelse med känslor, intuition och kreativitet, och inte bara ses som en resurs. En organisation där hela människan får plats kommer ta ansvar.
Top 10 risks, vulnerabilities and mitigations for developing and securing generative AI and large language model applications across the development, deployment and management lifecycle.
Ghibli Day—as we might as well call it, given that OpenAI didn't bother to name the model that set it off—was special. Full of unexpected joy (especially for spouses of AI nerds) and also full of excess. That day, I had a bittersweet insight: humans don’t know how to deal with abundance.
This mentality has led to a flood of proxy MCP servers—servers that do nothing more than forward requests to existing APIs on behalf of an LLM. In practice, this means that any API—public, 3rd party, internal, or otherwise—can be quickly dressed up as a model tool by someone who doesn’t own it, control it, or even understand its original intent. The wrapper doesn’t need permission. It doesn’t validate ownership. It just forwards requests.
Sweden’s radioactive nuclear waste will be stored in a sealed bedrock repository for 100,000 years. It will be hazardous for a very long time. So how can we ensure that humanity does not forget that it is there?
When most developers say “I am refactoring my code”, they’re not performing a sequence of atomic rewrites with continuous testing and frequent working commits. They’re just hacking away at the code, wandering further and further from the path into the deep dark forest.
By branding the player, YouTube wasn’t claiming ownership over the video content. But it was creating a signature look and feel around each video that was unmistakably YouTube.
Harry Plotter is Stockholmsmässan’s own robot plotter that is tasked with drawing out stand locations and walkways for a fair. The plotter improves Stockholmsmässan’s production time by almost 88%.
The most effective driver of AI adoption isn't better models or improved accuracy—it's success stories from peers and respected figures in professional networks. Rather than push AI, encourage communities that will push AI.
The whole “vibe coding” thing is another reminder that quite a lot of people working in tech don’t understand the difference between programs and products.
You don’t need to be a data scientist or a machine learning engineer – everyone can write a prompt. However, crafting the most effective prompt can be complicated. Many aspects of your prompt affect its efficacy: the model you use, the model’s training data, the model configurations, your word-choice, style and tone, structure, and context all matters. Therefore, prompt engineering is an iterative process. Inadequate prompts can lead to ambiguous, inaccurate responses, and can hinder the model’s ability to provide meaningful output.
Föreställ er nu följande scenario, exempelvis tio år in i framtiden: Så fort Dagens Nyheter publicerar en ny artikel på sin betaltjänst – så gör en journalistrobot på Omni automatiskt en rewrite av texten. Att originalartikeln krävde månader av research och grävande spelar ingen roll – inom några sekunder publiceras den omskrivna robot-artikeln i en nyhetsapp, där den är gratis att läsa.
The Elimination Game is a multi-player tournament that tests LLMs in social reasoning, strategy, and deception. Players engage in public and private conversations, form alliances, and vote to eliminate each other round by round until only two remain. A jury of eliminated players then casts deciding votes to crown the winner.
This essay discuss the basics of a well-functioning product organization, including trust, strategic alignment, autonomy, and transparency. It also covers common missteps in product organizations, such as confusing discipline with value-creating teams and adopting processes without targeted and continuous adjustment.
What are the principles we can use to build LLM-powered software that is actually good enough to put in the hands of production customers?
Almost everything looked legitimate and Google even placed it with other legitimate security alerts, which would likely trick less technical users that don’t know where to look for the signs of fraud.
As Agile consulting sunsets, many are naturally shifting focus toward “Product” as the next growth area. While the language is evolving, the underlying tactics often stays the same.
Det här är ett försök att autogenerera spårkartor för svenska järnvägsstationer, baserat på data från Trafikverket och OpenStreetMap.
As an exploration of what it's like to vibe code an app today if you have little to no web dev background, I'm left with an equal mix of amazement (it's actually possible and much easier/faster than what was possible before!) and a bit of frustration of what could be. Part of the pain of course is that none of this infrastructure was really designed to be used like this.
tabular-nums is one of the options available in the font-variant-numeric CSS property. When this option is activated, and if your font supports it, all the number characters have the same width.
Watching OpenAI’s new o3 model guess where a photo was taken is one of those moments where decades of science fiction suddenly come to life. It’s a cross between the Enhance Button and Omniscient Database TV Tropes.
The Gmail team built a horseless carriage because they set out to add AI to the email client they already had, rather than ask what an email client would look like if it were designed from the ground up with AI. Their app is a little bit of AI jammed into an interface designed for mundane human labor rather than an interface designed for automating mundane labor.
A startpage with online resources about Nixintel's OSINT Resource List
Chain of Density is prompt engineering method designed to generate multiple summaries that become progressively more detailed, without increasing their length. An initial summary is generated that is entity-sparse, meaning it contains few key nouns or noun phrases that encapsulate the main points of the article. Then Chain of Density iteratively incorporates additional entities.
Zotero is a free, easy-to-use tool to help you collect, organize, annotate, cite, and share research.
Google Translate manipulates the DOM in such a way that it breaks the base apps. This interference often manifest as crashes caused by the DOM element's native `removeChild` method, resulting in errors.
Stångåstaden har, likt många andra fastighetsägare, infört ett kickback-upplägg. Det innebär att man genom kommunikationsoperatören får en extra intäkt från hyresgästerna, via bredbandsfakturan. Utan att behöva höja hyran, och utan att hyresgästen ser det.
Our misguided expectations leave us in a fragile mental state. We don’t really have the right to expect the world to stop and wait when we’re thinking.
When we’re all loaded up with in-flight work that has dependencies and interactions, like features in the same code base, then interruptions are natural and unavoidable. In other words, the way we are working (individual tasks, much in flight at one time) causes interruptions. Interruptions aren’t the problem, they’re just symptoms of us working in a way that creates so much busyness and activity that it limits opportunities for focus and accomplishment.
Hur lönsamt är det egentligen att slösa medarbetarnas tid och kapacitet i kassa möten, att jobba ineffektivt, att missa möjligheter, dubbelarbeta, skapa missnöje eller ohälsa...BARA för att man inte utsett någon som är ansvarig för att fylla det organisatoriska mellanrummet som samarbete, möten och "allmänt skrivbordsarbete utgör"?
Många sitter fast i vardaglig brandsläckning, där en enkel fråga kan kräva fyra olika system och ett ägarskap som ingen vill kännas vid. I den miljön kan inte AI skapa värde. Den förstärker bara förvirringen.
The notion that everything is a product oversimplifies things, as there are always exceptions. For instance, public services aren’t products in the traditional sense — and trying to treat them as such is unfortunate. Instead, public services are often comprised of a range of products that together make up a cohesive service.
You can think of the doorman fallacy as an extension or example of the Chesterton's fence fallacy: getting rid of the fence (doorman) without fully understanding why it was there in the first place.
Mera generellt, om hela teamet hade insett värdet av varje enskild sak, och sett hur kontextswitchande, och många fokus påverkar både en själv och dem runtomkring, för att inte tala om det man bygger, så hade det blivit lättare att göra klart varje grej från A till Ö. Och när man väl inser det, blir det lättare att se hur par- och grupprogrammering bara är fortsättning på den tankegången. Fokus på en sak i taget, fokus på kvalité, fokus på välmående i produkten – och i teamet!
If you’re making requests on a ChatGPT page and then pasting the resulting (broken) code into your editor, you’re not doing what the AI boosters are doing. No wonder you’re talking past each other.
GÖR DEN GREJEN DÅ. Med papper, sax och lim. Skulptera. Bygg. Slipa. Inte fan vet jag men skapa den på riktigt. Ta sen en bild på den och återkom. Då ska jag ge dig en like. Jag tror till och med att jag kommer le.
The Mobile App Trends Report 2025 examines the changing application landscape, its key trends, and what defines success. By analyzing market-wide trends, user behavior, and app performance, we reveal what sets the best apps apart. Discover what makes top-performing apps succeed, and how these insights help you build meaningful digital experiences.
A deep dive into Apple’s recent research that proves what LLM engineers have long suspected: today’s reasoning models often fail to think when it matters most.
The Best Simple System for Now is the simplest system that meets the needs of the product right now, written to an appropriate standard. It has no extraneous or over-engineered code, and any code it does have is exactly as robust and reliable as it needs to be, neither more nor less.
Many expect parallel execution to be about multi-tasking different agents working on the same codebase or subtasks, there is an emerging use case which is parallel exploration: just ask the agent to come up with different variations and you can judge which is the best one or and why not ask a LLM to be a judge too... or at least put in a vote for you?
From 2027 Nox will offer overnight trains across Europe with 100% personal rooms.
In this episode of the Distributed podcast, host Jack Hannah chats with Tim Ottinger, aka the Agile Otter, about how to manage and organize the work. Among other things, Tim is a Senior Consultant at Industrial Logic, contributor to the book Clean Code, and active presence online. Jack and Tim explore various ways to work in teams instead of solo and the various benefits they offer.
As Service Control tasks restarted, it created a herd effect on the underlying infrastructure it depends on (i.e. that Spanner table), overloading the infrastructure. Service Control did not have the appropriate randomized exponential backoff implemented to avoid this. It took up to ~2h 40 mins to fully resolve in us-central-1 as we throttled task creation to minimize the impact on the underlying infrastructure and routed traffic to multi-regional databases to reduce the load.
A YouTube channel, “The World News” had taken McGibbon’s copy and turned it into a 14-minute video, with the entire content, approximately 2,000 words, read out by an AI narrator. Childhood photographs supplied by McGibbon to the Daily Mail for one-off use only were also added in as a video montage without permission.
The product itself still has a long way to go, but the system that can build a great product is largely there—and it’s continuously getting better. The product is, after all, a lagging indicator of the quality of the socio-technical system that produces it.
Funderar du på hur ditt team samarbetar? Detta verktyg hjälper dig att reflektera över ert nuvarande arbetssätt för att identifiera styrkor och möjliga utvecklingsområden.
The reason why we do this is that nobody wants to work on a Friday evening. Deploying on Fridays keeps us motivated to make sure our system ready to be deployed at all times, and that is important to us. Having a system that can be deployed anytime allows us to quickly push out new features as well as fixing incorrect behaviour when needed.
Sorting alphanumeric data can be tricky! Discover how to use custom collations in Postgres to achieve natural sorting and make your data handling a breeze.
Most of us believe that over the longer term, speed is maximized by operating at a high, but not stupidly high, level of quality. The question is, what is “longer term”?
Somewhere in the last few months, something fundamental shifted for me with autonomous AI coding agents. They’ve gone from a “hey this is pretty neat” curiosity to something I genuinely can’t imagine working without.
Through experience, we discovered some unexpected long-term benefits of mob programming: reduces the amount of work to do, makes continuous improvement more effective, improves design discussions
Traditional product teams often follow a linear flow: PM defines, designer mocks, engineers build. But that model breaks down when you're building AI-native products. We’re not designing screens for users to click—we’re building systems that interpret intent and act on it. That changes everything. To get it right, everyone needs to be involved early: product, design, frontend, backend, data. Discovery and delivery collapse into the same loop. Feedback is faster. Outcomes are less predictable. The system learns from use, so you need tight, collaborative cycles to learn with it.
Memorising docker commands is hard. Memorising aliases is slightly less hard. Keeping track of your containers across multiple terminal windows is near impossible. What if you had all the information you needed in one terminal window with every common command living one keypress away (and the ability to add custom commands as well). Lazydocker's goal is to make that dream a reality.
For us, reverse pull requests boosted code quality, knowledge transfer and therefore consistency. It raised topics for our daily tech-chats that resulted in new conventions being agreed and improved overall design in a way that was non-blocking.
That conversation is what matters. Jira (or Trello, Pivotal, sticky notes on a wall, pick any other etc) is only a good tool when it facilitates those conversations and makes sure that the team has them. If people use the tool to have the conversation thats what really matters. That is the best way your team is going to build shared context.
What will happen when we blindly apply Big Agile + premature AI tooling to core health services and patient data? Financial services? Social media and the spread of misinformation? Government infrastructure? Military infrastructure? It’s 2025 and software engineering is the backbone of pretty much everything. But for all its prevalence and influence, most people don’t have the technical literacy to even grasp the basics.
A configuration framework that enhances Claude Code with specialized commands, cognitive personas, and development methodologies.
Wide events are a very simple concept: for each request, emit a single context-rich event/log per service hop. That’s it. Don’t let all the buzzwords fool you.
We let Claude manage an automated store in our office as a small business for about a month. We learned a lot from how close it was to success—and the curious ways that it failed—about the plausible, strange, not-too-distant future in which AI models are autonomously running things in the real economy.
TEST-DRIVEN DEVELOPMENT IS NON-NEGOTIABLE. Every single line of production code must be written in response to a failing test. No exceptions. This is not a suggestion or a preference - it is the fundamental practice that enables all other principles in this document.
While retirement typically occurs, after completing a career and saving and investing for it, a new trend is emerging among Gen Z career professionals called “micro-retirement.” Micro-retirements involve taking a one to two-week break from work every 12 to 18 months.
Research papers from 14 academic institutions in eight countries – including Japan, South Korea and China – contained hidden prompts directing artificial intelligence tools to give them good reviews, Nikkei has found.
So maybe the answer isn’t fewer meetings. It’s better ones. Meetings where everyone comes prepared. Where we solve problems together. Where ideas are tested, refined, and built in real time. In short: meetings that look less like a lecture, and more like a room full of smart people, standing at the whiteboard, figuring things out together.
I break product ops down into four key areas: using data; understanding users; team ownership; and cross-departmental communication. These areas are a variation on Melissa Perri’s framework from her book, Product Operations (read my review here). I differ from them because I don’t believe “Process and Practices” are a pillar of product ops. Instead, I see process and practice as the method by which you improve the pillars of product ops.
The purpose of product ops is to free up product managers to focus more on the core role (thinking strategically, acting tactically and taking informed decisions to achieve product success). With an increasingly sophisticated approach to product management comes more preparatory work, more systems to interact with, and more people to keep informed.
Having been a shadow product ops person myself, I can tell you it isn’t sustainable. I was trying to figure out ways to improve our roadmapping process and selling the other PMs on the new process. Meanwhile, I had the rest of my job to do: loop in stakeholders, build out my own roadmap, make sure my engineering partners had everything they needed, and manage my direct reports. The process work needed to happen, but it felt squeezed in and I was constantly teetering on the edge of burnout.
What I believe is really going on, even though I hate to admit this may be the case for some in the product community, is that they do not desire to improve themselves. Some people lack ambition. For these people, comparisons with the best are uncomfortable, and they gravitate towards anyone that tells them that they are just fine the way they are, and that being better is overrated anyway.
My key critique is that the article follows a classic rhetorical move. It begins with the language of empathy and belief, such as "I want to believe" and "it pains me," but it ends with a moral judgment. What starts as a reflection on the challenges of building empowered teams becomes a statement about individual character, framed as a lack of ambition.
A pricing page reveals far more than how much a product costs. It’s a strategic document that shows who a company wants as customers, how they plan to grow, and where they see their future. Here’s the framework I use to decode strategy from pricing.
Enshittification isn’t inevitable. It’s a choice. A thousand tiny choices made every day. As product people, we have more power than we think to slow it down, call it out, and maybe, just maybe, stop it in its tracks. But it means being loud. Being annoying. Asking the uncomfortable questions. (“What problem are we really solving?”) It means being okay with leaving some money on the table if it means keeping the trust of your users.
Codeberg is a non-profit, community-led effort that provides Git hosting and other services for free and open source projects.