Hacker News new | past | comments | ask | show | jobs | submit | camgunz's comments login

Do whatever QA is doing to find your bugs before they find them. Then spend 20% of the time to automate 80% of that work. That might be unit testing, it might be selenium, it might be some different linter settings, but keep the focus on bang for the buck stuff.

Same here; I've always intuited that this would limit the generated tuples. I'm too lazy to do it now, but I wonder if other DB engines also perform this optimization that effectively makes filtering in JOIN conditions equivalent to filtering in WHERE clauses. I'd also be interested in some example queries that were hand-optimized to the point of obvious obscurity--my guess is it's harder to do this in SQL than in something like C.

Any non-toy SQL engine is going to do condition pullup and pushdown. (Well, I know at least one that only does explicit pullup, but does pushdown more implicitly because it doesn't use a tree. The effect is largely the same, modulo some shenanigans around outer joins.)

Pushdown is actually a more subtle problem than people give it credit for; it inhabits this weird space where things are too trivial to be covered in papers but is too hard to cover properly in textbooks (e.g., no coverage of multiple equalities or outer joins).


Besides feeling like every blockchain article is word salad, I tried pretty hard how they provide any integrity guarantees but couldn't find anything. The core problems with decentralized computing are privacy and integrity, i.e. I don't typically want someone knowing what I compute, and I don't want them to be able to muck with my results. AFAIK you need hardware support for this (a la SGX or TrustZone) but I couldn't find any reference to this stuff.

I'm genuinely super curious because I hear this a lot, but the deepest I ever got was... 5 apps? Do you have some kind of like generic cover letter/resume you fire off 3 times a day? What is your process?

The first ~3 months I wrote specific cover letters and modified my resume according to what I was applying. Then I gave up and just blindly applied to everything without bothering to read anything other than the title and specific qualifications using a generic (but detailed and well-structured) resume.

Thanks for your response--that's incredible stamina to do that for 3 months.

from your response it is not clear whether you are still searching or if you found a job. i can understand getting tired, i feel the same, but i worry that taking less effort reduces my chances.

what are your thoughts on that?

(what is a well structured resume in your opinion? did you get any feedback if it is well perceived? i'd like to think that mine is detailed and well-structured too, but i don't feel certain that it is good)


I sold my house and fucked off to Europe. Hopefully will outlast whatever thing is happening, but I'm not that hopeful, so I'm searching for new passions. I still look for work once in a while and blindly apply to what a carefully crafted search query yields (searching job application sites (not job boards!) + position and/or skills). I decided after 3 months to go for quantity over quality. It hasn't been much more successful, but at least I don't get frustrated spending 2h researching a company, crafting a cover letter and creating a resume to get a refusal the next day.

Any time you'll ask for feedback someone will tell you to do things differently and it will never end. I've been hiring tech folks for 15 years, with 25 years total experience, so I know what I want to see when I look to fill a role, that's how I build my resume. I want it to show at a glance where I've worked and what I did there, no more no less.

If efforts are made and you see a difference, then don't stop. If you see no difference (eg uptick in responses or interviews), as is my case, I've got nothing to say that will help you. Sell your house and fuck off to Europe maybe.


I've been hiring tech folks for 15 years, with 25 years total experience, so I know what I want to see when I look to fill a role, that's how I build my resume

maybe you could share some insights here?

my CV starts with a few paragraphs highlighting what i think are my biggest accomplishments and showing off how broad my experience is. followed by a list of tools and languages i have worked with, then a list of projects and the employment history. for jobs where it seems relevant i also have a list of talks and workshops i have given. the whole thing is quite long though. 5 pages for the short version and 8 pages for the long one.

searching job application sites (not job boards!)

what's the difference here? do you mean the career/job lists on company websites?


I definitely don't want to read 5 pages especially if it's all redundant information. Mine is two pages, I don't dig in gigs past 10 years, they can ask if they want my origin story.

I don't care about the languages you know, I care about the languages you know and how recently you used them and your level of proficiency. Without that trifecta the information is useless (well, I'd have to ask). Was it a school project or did you blow someone's mind professionally?

I wouldn't do more than a sentence if you're going to summarize (eg 25 years of experience in building and leading technical teams), I can make my own unbiased summary.

As for application sites, I mean something like jobs.lever.co or boards.greenhouse.io.

Hope that helps, feel free to reach out by email.

Edit: mobile typos


I care about the languages you know and how recently you used them and your level of proficiency. Without that trifecta the information is useless

