<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: lambrospetrou</title><link>https://news.ycombinator.com/user?id=lambrospetrou</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 13 Jun 2026 14:10:15 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=lambrospetrou" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[Instrumenting distributed systems for operational visibility]]></title><description><![CDATA[
<p>Article URL: <a href="https://aws.amazon.com/builders-library/instrumenting-distributed-systems-for-operational-visibility/">https://aws.amazon.com/builders-library/instrumenting-distributed-systems-for-operational-visibility/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=43114031">https://news.ycombinator.com/item?id=43114031</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 20 Feb 2025 12:44:06 +0000</pubDate><link>https://aws.amazon.com/builders-library/instrumenting-distributed-systems-for-operational-visibility/</link><dc:creator>lambrospetrou</dc:creator><comments>https://news.ycombinator.com/item?id=43114031</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43114031</guid></item><item><title><![CDATA[Principles of Good Web Design (2008)]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.smashingmagazine.com/2008/01/10-principles-of-effective-web-design/">https://www.smashingmagazine.com/2008/01/10-principles-of-effective-web-design/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=43005881">https://news.ycombinator.com/item?id=43005881</a></p>
<p>Points: 4</p>
<p># Comments: 1</p>
]]></description><pubDate>Mon, 10 Feb 2025 22:06:53 +0000</pubDate><link>https://www.smashingmagazine.com/2008/01/10-principles-of-effective-web-design/</link><dc:creator>lambrospetrou</dc:creator><comments>https://news.ycombinator.com/item?id=43005881</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43005881</guid></item><item><title><![CDATA[What Are Durable Objects?]]></title><description><![CDATA[
<p>Article URL: <a href="https://developers.cloudflare.com/durable-objects/what-are-durable-objects/">https://developers.cloudflare.com/durable-objects/what-are-durable-objects/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=42970545">https://news.ycombinator.com/item?id=42970545</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 07 Feb 2025 08:16:13 +0000</pubDate><link>https://developers.cloudflare.com/durable-objects/what-are-durable-objects/</link><dc:creator>lambrospetrou</dc:creator><comments>https://news.ycombinator.com/item?id=42970545</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42970545</guid></item><item><title><![CDATA[Typography in Ten Minutes]]></title><description><![CDATA[
<p>Article URL: <a href="https://practicaltypography.com/typography-in-ten-minutes.html">https://practicaltypography.com/typography-in-ten-minutes.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=42709939">https://news.ycombinator.com/item?id=42709939</a></p>
<p>Points: 13</p>
<p># Comments: 10</p>
]]></description><pubDate>Wed, 15 Jan 2025 11:59:50 +0000</pubDate><link>https://practicaltypography.com/typography-in-ten-minutes.html</link><dc:creator>lambrospetrou</dc:creator><comments>https://news.ycombinator.com/item?id=42709939</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42709939</guid></item><item><title><![CDATA[New comment by lambrospetrou in "Distributed Transactions at Scale in Amazon DynamoDB (2023)"]]></title><description><![CDATA[
<p>Exactly this.<p>DynamoDB is a pain in the ass if you want to do too many relational or arbitrary queries. It's not for data exploration.<p>It is my favourite database though (next to S3)! For cases where my queries are pretty much known upfront, and I want predictable great performance. As Marc Brooker wrote in [1], "DynamoDB’s Best Feature: Predictability".<p>I consistently get single digit millisecond GETs, 10-15ms PUTs, and a few more milliseconds for TransactWriteItems.<p>Are you able to complex joins? No. Are you able to do queries based on different hash/sort keys easily? Not without adding GSIs or a new table. The issue in the past few years was the whole craze around "single-table design". Folks took it literally as having to shove all their data in a single table, instead of understanding the reason and the cases that worked well. And with ongoing improvements of DynamoDB those cases were getting fewer and fewer over time.<p>But, that's what tradeoffs are about. With on-demand tables, one-shot transactions, actually serverless storage/scaling, and predictable performance you get very, very far.<p>1. <a href="https://brooker.co.za/blog/2022/01/19/predictability.html" rel="nofollow">https://brooker.co.za/blog/2022/01/19/predictability.html</a></p>
]]></description><pubDate>Wed, 15 Jan 2025 11:34:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=42709797</link><dc:creator>lambrospetrou</dc:creator><comments>https://news.ycombinator.com/item?id=42709797</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42709797</guid></item><item><title><![CDATA[Distributed Transactions at Scale in Amazon DynamoDB (2023)]]></title><description><![CDATA[
<p>Article URL: <a href="http://muratbuffalo.blogspot.com/2023/08/distributed-transactions-at-scale-in.html">http://muratbuffalo.blogspot.com/2023/08/distributed-transactions-at-scale-in.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=42672724">https://news.ycombinator.com/item?id=42672724</a></p>
<p>Points: 82</p>
<p># Comments: 60</p>
]]></description><pubDate>Sun, 12 Jan 2025 11:12:29 +0000</pubDate><link>http://muratbuffalo.blogspot.com/2023/08/distributed-transactions-at-scale-in.html</link><dc:creator>lambrospetrou</dc:creator><comments>https://news.ycombinator.com/item?id=42672724</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42672724</guid></item><item><title><![CDATA[Transactions and Scalability in Cloud Databases–Can't We Have Both?]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.usenix.org/conference/fast19/presentation/terry">https://www.usenix.org/conference/fast19/presentation/terry</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=42665862">https://news.ycombinator.com/item?id=42665862</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 11 Jan 2025 13:50:30 +0000</pubDate><link>https://www.usenix.org/conference/fast19/presentation/terry</link><dc:creator>lambrospetrou</dc:creator><comments>https://news.ycombinator.com/item?id=42665862</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42665862</guid></item><item><title><![CDATA[New comment by lambrospetrou in "Pick One and Own It"]]></title><description><![CDATA[
<p>What if your company could have only one single advantage over the competition? This exercise will make your positioning and strategy stronger.</p>
]]></description><pubDate>Tue, 07 Jan 2025 11:04:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=42621297</link><dc:creator>lambrospetrou</dc:creator><comments>https://news.ycombinator.com/item?id=42621297</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42621297</guid></item><item><title><![CDATA[Pick One and Own It]]></title><description><![CDATA[
<p>Article URL: <a href="https://longform.asmartbear.com/one-benefit/">https://longform.asmartbear.com/one-benefit/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=42621296">https://news.ycombinator.com/item?id=42621296</a></p>
<p>Points: 2</p>
<p># Comments: 1</p>
]]></description><pubDate>Tue, 07 Jan 2025 11:04:35 +0000</pubDate><link>https://longform.asmartbear.com/one-benefit/</link><dc:creator>lambrospetrou</dc:creator><comments>https://news.ycombinator.com/item?id=42621296</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42621296</guid></item><item><title><![CDATA[New comment by lambrospetrou in "Show HN: Skybear.net – A managed platform automating Synthetic HTTP API testing"]]></title><description><![CDATA[
<p>Hurl has been a great choice for the platform too. Zero regrets in choosing that so far. I even converted some colleagues at work to use it :)<p>Looking forward to seeing the more powerful additions to Hurl coming soon!</p>
]]></description><pubDate>Sun, 22 Dec 2024 20:44:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=42488938</link><dc:creator>lambrospetrou</dc:creator><comments>https://news.ycombinator.com/item?id=42488938</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42488938</guid></item><item><title><![CDATA[Show HN: Skybear.net – A managed platform automating Synthetic HTTP API testing]]></title><description><![CDATA[
<p>Hey folks, I am finally posting a Show HN post for a project I have been working on for several months now, and it's in a state where I already get a lot of value myself, so I am happy to share broadly.<p>The pitch line is: "Skybear.NET is a managed platform automating Synthetic HTTP API testing."<p>At the moment, the main source file format supported for your API tests are Hurl.dev files [1]. Hurl is a CLI tool wrapping `curl` and it's really awesome. At least check that out :)<p>I am not affiliated directly with the Hurl CLI tool, and the platform I am building provides full Hurl compatibility.
I have been using Hurl for a few years now [2], and use it for my API testing, for orchestrating a bunch of HTTP APIs, and in general whenever I need to do anything with HTTP requests, I reach for Hurl.<p>You can try without signup the basic execution feature with the free Open Editor [3], but for full functionality (retaining responses and cron triggers) you need a signed in account, even free.<p>The Skybear.NET platform:<p>1. Has Hurl Compatibility, so take your local scripts and run them on the cloud as well. No changes needed.<p>2. Provides managed infrastructure for authoring, storing, and most importantly executing your Hurl scripts, that automatically scales to handle as many script runs as you need.<p>3. Generates detailed reports from your tests execution, automatically persisting requests and response bodies for introspection in the future, and with automatic insights coming up soon.<p>4. Supports multiple ways of triggering execution of your scripts, including periodic executions, and on-demand HTTP triggers enabling integration with your CICD pipelines.<p>Most importantly, it eliminates excessive per-request/per-step/per-check charges, leading to substantial cost-savings for complex multi-step API tests covering complete user-journeys.
I consider a "script project run" to be the main unit in my pricing, which includes execution of all the source files of the script project, which can be tens or hundreds of requests.<p>I am starting to document some of the architecture of the platform as well [4], but in a nutshell, all your data is encrypted inside the application before stored on AWS (S3, DynamoDB, also encrypting at rest) [5], the control plane runs on Hetzner and AWS EC2, and the execution servers running your scripts run on Fly and soon on AWS EC2 (for some plans).<p>Future plans depend a lot on feedback from users.
I already have a long list of things I personally want to have, but as more users start using I would like to see user needs influencing the roadmap more.<p>Some upcoming features:
1. Insights and metric graphs for historical tracking of your tests (per project, per file, per request URL).
2. Automatic generation of tests based on OpenAPI schemas, HAR files, etc.
3. Export API of all the data and reports for your own consumption.
4. OTEL traces generated per script run, exportable and sent to APM products.<p>Thank you, and I hope you find it interesting too!<p>Lambros Petrou<p>1. <a href="https://hurl.dev" rel="nofollow">https://hurl.dev</a><p>2. <a href="https://www.lambrospetrou.com/articles/hurl/" rel="nofollow">https://www.lambrospetrou.com/articles/hurl/</a><p>3. <a href="https://www.skybear.net/scripts/open-editor/" rel="nofollow">https://www.skybear.net/scripts/open-editor/</a><p>4. <a href="https://www.skybear.net/docs/getting-started/what-is-skybear/" rel="nofollow">https://www.skybear.net/docs/getting-started/what-is-skybear...</a><p>5. <a href="https://www.lambrospetrou.com/articles/encryption/" rel="nofollow">https://www.lambrospetrou.com/articles/encryption/</a></p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=42488710">https://news.ycombinator.com/item?id=42488710</a></p>
<p>Points: 6</p>
<p># Comments: 2</p>
]]></description><pubDate>Sun, 22 Dec 2024 20:09:00 +0000</pubDate><link>https://www.skybear.net</link><dc:creator>lambrospetrou</dc:creator><comments>https://news.ycombinator.com/item?id=42488710</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42488710</guid></item><item><title><![CDATA[New comment by lambrospetrou in "Keeping a Changelog at Work (2020)"]]></title><description><![CDATA[
<p>I have also written about my "worklog" [1], what I call my own changelog at work.<p>It's a simple Markdown file, versioned on my own Gitea instance.<p>The worklog contains all notes about everything I spend my time at work. That is project work, meetings, discussions, todos, long-term todos and investigations, and anything I need to be able to check back later.<p>I cannot count the number of times I went back and searched this file to find information that others forgot, the meeting notes did not capture, and in general things that I need.<p>Keeping this kind of log makes performance reviews trivial too. Just scroll through the worklog for the period you want, copy paste bullet points, and then spend some time cleaning them up and rewriting them as necessary.<p>If anyone does not keep a worklog, start now :)<p>1. <a href="https://www.lambrospetrou.com/articles/the-worklog-format-1/" rel="nofollow">https://www.lambrospetrou.com/articles/the-worklog-format-1/</a></p>
]]></description><pubDate>Sun, 22 Dec 2024 16:42:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=42487431</link><dc:creator>lambrospetrou</dc:creator><comments>https://news.ycombinator.com/item?id=42487431</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42487431</guid></item><item><title><![CDATA[New comment by lambrospetrou in "Ask HN: Those making $500/month on side projects in 2024 – Show and tell"]]></title><description><![CDATA[
<p>I have built a managed platform automating HTTP API testing, at <a href="https://www.skybear.net" rel="nofollow">https://www.skybear.net</a>. The core basis is to run your Hurl files. Automatic report persistence, scheduled runs, and multiple files supported with hundreds of requests per "run/execution".<p>Soon, I will be adding analytics, insights, and automatic test generation features.<p>I have been working for a year on it, and will keep working on it for many years to come, since I am using it myself a lot anyway.</p>
]]></description><pubDate>Sun, 15 Dec 2024 10:34:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=42422729</link><dc:creator>lambrospetrou</dc:creator><comments>https://news.ycombinator.com/item?id=42422729</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42422729</guid></item><item><title><![CDATA[SaaS Pricing – What I want vs. What I offer]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.lambrospetrou.com/articles/pricing-want-vs-offer/">https://www.lambrospetrou.com/articles/pricing-want-vs-offer/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=39427676">https://news.ycombinator.com/item?id=39427676</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 19 Feb 2024 09:25:57 +0000</pubDate><link>https://www.lambrospetrou.com/articles/pricing-want-vs-offer/</link><dc:creator>lambrospetrou</dc:creator><comments>https://news.ycombinator.com/item?id=39427676</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39427676</guid></item><item><title><![CDATA[New comment by lambrospetrou in "[dead]"]]></title><description><![CDATA[
<p>Just published a new article about "The CI/CD Flywheel". Why it's such a superpower for teams that embrace it, and how it maps to CI/CD pipelines.<p>I dive into the different steps of the CI/CD flywheel, including local code authoring, running CI jobs on pull-requests, deploying and verifying on staging (preproduction) environments, and finally deploying and verifying in production.<p>Then, I try to showcase the business and technical benefits of a proper CI/CD pipeline.<p>Busines benefits:
- Ship value to customers more often
- Earn and retain customer trust
- Fast experimentation feedback loop
- Attract the right talent
- Cost reduction<p>Technical benefits:
- Code quality
- Comprehensive tests
- Automate repetitive tasks for reproducibility
- Build once, use everywhere
- Controlled rollouts and faster Mean Time To Resolution (MTTR)</p>
]]></description><pubDate>Sun, 15 Oct 2023 11:53:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=37888993</link><dc:creator>lambrospetrou</dc:creator><comments>https://news.ycombinator.com/item?id=37888993</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37888993</guid></item><item><title><![CDATA[New comment by lambrospetrou in "How to pass the interview for software engineering roles in Big Tech"]]></title><description><![CDATA[
<p>I would say that luck in FAANG interviews is much lower than the average tech company. At least in my experience. Don't get me wrong, there is luck involved, and it's a big part of the interview process.<p>But, at least, you have standardised pools of coding questions, standardised pools of system design questions, and a standardised feedback form.<p>The interviewer varies a lot though... And makes all the difference when you have an inexperienced one, or someone that doesn't care.</p>
]]></description><pubDate>Sun, 10 Sep 2023 22:31:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=37460787</link><dc:creator>lambrospetrou</dc:creator><comments>https://news.ycombinator.com/item?id=37460787</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37460787</guid></item><item><title><![CDATA[New comment by lambrospetrou in "How to pass the interview for software engineering roles in Big Tech"]]></title><description><![CDATA[
<p>At Amazon you could become an EM1 by switching internally from SDE2 (L4 at Google/Meta).
Also, in other companies like Datadog, Cloudflare, the first level of EM (used to be called Team Lead) is parallel to Senior Engineers.</p>
]]></description><pubDate>Sun, 10 Sep 2023 22:28:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=37460764</link><dc:creator>lambrospetrou</dc:creator><comments>https://news.ycombinator.com/item?id=37460764</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37460764</guid></item><item><title><![CDATA[New comment by lambrospetrou in "How to pass the interview for software engineering roles in Big Tech"]]></title><description><![CDATA[
<p>I am the author :)<p>>I can only assume the author has not interviewed many candidates.<p>I did more than 100 interviews so far.<p>>I've lost count of how many tenured engineers I've interviewed who could not write basic code or explain basic programming concepts. Things that a practicing programmer would encounter every week.<p>Where did I say that I agree with this statement. This is what other engineers claim, and as you pointed out being said many times.<p>I am totally against this claim as well. I do think that those tenured engineers should be interviewed for basic coding skills too. Just last month I had a staff+ engineer not being able to write a DFS...<p>That part in the article is ironic, hence why I said that I didn't want to make it a discussion about the fact that we have these coding interviews, and to "Get over it!" :)</p>
]]></description><pubDate>Sun, 10 Sep 2023 22:24:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=37460743</link><dc:creator>lambrospetrou</dc:creator><comments>https://news.ycombinator.com/item?id=37460743</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37460743</guid></item><item><title><![CDATA[New comment by lambrospetrou in "How to pass the interview for software engineering roles in Big Tech"]]></title><description><![CDATA[
<p>>For example, linked list, hash table, DFS and BFS, simple sorting.<p>These are a given. You should know these.<p>When I said I cannot memorize solutions, I refer to memorizing solutions to specific Leetcode problems. Doing that for 1-2 problems per main area is doable, but anything more than that is quite hard.</p>
]]></description><pubDate>Sun, 10 Sep 2023 22:18:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=37460690</link><dc:creator>lambrospetrou</dc:creator><comments>https://news.ycombinator.com/item?id=37460690</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37460690</guid></item><item><title><![CDATA[New comment by lambrospetrou in "How to pass the interview for software engineering roles in Big Tech"]]></title><description><![CDATA[
<p>>2) practice communicating with people that have very thick Indian or Chinese accents. It will also help in general day to day life<p>Absolutely :) I have that item explicitly in my article, since it happened to me as well being on both sides of the interview process.<p>It's very unfortunate when communication is problematic accent-wise. And it makes judging difficult as well since you are not focusing on the technical merits alone anymore.<p>>1) don’t expect only questions relevant to the position.<p>For this, you might have been unlucky with an inexperienced interviewer...</p>
]]></description><pubDate>Sun, 10 Sep 2023 22:14:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=37460656</link><dc:creator>lambrospetrou</dc:creator><comments>https://news.ycombinator.com/item?id=37460656</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37460656</guid></item></channel></rss>