Hacker Newsnew | past | comments | ask | show | jobs | submit | more clavoie's commentslogin

One of my useless skills back then was being able to recognize modem speeds, brand and sometimes (especially Motorolas and USRs) model just from the handshake noises they made.

For a little while, I could recognize my old man's BBS' individual subscribers calling in just by turning up the volume of the modem on top the 386 box...


1) Pick a country I haven't been to and is interesting to me

2) Go to wikivoyage, pick a few highlights that I HAVE to see

3) Book a few youth hostels

4) Go there and walk about the cities while hitting most of what I noted in step 2.

it's a very chill process.


SEEKING WORK | Remote Only | Anywhere

Willing to relocate: No

Technologies: TLA+, Haskell, Clojure

Resume/CV: On request

Email: clavoie at sandreckoning.com

Experienced developer with years of management experience and a focus on systems that cannot fail. Also available for technical due diligence.


While I hear what you're saying, I doubt that's often the case. Either you have a company who either tolerated bad employees for a long time or just figured out they were bad at their job.

Neither points to a very healthy culture to start with.


Quite literally: when interviewing, just ask for significantly more than you make. Like, 10-20% more.

My background: I'm somewhere around the 20 years of experience mark, a bit more than a quarter of that as a dev at a FAANG, a bit less than a quarter of that as a hiring manager / senior executive for startups (in one case, nearly quadrupling the number of devs in my org in a year; in another, managing a 4-5 dozen devs org).

The ideal situation is looking for a job while you have one that you are at least mostly-happy with. Or at least one where you can stay for at least another few months still -- in case you don't get the offers you want. And have a honest idea of how much you should or want to make. Ideal scenario is having close and honest friends that are peers (or even better: hiring managers) in your domain that you are comfortable talking money with.

Go through those companies in some order (most excited to least excited if you're in a hurry, least excited to most excited if you want to get the best offer possible) and interview at 1-2 at the same time, in order. Pass the interview at least up to the point where you're talking salary. In my experience, it's rarely upfront, which is an annoying waste of time if the candidate and company are on totally different planets regarding salary expectations, but having been a hiring manager, I get it [1].

Then get offers, or not. As hard as you can without pissing the company off (pissing off a hiring manager is harder than most people think, just be at least somewhat nice and reasonable about the whole thing) -- make sure to skip over HR and talk straight to the hiring manager, before and after the interview [2]. Preferably, ask to book the post-interview meeting during your pre-interview chat, so the hiring manager has extra peer pressure to actually show up "in person" (well, on the phone). Bonus points for reaching out to a senior director or (for a small enough company) a C-level executive on LinkedIn.

If you get all offers, you probably are asking less than you should. No offers, much more. 50/50? You're asking just the right amount. Not all refusals are salary-related, but for now, companies can't afford to be too choosy, so overall, market bias should be on your side. It's a time consuming process, but for a lot of people, frankly there's a 10-20% salary hike on the line every few years -- how much time is that worth to you? And don't feel bad for the "poor hiring managers" whose offers you do not accept in the end [3]. Keep in mind most of the advice on the internet is from recruiters and hiring managers that have a vested interested in candidates not shopping around (for a tangentially related topic, read https://en.wikipedia.org/wiki/High-Tech_Employee_Antitrust_L... and think about this topic, hard).

Finally, do this every year or two, even if you have no intention of leaving your current place. First, it'll leave a trail of companies (and hiring managers, that may go to a company you're a better fit for) knowing your name and wistfully thinking about the great candidate that got away. And second, it's a great thing to know exactly your worth on the market. I know folks who've doubled their income in less than five years this way.

To be fair, there's the (I believe very small) chance that your current employer will hear about your shenanigans -- and that could bite you in the ass in the (very) short term. Personally, I've never seen that, either as a candidate or hiring manager and for me personally, the risk is 100% worth it. Caveat lector.

[1] When I hired, I usually had 5-6 roles opened in my budget, and if your interview process proves to me you're a talented but more junior candidate than I hoped for, I might compromise but offer you below the bracket I was thinking about and raise the experience bar for the next hire. I usually have some kind of wiggle room of that nature, wiggle room which mostly disappears if I told you the expected salary bracket upfront.

[2] Admittedly, this is significantly easier at smaller company, where a formal HR is oftentimes just not there yet. You'll get significantly better feedback straight from the horse's mouth, including fun statements like "your salary expectation just doesn't fit in my budget"; though that either means you really asked for more than I can afford, or you did not convince me you're worth that much.

[3] First, they did a poor job convincing you to work for them and that's explicitly their job during the interview process, whether they know it or not. And second, if the company they hire for is any good, they usually only hire an absolute maximum of 30% of the candidates they interview (usually, much, much less: that FAANG I mentioned way earlier? more like 5%). If they can be choosy, why can't you be? Plus, I remember most of the candidates that I made offers to and said no to me. Not because I'm annoyed at them, but rather (until I left my hiring manager position) because I followed them on social media just in case they said something about their current job being a PITA or otherwise hint they might be looking. Telling a company no is a great way to leave a reputation of being better than they thought, and the good ones will not forget and keep the finger on the offer trigger. Keep in mind the good hiring managers also have a reputation they want to preserve, if they're even half thinking about their own career prospects...