this is not a question just for you, but i wonder what others think about this too.

i get that the number of years of using a language is a useful indicator, but the age? is my experience from 10 years ago no longer valid? also, proficiency in one language does translate to overall proficiency in any language. not 100% obviously, but the more programming experience i have the better i can learn new languages, and the faster i can get productive. same goes for any other tools. old experience is not forgotten. so even the years i have worked with any particular tool is missleading. and if i only list my work from the last 10 years then i'd look like all i have ever done is javascript, and that would limit my options very much.

i have been able to work on python and php projects as a mid-level developer without any formal prior experience in those languages. in the python case the employer knew about it and was still comfortable to hire me. in the php case i was able to cite some php work (which i had done) and i was still producing better results than any of the junior developers on my team. only the team lead was clearly more experienced then me.

how am i going to make that point if i don't list all of the projects i have worked on, no matter how long ago?


Given what I've said here you probably shouldn't take my advice anyways

In this market you m have to be Linus Torvaldes to put in only 5 apps no matter how well connected and networked are. And even then good luck.

when was the last time you did this? its absolutely awful still

Earlier this year. I did have pretty bad luck, then did some contracting, then converted that into an FTE role.

Everyone's brain is different, but I'd bet you'd be surprised by how good you are at things you rely on an IDE for (autocomplete, go to definition). For other stuff, sed and grep will cover 90% of your needs. Source: me, and I'm pretty good at this.

I would guess most people who listen to music while they work have the volume way too far up for that amount of exposure. Anyone on an iPhone should go into Sounds -> Headphone Safety and reduce loud audio to 75 dB. You'll probably be shocked by how quiet that is.


I wonder how they determine that? Especially with Bluetooth, you have no idea how much sound energy is being put out, and can't infer it from power draw or anything similar.

It's as simple as you'd expect: AirPods and beats have their SPLs hardcoded, everything else is estimated based on volume control.

Although Apple says there can be bad interactions between this and live listen, so maybe there is some realtime monitoring happening.

https://support.apple.com/guide/iphone/check-your-headphone-...


> But is it malicious? Almost certainly not.

IDK, I think it's to enforce pecking orders based on stuff you can't at all help. I grew up working class and hated it--it's essentially bullying, no matter how you look at it.

It's one thing to make lighthearted jokes about some stuff you did, like "remember the time you forgot to base64 decode the images and stored garbage in the DB". It's entirely another to bully people for who and what they are. You're basically daring people to get somehow violent with you to get you to stop, and besides that being dangerous, a lot of people would rather not. It also creates this dynamic where people willing to be violent avoid bullying and rise ok the pecking order, and those who aren't don't.


On my way to a "white collar" job, I worked construction. It was stage building, which is the kind of construction that "blue collar" workers routinely laughed at, but it was still hard, physical work.

How did I get my promotion that made the job worthwhile? A person fell 30 feet onto concrete. The next week, I was replacing him, with all of the risks he had, and the potential outcome.

That said, all of the chiding and sideways comments I received in the construction field didn't amount to half of the comments I received as a developer. There is something toxic about our field that we don't want to focus on (and I can't blame those that look away).

People claim "simple" when they mean "my way". People claim lack of "knowing how to use the language" when the wrong ideas get injected into a language (I'm personally looking at you Perl, but now that I'm working Golang, it's starting to feel too familiar).

The truth is, there is often more than one way to solve a problem, but an strong willed person won't see it that way. I've walked away from plenty of marginally (and I mean marginally) better solutions just to compromise to some form of a solution than I care to enumerate. One can't win such arguments.

I agree, it's not malicious, but is is egotistical. I've even won solutions where I said "Let's all agree that you're right, and then let's accept the code as-is." This industry is improved compared to decades before, but it's not yet fully rational, or even fair.


That said, all of the chiding and sideways comments I received in the construction field didn't amount to half of the comments I received as a developer. There is something toxic about our field that we don't want to focus on (and I can't blame those that look away).

As a programmer, I've worked in places and with people who were straight-up sociopathically abusive and I've worked with people who were absolutely respectful and reasonable and groups that were in-between. The co-workers, the boss, the company and location's culture all went into this.

Thing about this is - since it is variable, since it is not necessary, there's no excuse for it as a natural thing, in any industry. Also, while sometimes it's the result just dysfunction (the "tolerant" boss who tolerates psycho team lead) but often it's a strategy for extracting more work for people (at Intel, for example).


it's not bullying. it's a way to cope and a way to help the weirdo find his base by not having to defend who or what he is. it's a welcoming gift. accept them as they come. think you are the only weird one or "idiot" around? think you are better? you have a usp, make it work. turn it into a show. distract us from our boring reality. give us that serotonin/dopamine spike that fades out slow. we are all muscle memory here. we need something to keep us from the edge. we are aware of how all these computer people and academics run the world and we know its a matter of character and that there are better ways. We are aware that most of them made a conscious decision. But we sure as fuck aren't going to kill them all for it.

it's also a way to adjust you to the lower end of the superego spectrum.


I broadly agree, but would draw this out a little:

> Its just that American lawmakers don't value traditional American family, they'd rather woman have an abortion, instead of subsidized childcare and 12+ months of paid family leave.

I'd be surprised if any federal elected official was on record with a position as ghoulish as this. I think the diversity of opinion on "what do we do about childbearing" is broader than "American lawmakers... would rather women have an abortion". At least the right is pushing a lot of incentives to make women staying home to raise children economically feasible again, and the left is really trying to figure out the care economy. There's a lot of hot button cultural stuff entwined with all of this, but also a rich policy discussion happening underneath.


This feels like a really good starting point to me, but I just want to point out that there's a very low ceiling on the effectiveness of "carefulness". I can spend 8 hours scrutinizing code looking for problems, or I can spend 1 hour writing some tests for it. I can spend 30 minutes per PR checking it for style issues, or I can spend 2 hours adding a linter step to CI.

The key here is automating your "carefulness" processes. This is how you push that effectiveness curve to the right. And, the corollary here is that a lack of IC carefulness is not to blame when things break. It is always, always, always process.

And to reemphasize the main point of TFA, things breaking is often totally fine. The optimal position on the curve is almost never "things never break". The gulf between "things never break" and "things only break .0001% of the time" is a gulf of gazillions of dollars, if you can even find engineers motivated enough and processes effective enough to get you anywhere close to there. This is what SLAs are for: don't give your stakeholders false impressions that you'll always work forever because you're the smartest and most dedicated amongst all your competitors. All I want is an SLA and a compensation policy. That's professional; that's engineering.


> lack of IC carefulness is not to blame when things break

But if you can trust ICs a bit, you can move faster


Yeah but phrasing/negotiating it this way obfuscates it a little. If you're in negotiations and you ask for $60k/yr more gross, then it's clear you're asking for more than a PA would cost (maybe, factor in total comp for them too and it's probably closer to $65k/$75k). Do people negotiate net?


> Do people negotiate net?

Nobody negotiates net. It's not even practical. Your tax situation will depend of the other revenues you might receive on top of your wages and the deductions you are eligible to and your employer doesn't have to know about that.


Nobody negotiates net, but companies will keep in mind an employee's lowest possible tax bracket given their gross (and therefore their highest possible net) when determining the cost:benefit of offering marginal "material compensation" increases (vs other components of total compensation) — both during initial negotiation, and when trying to design later incentives.

Which is to say, if you're making USD$100k/yr working for Ericsson in Sweden (where you're in the highest, 52.9%, tax bracket for any marginal income above USD$83k), they're gonna be thinking differently about how to reward you as a high performer, vs if you were making USD$100k/yr at Google in the US (where that salary would instead just have you scraping the top of the 22% tax bracket.)

Google would almost certainly just give you more money — and would likely continue to do that indefinitely, as even the highest US federal tax bracket (37% at USD$600k/yr) isn't too onerous. Ericsson, on the other hand, might already rather offer you something non-monetary and "cheap" for them (e.g. a company car), rather than biting the bullet on a "substantial, productivity-incentivizing" raise (i.e. one that meaningfully increases your net income.)

And that is why precisely why salaries tend to be lower in many European countries (that have these high tax brackets); and why everyone in those countries instead expects / demands / enshrines requirements in law for tons of non-monetary benefits, like long vacations! "Purely salary" and "salary levels off, then tons of non-material benefits" are both Nash equilibria in compensation space; just very different ones.


Sorry but that’s unsubstantiated non sense.

To begin with, non monetary benefits have to be declared in most European countries and impact your tax rates and are taxed the same way than giving you more money so your whole dodgy reasoning immediately falls apart.


The only time I've heard of negotiating net is in certain Gulf countries where employers will pay all your taxes for you. Not a thing in the US or Europe though.


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

Search: