<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: tignaj</title><link>https://news.ycombinator.com/user?id=tignaj</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 15 Jun 2026 16:35:12 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=tignaj" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by tignaj in "Petition to Withdraw Canada's Bill C-22"]]></title><description><![CDATA[
<p>Is ourcommons.ca an official House of Commons website? It says so but how do I verify before I submit the petition with my information?</p>
]]></description><pubDate>Fri, 12 Jun 2026 02:50:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=48499287</link><dc:creator>tignaj</dc:creator><comments>https://news.ycombinator.com/item?id=48499287</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48499287</guid></item><item><title><![CDATA[New comment by tignaj in "I/O is no longer the bottleneck? (2022)"]]></title><description><![CDATA[
<p>If you are looking for a fast format with schema support see STEF: <a href="https://www.stefdata.net/" rel="nofollow">https://www.stefdata.net/</a><p>Disclosure: I am the author.</p>
]]></description><pubDate>Tue, 06 Jan 2026 03:40:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=46508479</link><dc:creator>tignaj</dc:creator><comments>https://news.ycombinator.com/item?id=46508479</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46508479</guid></item><item><title><![CDATA[New comment by tignaj in "Union types ('enum types') would be complicated in Go"]]></title><description><![CDATA[
<p>Here is a fairly efficient version of a simple union like that I did a while back <a href="https://github.com/tigrannajaryan/govariant">https://github.com/tigrannajaryan/govariant</a></p>
]]></description><pubDate>Sat, 07 Dec 2024 08:04:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=42348095</link><dc:creator>tignaj</dc:creator><comments>https://news.ycombinator.com/item?id=42348095</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42348095</guid></item><item><title><![CDATA[New comment by tignaj in "Cap'n Proto 1.0"]]></title><description><![CDATA[
<p>This is also because Google's Protobuf implementations aren't doing a very good job with avoiding unnecessary allocations. Gogoproto is better and it is possible to do even better, here is an example prototype I have put together for Go (even if you do not use the laziness part it is still much faster than Google's implementation): <a href="https://github.com/splunk/exp-lazyproto">https://github.com/splunk/exp-lazyproto</a></p>
]]></description><pubDate>Fri, 28 Jul 2023 21:10:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=36913358</link><dc:creator>tignaj</dc:creator><comments>https://news.ycombinator.com/item?id=36913358</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36913358</guid></item><item><title><![CDATA[New comment by tignaj in "Logging practices I follow"]]></title><description><![CDATA[
<p>Otel logs aim to record the execution context in the logs.<p>In languages when the context is implicitly passed (e.g. via thread-local storage / MDC in Java) Otel automatically injects trace id and span id in the logs emitted using your regular logging library (e.g. log4j). Then in your log backend you can make queries like "show me all log records of all services in my distributed system that were part of this particular user request".<p>Disclosure: I am an Otel contributor, working on logs (work-in-progress, not for production use yet).</p>
]]></description><pubDate>Mon, 09 Jan 2023 21:57:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=34316784</link><dc:creator>tignaj</dc:creator><comments>https://news.ycombinator.com/item?id=34316784</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34316784</guid></item><item><title><![CDATA[New comment by tignaj in "Faster Protocol Buffers (2019)"]]></title><description><![CDATA[
<p>This. The statelessness of the OTLP is by design. I did consider stateful designs with e.g. shared state dictionary compression but eventually chose not to, so that the intermediaries can remain stateless.<p>An extension to OTLP that uses shared state (and columnar encoding) to achieve more compact representation and is suitable for the last network leg in the data delivery path has been proposed and may become a reality in the future: <a href="https://github.com/open-telemetry/oteps/pull/171" rel="nofollow">https://github.com/open-telemetry/oteps/pull/171</a></p>
]]></description><pubDate>Sun, 14 Aug 2022 17:18:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=32460996</link><dc:creator>tignaj</dc:creator><comments>https://news.ycombinator.com/item?id=32460996</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32460996</guid></item><item><title><![CDATA[New comment by tignaj in "Faster Protocol Buffers (2019)"]]></title><description><![CDATA[
<p>Here is a OneOf Go implementation I wrote that hopefully is less ugly and is significantly faster: <a href="https://github.com/splunk/exp-lazyproto#oneof-fields" rel="nofollow">https://github.com/splunk/exp-lazyproto#oneof-fields</a></p>
]]></description><pubDate>Sun, 14 Aug 2022 17:09:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=32460924</link><dc:creator>tignaj</dc:creator><comments>https://news.ycombinator.com/item?id=32460924</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32460924</guid></item><item><title><![CDATA[New comment by tignaj in "Faster Protocol Buffers (2019)"]]></title><description><![CDATA[
<p>Article author here, good to see it on HN, someone else has submitted it (thanks :-)).<p>If you are interested in the topic you may be also interested in a research library I wrote recently: <a href="https://github.com/splunk/exp-lazyproto" rel="nofollow">https://github.com/splunk/exp-lazyproto</a>, which among other things exploits the partial (de)serialization technique. This is just a prototype for now, one day I may actually do a production quality implementation.</p>
]]></description><pubDate>Sun, 14 Aug 2022 17:02:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=32460853</link><dc:creator>tignaj</dc:creator><comments>https://news.ycombinator.com/item?id=32460853</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32460853</guid></item><item><title><![CDATA[New comment by tignaj in "Why and how GitHub is adopting OpenTelemetry"]]></title><description><![CDATA[
<p>Please submit a bug at <a href="https://github.com/open-telemetry/opentelemetry-go/issues" rel="nofollow">https://github.com/open-telemetry/opentelemetry-go/issues</a>
We want to make the SDKs rock-solid.</p>
]]></description><pubDate>Wed, 26 May 2021 23:24:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=27297403</link><dc:creator>tignaj</dc:creator><comments>https://news.ycombinator.com/item?id=27297403</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27297403</guid></item><item><title><![CDATA[Show HN: Fast Variant data type for Go]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/tigrannajaryan/govariant">https://github.com/tigrannajaryan/govariant</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=24611308">https://news.ycombinator.com/item?id=24611308</a></p>
<p>Points: 5</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 27 Sep 2020 23:56:20 +0000</pubDate><link>https://github.com/tigrannajaryan/govariant</link><dc:creator>tignaj</dc:creator><comments>https://news.ycombinator.com/item?id=24611308</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24611308</guid></item><item><title><![CDATA[New comment by tignaj in "OpenTelemetry"]]></title><description><![CDATA[
<p>Here is the draft plan for logs: <a href="https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/logs/overview.md" rel="nofollow">https://github.com/open-telemetry/opentelemetry-specificatio...</a><p>Logs are not going to be part of OpenTelemetry 1.0 release (only traces and metrics will). Logs are coming later (no specific timeline yet).<p>Disclaimer: I work on OpenTelemetry spec and wrote most of the linked doc. Comments/issues/PRs welcome in the repo.</p>
]]></description><pubDate>Thu, 24 Sep 2020 00:54:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=24574186</link><dc:creator>tignaj</dc:creator><comments>https://news.ycombinator.com/item?id=24574186</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24574186</guid></item><item><title><![CDATA[New comment by tignaj in "OpenTelemetry"]]></title><description><![CDATA[
<p>Disclaimer: I work on OpenTelemetry spec.<p>Many tracing solutions settled on 128bits/16 bytes trace ids. Here is Jaeger's rationale: <a href="https://github.com/jaegertracing/jaeger/issues/858" rel="nofollow">https://github.com/jaegertracing/jaeger/issues/858</a><p>It is also recommended by W3C: <a href="https://www.w3.org/TR/trace-context/#trace-id" rel="nofollow">https://www.w3.org/TR/trace-context/#trace-id</a></p>
]]></description><pubDate>Thu, 24 Sep 2020 00:43:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=24574099</link><dc:creator>tignaj</dc:creator><comments>https://news.ycombinator.com/item?id=24574099</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24574099</guid></item><item><title><![CDATA[New comment by tignaj in "OpenTelemetry"]]></title><description><![CDATA[
<p>Disclaimer: I work on OpenTelemetry specification and Collector.<p>I don't contribute to Go implementation but I encourage you to submit the feedback to <a href="https://github.com/open-telemetry/opentelemetry-go" rel="nofollow">https://github.com/open-telemetry/opentelemetry-go</a> or <a href="https://gitter.im/open-telemetry/opentelemetry-go" rel="nofollow">https://gitter.im/open-telemetry/opentelemetry-go</a><p>You can also attend Go SIG meetings and provide the feedback directly. SIG meetings are open for attendance: <a href="https://github.com/open-telemetry/community#special-interest-groups" rel="nofollow">https://github.com/open-telemetry/community#special-interest...</a><p>I am sure the Maintainers of Go implementation will appreciate your feedback.</p>
]]></description><pubDate>Thu, 24 Sep 2020 00:35:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=24574029</link><dc:creator>tignaj</dc:creator><comments>https://news.ycombinator.com/item?id=24574029</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24574029</guid></item><item><title><![CDATA[New comment by tignaj in "OpenTelemetry"]]></title><description><![CDATA[
<p>Disclaimer: I work on OpenTelemetry specification and Collector.<p>It is true that the spec and libraries have been changing. This is to be expected since we haven't yet made a stable release. We are aiming for 1.0 GA release this year. The current plan is to freeze trace spec this week, followed by metric spec freeze in 3 weeks, followed by the release of several language implementations in 4 weeks after the spec freeze.<p>Like everyone else I wish we could release earlier, but the reality is that making dozens of companies agree on a standard takes time. I am very excited that we are approaching the finish line.</p>
]]></description><pubDate>Thu, 24 Sep 2020 00:31:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=24573997</link><dc:creator>tignaj</dc:creator><comments>https://news.ycombinator.com/item?id=24573997</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24573997</guid></item><item><title><![CDATA[Autonomously Robust Software]]></title><description><![CDATA[
<p>Article URL: <a href="https://blog.najaryan.net/posts/autonomous-robustness/">https://blog.najaryan.net/posts/autonomous-robustness/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=22351966">https://news.ycombinator.com/item?id=22351966</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 17 Feb 2020 23:31:39 +0000</pubDate><link>https://blog.najaryan.net/posts/autonomous-robustness/</link><dc:creator>tignaj</dc:creator><comments>https://news.ycombinator.com/item?id=22351966</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22351966</guid></item><item><title><![CDATA[New comment by tignaj in "Opnieuw: A simple and intuitive retrying library for Python"]]></title><description><![CDATA[
<p>If you are not familiar with how retrying is used and why exponential back off, jitter, etc are useful here is a shameless plug to a blog post I wrote recently <a href="https://blog.najaryan.net/posts/autonomous-robustness/" rel="nofollow">https://blog.najaryan.net/posts/autonomous-robustness/</a> (the first half pretty much is about all these things).</p>
]]></description><pubDate>Wed, 05 Feb 2020 12:56:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=22246323</link><dc:creator>tignaj</dc:creator><comments>https://news.ycombinator.com/item?id=22246323</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22246323</guid></item><item><title><![CDATA[Faster Protocol Buffers]]></title><description><![CDATA[
<p>Article URL: <a href="https://blog.najaryan.net/posts/partial-protobuf-encoding/">https://blog.najaryan.net/posts/partial-protobuf-encoding/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=22205635">https://news.ycombinator.com/item?id=22205635</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 31 Jan 2020 20:57:19 +0000</pubDate><link>https://blog.najaryan.net/posts/partial-protobuf-encoding/</link><dc:creator>tignaj</dc:creator><comments>https://news.ycombinator.com/item?id=22205635</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22205635</guid></item><item><title><![CDATA[New comment by tignaj in "The interviewer skills ladder for high growth companies"]]></title><description><![CDATA[
<p>Thanks for the link, I haven't seen this before, going to read it.</p>
]]></description><pubDate>Sun, 18 Aug 2019 22:17:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=20733306</link><dc:creator>tignaj</dc:creator><comments>https://news.ycombinator.com/item?id=20733306</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20733306</guid></item><item><title><![CDATA[New comment by tignaj in "The interviewer skills ladder for high growth companies"]]></title><description><![CDATA[
<p>Engineer / engineering manager here.<p>Nicely articulated article. There is one observation that I respectfully disagree with - the one that says interviews are monotonous and boring.<p>I have done hundreds of interviews in my career and never found them to be boring. Perhaps one the reasons is I don't do scripted interviews. It is always an exploration for me. I will start with simple questions and if I get good answers I will go deeper and deeper into the subject matter or into the adjacent area. If I don't get good answers I will retract and probe another direction. This is sort of a depth-first traversal of candidate's skills with a heuristic to stop traversing a particular branch if I see it is not a promising direction.<p>My goal is to discover the area where the candidate is the strongest (obviously within the areas I am interested in for the particular role I am hiring for). It is very fun and almost never boring. The experience is always different because people are never the same. Yes, some candidates are just not good, but even bad ones are bad in different ways.<p>I know common wisdom for using scripts is to have repeatable and comparable evaluations so that you can choose the best candidate. I understand the desire but I prefer to find the best in each candidate and if it means I have to use a lot of gut feeling and intuition to make the final decision then so be it, I believe it still results in better overall results. The idea to choose the person I want to hire based on how many answers to my standard questionnaire they got right was never appealing to me.<p>I can totally see how if you do scripted interviews it can become boring, so don't. Interviews can be fun and it can be a creative process.<p>Another way interviews can be fun is if you find someone who has stronger skills than you do in a particular area. I love it when a candidate teaches me something new. Find where their strength is and let them shine.</p>
]]></description><pubDate>Sun, 18 Aug 2019 21:17:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=20732940</link><dc:creator>tignaj</dc:creator><comments>https://news.ycombinator.com/item?id=20732940</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20732940</guid></item></channel></rss>