I'm surprised we're not seeing the same thing for graphics cores. You'd think a modern desktop could be handled by a lot less horsepower than the latest Unreal based game. Maybe that's because the much higher parallelism make it easier to use a low percentage of graphics cores?


There's a rudimentary version of these on laptops: the integrated graphics and discrete graphics are co-opted to make a hybrid GPU, but it has a lot of gotchas (especially when it's not AMD-AMD (which is super rare and will still be if their new laptop designs still flopped the market)). I think that it will matter in the future for two reasons: 1) Intel being competent in graphics and 2) East Asian and European power consumption regulations (which is sometimes commented as draconian, and the reason that Intel even bothered making ATX12VO).


(Disclaimer, I worked at Google over a decade ago, for about half a decade; as an SRE for about 2 of those years)

Yes, it absolutely makes sense. You never know when a typo in a config file or bug in your job-management code will go bonkers and try to take over all resources. Same think as disk quotas on computers with tons of users: you want to limit the damage that a user can accidentally (or not...) do.

Good quota systems saved my team's bacon way back when a few times, when fewer people were at the company; I can only imagine how useful they are at what, 10-20x the size?


In particular you cannot provide an internal SLA on write requests to low-level storage solutions if you can't guarantee that you actually have the spare disks.

The SLA would have to be something like "we guarantee 99.999% write availability unless team A or team B or team C makes a mistake", so now you have to look up what team A and B and C are up to and what do they guarantee. Instead of the more sensible "we guarantee 99.999% write availability unless you are out of quota".


Exactly. At some point, someone somewhere will have a bad day / sneeze on a keyboard at just the perfectly wrong time -- at Google's scale, that's statistically a daily (hourly?) occurrence.

Quota systems for the win -- if only as a shared agreement on who can do how much damage / take how much resources before they're automatically stopped and more resources must be justified through some review process (likely involving budgetary concerns).


Shouldn't there be a soft limit that start sending out warnings before hitting the hard one ? Unless some service started eating the quota so fast that it reached both limits in quick succession, the upper limit should never be reached.


I can't comment on the current incident, as I've been gone for more than a decade.

But my recollection is that most SRE teams would have had exactly such things -- either as really crazy borgcfg (sorry, I mean kubectl) code, or as a borgmon (sorry, prometheus) alert.

The former were a real PITA to work with (borgcfg hadn't been designed with that in mind), and the latter were only reactive (and thus unable to warn about things until they were fast becoming a real problem).

So most likely those safeguards were somehow disabled or made ineffective by the exact circumstances of the problem, possibly the speed at which things developed.


From the article capacity was reduced


You're right. Still, a better approach could have been adopted, like blocking a change that would cause some service to go over quota, or have the automatic system change the quotas gradually, thus giving time for alerts and human intervention


I'm sure that this Google outage was the combination of several independent issues. Perhaps there are the kind of safeguards you mentioned in place, but they returned an incorrect view of the world because of a bug exposed by a network partition? The point is that with huge distributed systems the things take them down (at least once they're mature) are typically the result of several failures that compound and interact in a way that wasn't foreseen. IMO it's more likely that the suggestions you made (blocks and/or automation) are already in place but failed in some more complex way.

Source: worked at a FAANG for a decade, saw many big incidents. Almost all were the confluence of several smaller issues that, had they happened alone, wouldn't have been newsworthy.


Well here’s the thing though. Google are removing quotas from things like appengine. How can it be simultaneously helpful to have quotas but at the same time google wants to remove them?


I think you're conflating very different things. Quotas may be removed if you've got a virtually unlimited amount of a certain resource (and even there they can be useful to prevent overbilling), but disk quotas are necessary because disk space is not unlimited. Without those, a noisy neighbour can break your application.


[flagged]


"Don't be snarky."

"Please don't post shallow dismissals, especially of other people's work. A good critical comment teaches us something."

https://news.ycombinator.com/newsguidelines.html


That's injecting a lot of malicious intent into what I said. I don't think making an unreasonably dark assumption about someone's intent is a good reason to treat them with hostility.


I believe you about your intent, but the problem is that we have to judge these things by the effect that they produce in threads. Intent doesn't communicate itself, unfortunately, and if a comment takes a flamey or trollish form, that's the sort of effect it's likely to produce.

So the burden is on each of us to disambiguate our intent. It doesn't happen automatically. Probably the most reliable way to do that is to include enough markers of good intent in a comment to shift its pH a bit.

Here are some previous explanations in case they're helpful:

https://hn.algolia.com/?dateRange=all&page=0&prefix=true&sor...

https://hn.algolia.com/?dateRange=all&page=0&prefix=false&so...

https://hn.algolia.com/?dateRange=all&page=0&prefix=true&sor...


Fair enough, I got the impression that the user who called me snarky was gaming the rules to get my comment deleted, so I was a bit annoyed. After the first page, their comment history is mostly sarcastic and demeaning remarks, so it was clear to me that they simply didn't like what I said for personal reasons. I realize it doesn't make a difference and perhaps you reached your conclusion independently of their remark, but I was understandably a little miffed and felt like I got played.

Regardless, I'll remain conscious of what you said.


I didn't create some elaborate ruse to bury your comment. I'm not that smart. I just called what I saw. Tomorrow if you write a comment I agree with, I would judge it independently.


I don't wanna do-si-do, it's not a big deal.

What I meant wasn't some pointed or venomous criticism, it was more or less, "The best laid schemes of mice and men / often go awry." That's all.


And that's precisely why you implement checks at multiple levels. You can't rely on one level to always be well behaved and so you never have to worry about issues at another level. Not sure why you had to be snarky about it


Stories like this remind me of stories like the one about avoiding death:

https://www.k-state.edu/english/baker/english320/Maugham-AS....


What's the need for the snark ? Bugs can happen anywhere. Doesn't mean we don't try ?


[flagged]


You seemingly refuted a good solution. Rather than guessing my background or character, introspect about your comment.


I made guesses because you took an incongruously dark read of my comment that seemed more reflective of internal disquiet than anything I said. I'll respectfully ask that you refrain from being hostile towards others based on assumptions regarding their intent


RenoRun | Software Engineer | Montreal, ONSITE ONLY | Full time

RenoRun is one of North America's fastest growing venture backed startups, modernizing the way remodelling and construction professionals run their businesses. We are growing rapidly in Toronto; Montreal; and Austin, TX. Our US expansion is underway.

We are looking for talented individuals to join our growing development team in Montreal -- you'll join a diverse team of individual contributors and teammates and help build profoundly transformative products for the construction industry; from just in time delivery of construction materials to online commerce tools, all the way to planning and realtime scheduling applications.

We're currently hiring for three teams: a web development team building our online presence and shopping experience in TypeScript, NodeJS and React; a mobile team building cross-platform applications in Dart and Flutter; and a backend team building the intelligence platform and support APIs in Java (and possibly, soon, Clojure!). Other technologies and providers you'll interact with include AWS, MySQL, Ansible, Prometheus and tons of online APIs.

You can find out more about us at https://renorun.com/about#careers -- we are committed to a diverse and inclusive team and want to hear from YOU.


RenoRun | Software Engineer | Montreal, ONSITE ONLY | Full time

RenoRun is one of North America's fastest growing venture backed startups, modernizing the way remodelling and construction professionals run their businesses. We are growing rapidly in Toronto and Montreal, Austin, TX, and our US expansion is underway.

We are looking for talented individuals to join our growing development team in Montreal -- you'll join a diverse team of individual contributors and teammates and help build profoundly transformative products for the construction industry; from just in time delivery of construction materials to online commerce tools, all the way to planning and realtime scheduling applications.

We're currently hiring for three teams: a web development team building our online presence and shopping experience in TypeScript, NodeJS and React; a mobile team building cross-platform applications in Dart and Flutter; and a backend team building the intelligence platform and support APIs in Java (and possibly, soon, Clojure!). Other technologies and providers you'll interact with include AWS, MySQL, Ansible, Prometheus and tons of online APIs.

You can find out more about us at https://www.renorun.ca/ -- we are committed to a diverse and inclusive team and want to hear from YOU.


RenoRun | Software Engineer | Montreal, ONSITE ONLY | Full time

Award-winning and venture-backed, RenoRun is one of North America's fastest-growing startups - And we want you to be part of our story!

Who Are We? We know building and renovation. We are industry leaders. We cut to the point because we value people’s time. We are diverse, inclusive and values-driven.

What Do We Do? We centralize locational, scheduling, ordering, and transactional data on building materials and products to eliminate store and distributor visit hours from construction cycles.

What Do We Want You To Do? We need your help to scale our company into Series B and well beyond. You have the option to join one of the following rapidly-growing teams:

* Web Development: building our online presence and shopping experience in TypeScript, NodeJS and React

* Mobile Development: building cross-platform applications in Dart and Flutter

* Backend Development: building the intelligence platform and support APIs in Java (and possibly, soon, Clojure!).

Other technologies and providers you'll interact with include AWS, MySQL, Ansible, Prometheus and tons of online APIs.

Learn more about us on our website https://www.renorun.ca/ and then get in touch and tell us more about you!


Are you guys looking for new grads at all (with internship experience)? I'm looking for something in Montreal and your Web Dev or backend roles interest me.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: