bob_roboto's comments

bob_roboto | 4 years ago | on: Being on-call is working. FULL STOP

It actually depends on the country (and I assume even state and city). Where I grew up, most firemen actually sleep at home and not at the station. They have "normal" work hours during which they do non-emergency work, such as train, maintain equipment, raise awareness for fire prevention, etc. and they get paid for a target work week of ~40 hours. Being called out "outside" of hours is compensated, AFAIK in TOIL. Point being, there is no one size fits all model and it has to work for your environment.

Asking for being on-call for 7 days to be equivalent of 168h of work, i.e. after you have been on-call for a week you go on vacation for 3 weeks is just as unreasonable in most situations as companies asking their staff to be on-call without additional compensation.

bob_roboto | 4 years ago | on: Being on-call is working. FULL STOP

The problem is that on-call is something in between work and not work. Depending on how often you are actually paged, it is closer to one or the other. As such, the policy I usually implement is simple:

- Being on-call is compensated, although at a much lower rate. The compensation is for the inconvenience of having to carry you computer with you, not being able to get drunk, not sleeping as well (if that applies to you), etc.

- When you get paged, you can generously compensate that time as TOIL. E.g. if you get paged and you realise it's a false positive and go back to bed, you can still compensate 2h as you need to fall back asleep and likely will not be as rested. If you have to do something for 4 hours, take off a day because you likely had to cancel some personal plans or have not had any meaningful sleep at night.

bob_roboto | 4 years ago | on: Ask HN: What's the most life-changing blog post you've ever read?

I know the article is intentionally provocative and over the top to provoke a reaction... whether it's a healthy reflection on your attitude to success or crippling self-loathing probably depends on the reader.

Also, there are undeniably some hard truths hidden in there. However, my experience in almost 20 years in the tech/software/product industry often paints a different picture. Yes, our brains keep us from changing and evolving and yes, obviously you need skills to be successful in life and your career. But in my industry in particular, hard and soft skills are not the dominant factor that keeps individuals from succeeding or progressing. I'm lucky enough to work with an abundance of talent and skill, and yet, one of the major factors of dissatisfaction is lack of "progression". One of the main factors is self-confidence and in the more severe cases even mental health issues. Some of the most skilled and knowledgeable engineers I worked with struggled to realise their potential because of it. If the leaders in your organisation think they can just shout at them to "learn self-confidence as a skill" and get over it you're going to have a bad time. It will attract a certain type and employee that thrives in that environment and disengage everyone else. Wasting talent, wasting skills and ultimately a lot of money. Creating an environment and learning how to tease the potential out of skilled and talented individuals is not a "hippie/hipster" thing to do, it is good for business.

bob_roboto | 4 years ago | on: Show HN: Open-source A/B testing framework

Not necessarily. Granted, you obviously need to make a network call at some point but you can host the entire experiment configuration in a file that is served through a CDN and the mobile client only needs to download it once (and it can be cached however appropriate for your use-case). The client SDK can then use the file to derive the experiment configuration by passing the required parameters to determine experiment allocation into the SDK which can then compute without further network calls.

bob_roboto | 4 years ago | on: Ask HN: Has anyone fully embraced an event-driven architecture?

It depends on your definition of fully embraced. If you mean that there is no synchronous communication between services, then no, and neither does it make sense in the real-world scenarios I am aware of.

However, I am an advocate of the pattern and have seen it used successfully repeatedly. The largest scale as the data lead for a product maintained by 100-200 developers and several thousand transactions per second.

To answer your specific questions

>handling breaking schema changes or failures in an elegant way, and keeping engineers and other data consumers happy enough?

We did not allow for breaking schema changes. If there is a breaking change, it's a new event/topic. We used Kafka and every topic needed to have a compatibility scheme defined (see https://docs.confluent.io/platform/current/schema-registry/a...) to clarify what constitutes a breaking change. Even though some claim that producers and consumers can be fully decoupled, you will need to have a good idea who your consumers are and the time horizon of the data they consume. Application engineers are usually easier to keep happy than machine learning practitioners and other data consumers that want to consume events emitted over a long time period, potentially years.

> As a trivial example, everybody talks about dead-letter queues but nobody really explains how to handle messages that end up in one.

Dead letter queues are a tool you can use when the context demands it, applying it wholesale is likely creating too much overhead. But to provide you with a specific example. Some emitted events will be revenue impacting and depending on your setup, you actually want to use the events for financial reporting (careful! some more info later). In this specific use-case, if you can't process a record, the last thing you want to do is throw the message away. Somebody will need to have a look at these records, fix the cause and then either re-emit the records based on what you know about them from the header or fix the records in the DLQ. So think about the guarantees you need to provide and decide whether a DLQ makes sense for your use-case.

Some other thoughts and considerations.

- Topics more or less directly become analytics tables. Almost creating a unified view on your application's data otherwise difficult to create.

- How are the messages emitted. Are the messages emitted from the application logic? If so, what guarantees do you need? What happens if the app crashes (e.g. after a DB transaction happens and before the event was emitted). Depending on what you need, have a look at the transaction outbox pattern.

bob_roboto | 5 years ago | on: Signal community: Reminder: Please be nice

I second that. Once a vendor becomes important enough I even stop thinking of it as a vendor and rather as a partner that you interact with as if it was part of your own organisation. I am not amused when members of my team are rude to a vendor and jeopardise a relationship that took a long time to build. Even when you pay six figures a month, you can still get preferential treatment compared to other customers in the same tier when it comes to influence over the roadmap if you actively foster the relationship.

bob_roboto | 7 years ago | on: Quitting my job has been the best thing I've done for my career

I can second this. I always take 3-6 months off between jobs for travel and personal development (given I stayed there ~2 years). I'd say I technically progressed about the same during these periods as I did during the preceding employment (minus the real world experience) because I actually really enjoy it. I have never once gotten a negative response in an interview because of it.

bob_roboto | 8 years ago | on: Google Maps' Moat

There is so many more examples. Also hardly any of the links in the web version have an URL behind them, so you can't just open them in a new tab when researching something. Arguably one of the core use cases of a map application.

bob_roboto | 8 years ago | on: Show HN: All Politicians in Switzerland

Great job! The search can probably be improved. Searching for "Cedric" without the accent aigu (é) does not yield any results, despite there being several Cédric in the database. If this was an educational project I recommend spending some time on search methodologies since they are very interesting. Start with using something like Levenshtein Distance and improve either performance or accuracy from there. Otherwise just use one of the existing open source libraries.

bob_roboto | 8 years ago | on: Ask HN: Writing cover letters for tech jobs

Having had to go through public interview processes (i.e. not being approached by the company or referred) recently for the first time in a while I can't agree more. Take home assignments are fine _after_ an interview. Companies that send you a take home assignment before they want to talk to you are a waste of time and quite frankly, it's rude and shows a lack of respect. The ultimate insult being not getting back to you even though you scored the maximum on their silly CS undergrad tests.

bob_roboto | 8 years ago | on: Microsoft Adds an OpenSSH Client to Windows 10

You are, of course, absolutely correct. And I hope this is what internal package maintainers in large companies and individuals using putty as their standard SSH client do. However, for many of us putty is a backup when they are not on their linux/osx machine and just quickly need an SSH client to do something. The workflow there is google->putty->first result->download->execute. You absolutely shouldn't, but we also shouldn't drink and sleep 8h a night :)

bob_roboto | 8 years ago | on: Microsoft Adds an OpenSSH Client to Windows 10

Ultimately this probably helps increase the overall internet security. Although in recent years it was available from a TLS secured source [0], the putty.org site (which might or might not be operated by the maintainers) is still not https secured. Given that probably tens or hundreds of thousands downloaded it from there (imagine, getting an SSH client from an unknown source!) I'm surprised not more happened. Other than that, thanks for the great work maintaining this project which helped me and others a great deal throughout my career. Countless times have I been stranded on a Windows server and quickly needed an SSH client.

[0]https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.ht...

page 1