HN user

Ezra

194 karma

Lurker/developer from Saskatoon, Saskatchewan, Canada. ezra@usefuliftrue.com

Posts0
Comments37
View on HN
No posts found.

There are, in the simplest terms, two hurdles you have to overcome to get hired.

1. Get an interview 2. Interview well enough to get an offer

There’s various approaches to either, and it sounds like (1) isn’t a problem?

For (2), if you interview and test as well as you say you do, it’s likely the case that you are recognized as somebody who would be a good fit, but they have more viable candidates than open positions, and you’re basically losing a coin flip.

If this is happening a lot, it might mean that you come across as unlikeable. Given two equally competent candidates, they are choosing the more likeable person.

Key metrics, for sadists so inclined, might be— A) Number of applications B) application-to-callback ratio, C) Interview-to-offer ratio

You could make this more fine-grained, but that’s it.

I was part of a mass firing in April last year, and found work in August. I had a similar experience; I had enough on my resume to have several interviews per week, so I never put much effort into optimizing that.

I, in retrospect, was usually failing interviews that were open-ended, and the interviewer had a long list of questions to fit into a short time, and I believe we weren’t getting through all the questions. I was talking too much—I get excited about Software Development—and they were content to let me. Even if they really liked me, what were they supposed to do when they have half a blank form at the end of the call?

I was getting into late stages with many of the companies, definitely completing all stages before you would expect an offer. This happened a few times too. It happens. There are lots of good candidates, I guarantee that the reasons would seem very petty and capricious if you could see what was said when the hiring committee met. I’ve been on both sides. That’s life.

Two months is not a long time in a job search, unfortunately. Many companies you’ve applied to are barely organized enough to start screening candidates within 30 days.

As for myself, I eventually had a friend/colleague from my former company refer me for an interview at the company I ended up at. And after I got one offer I found myself with three the same week, after months of searching. And no income, pregnant wife, mortgage payments, etc. Fun times!

It’s nerve-wracking and frustrating to look for a job and constantly be interviewing. I often say that job hunting is the most humiliating thing someone can do. It’s exhausting and awful. It’s hard to be likeable when you do something that is exhausting and awful all day. I set some target for daily applications, and made sure I had free time for interviews, and was technically ready. I trusted my skills, so I actually spent far more time trying to stay sane and personable and energetic for the calls I was getting.

I think committing to the numbers game is sound advice. If 100 applications gets you ten interviews, and you need 10 interviews to get an offer, it’ll be somewhere between 0 and some hundreds of applications to get an offer.

The good news is that you only need one offer, and your search is done.

The bad news is that the only variable you can really affect without improvements to your applications or interviewing skills, is to increase application volume.

The worse news is that a lot of really terrible applicants and bots are flooding employers with not-good applications, which makes this whole thing more awful for everybody. Which increases the value of a referral.

I read this unironically before every interview I do, and recommend it to all the developers who ask me for interviewing tips: https://codeformore.com/can-you-pretend-to-be-normal-for-up-...

Good luck! Stay sane!

System76 used to be rebranded Clevo/Sager laptops. I’m not sure if that’s still the case. You can buy them in various places, customize them, and have them put Linux (or nothing) in it. Or build your own. I paid to have mine built, but got out the screwdrivers to replace a hard drive, and it wasn’t too bad.

The build quality is worse than Mac, definitely, but you can get a really nice spec for cheap. And they’re serviceable, definitely on-par with the Lenovo and HP models that we’ve had in our house.

I bought a custom build from Xotic PC, using the “no operating system” option, and slapped Fedora on it. I’ve been Linux-only in my personal laptops since 2012, and windows-free much longer than that.

Hardware support is excellent, I’ve never had an issue. Everything just works. There’s a lot of FUD out there, and I’m skeptical of how accurate it is. My experience has been extremely low-touch, and extremely positive; it’s a tool, not a hobby, for me—I don’t tinker.

We write away the status part of our syncs. Just write it down, we don’t need to hear it.

One thing we used at the last two companies I worked at was what we call SWATH—something I invented for reasons of corporate judo.

It’s 5 simple true or false questions that gives you a score. Answer them in order, atop when you answer false. Your score is the number if true answers.

It takes most people 2 seconds to do, and is a kind of health check. They’re very basic questions.

Other than that, we have a shared agenda that people can add items they want to talk about to. Work related or not.

I’ve been through this a few times over the last many years. In one case, joining a team with 3–4 people who have been with a product for 10+ years. And the product was much, much older than that.

I would treat it the same as onboarding to a new job, which is essentially what you’ve done.

One question I would have is, Is being “the best” developer on the team the most impactful way that you can contribute? If you could snap your fingers, and have all the minutiae transplanted into your head today, by magic, what would that get you? My guess: not that much.

I know nothing of your situation, but it sounds a bit like you understand the absolute importance of being trusted and empowering people, but are perhaps uncomfortable with the complement—you have to trust your team, and be empowered by them as well.

Simple, technical things that you can probably contribute to right away, while learning the product and codebase are usually build, deployment, and testing. You could lump doc in there too. All are extremely important, all will save everyone on the team hours per week (or even per day!) and all are usually areas where there’s rot and neglect and you can have a big positive impact, without blocking real work or needing all the context for larger features or nasty heisenbugs.

You can/should absolutely still do code reviews. I don’t know how organizations you’ve been a part of work, but I would expect a new grad developer to start doing code reviews on basically their first day in the industry, even if it’s not super valuable immediately, or authoritative; this is no different.

Focusing on outcomes and asking questions, “how can we improve X by Y% in Z days?” is as valuable than being able to offer a solution for the same. If they know what they’re doing, let them!

As a general heuristic, if you have a team that is a lot better than you at something, you should find ways for them to be doing more of that, rather than trying to meet or exceed them in every area. Assign yourself the tasks that they are bad at, the impact on the team and org is going to be a lot easier and quicker, and people mostly like to not have to do stuff that they’re bad at. It’s win-win-win-win.

There’s a lot of nuance IRL, I’m happy to chat if you want to catch up and talk over a few ideas. The good news is that earnestly trying to do a good job is like 80% of the job, so it sounds like you’re on a decent path.

How much money do you need?

I have a small web project that I could use some help with that’s due before the end of the month. If you can do it mostly by yourself, I can offer you $1000CAD. I expect that it would take me about two days, someone else a little longer. If you want to help out, it’s all yours.

My email is in my profile.

Not the GP, but I read "Thank You for Arguing: What Aristotle, Lincoln, and Homer Simpson Can Teach Us About the Art of Persuasion" by Jay Heinrichs this year, and consider it an excellent intro to classical rhetoric.

I moved from OSX to Linux-only laptop in 2012. I'd intended to dual-boot, but re-installing Windows[1], even by itself, was much, much more pain than I expected; I eventually gave up on it. Go figure.

Linux having poor compatibility with laptops is, in my experience, a myth. Ubuntu worked fine, but I've since moved to Fedora, and extremely happy with it. Everything "just works". I can't really see my self going back at this point.

For me at least, the Mac's original value-proposition being a no-hassle Linux-like machine. Now that the real thing is hassle free[2], there is no point in anything else.

Finally, I've heard that it's gotten much better lately, with the "new" Microsoft (which I applaud) but, as a developer who did so for a few months this year talking about "just works", the amount of friction involved in building anything outside the narrowest "MSFT-only" niches on Windows is crazy. I'm not a ragey guy, but it got to me, and not in a good way.

[1]: The then-new Windows 8 installer had a forever-grey "next" button at one point in the install-wizard that no amount of hair-pulling seemed to fix.

[2]: I would still recommend spending a few minutes online looking for red flags when choosing a model to use.

Page "Selling Haskell for CS1"

Joostena, Van Den Berga and Van Der Hoeven "Teaching functional programming to first-year students"

Chakravarty, Keller "The risks and benefits of teaching purely functional programming in first year"

Felleisen, Findler, Flatt and Krishnamurthi "The Structure and Interpretation of the Computer Science Curriculum"

You can get these all off Google Scholar. The papers listed do a good job, in my opinion, of discussing both the good and the bad of a functional approach.

When I went through school, we were taught with a myriad of languages, and when I was finishing up, they were transitioning to a more "practical" java/c++ monoculture. I think that's a bad deal for the students, personally.

Having been a tutor for a first year class teaching (a subset of) C++, I have anecdotal evidence against doing that. There are too many gotchas, and too much rainmaking to make it worthwhile, in my opinion.

There was a good popularization of this (or similar) technology on NOVA Science Now: http://www.pbs.org/wgbh/nova/sciencenow/0302/02.html

Definitely cool stuff.

That different artists have "signature" styles seems trivially obvious; it's interesting that nobody was able to analyze paintings rigorously enough to reliably apply this in the past.

Though I do worry about its accuracy. Picasso, for instance, painted in a number of vastly different styles over his career. It'd be interesting, and somewhat surprising, if his brushstroke signature was the same throughout his long career.

Try Haskell 16 years ago

I applaud the effort, but this is far from complete. As far as I can tell, you can only do standalone expressions, to the exclusion of anything interesting.

    Type Haskell expressions in here.
    > let x = 10
    not an expression: `let x = 10'
I understand that mueval has this limitation too? It's more defensible in the irc context that "state" would be disallowed. Here, it's just crippling.

I don't need the mtl stuff, but being able to define a basic function would be nice!

http://codepad.org/ will run full programs for you ... I guess that'll continue to be my tool of choice for online Haskell prototyping.

Still, this project does seem promising.

More about HM, whose brain it is: http://www.pbs.org/wgbh/nova/sciencenow/0407/02-cork.html

You can watch a ten-minute video feature at the site below: http://www.pbs.org/wgbh/nova/sciencenow/video/0407/i02.html

Note that within the first few minutes of that video, they show the brain already sliced up, and speak about it in the past tense; there's also a cut-and-died slice in a photo of the already-dissected brain on the first link...

I first watched that feature a few months ago, and from what I could gather, the episode was originally aired on 2009 August 25; anybody know what gives?

Not Lisp again.... 17 years ago

If you're asking "are there potentially awesome applications of this?" then the answer is probably "yes".

If you're asking "is there anything in the wild that I would know of and uses this?" then the answer is probably "no".

Most of the prolog projects I've ever seen are pretty inbred; implementing compilers or interpreters, hooks for another language-type things. Though it must be said that I'm not deeply embedded in the prolog community.

Not Lisp again.... 17 years ago

Basically what's going on is this, but with lists:

3 + 5 = X?

X = 8

3 + X = 8?

X = 5

5 + X = 8?

X = 3

In most programming languages, you can't infer a parameter by specifying a result.

(Though that's not strictly what's going on here, either)

You could further say something like X + Y = 8 and get

X = 0, Y = 8

X = 1, Y = 7

etc. for some definitions.

Which is, as the OP was getting at, sometimes incredibly useful.

In this case, the password field doesn't hold just a password, or a rot13 of a password, or even a digest of a password.

user_password is a concatenated md5 hash of user_id, a hyphen (-), and md5 hash of current password. ie. MD5(CONCAT(user_id, "-", MD5("PASSWORD")))

The reason for this is security, obviously.

The tinyblob then, is used for convenience/efficiency; it's a good way to store a hash. They might also do some tricks on the data (ie. convert to base 64 before it's stored, or something like that), but that's the general idea.

>May be it exists in their coding guidelines?

I think the question would be why would this exist in their coding guidelines.

>Although tablename.tablename_columnname sounds repetitive and verbose, it might in some cases be of help when one deals with too many tables and too many keys with the same name across tables.

tablename.tablename_columnname is not likely what's being done for their queries... in many RDBMS's, you can omit the "tablename." part if columnname is unique in the DB, so it will actually reduce repitition and verbosity, even if you hate typing "_" as much as I do.

It also makes dealing with "duplicate" names easier, because there will be no dupes: you won't have any columns or keys across tables that have the same name, because the prefix will differ, and in your queries and various etceras you won't ever have to think "which 'from' is this?"

With all of this, it also eliminates the need for (other, explicit) aliases, if you're doing it right.

Or at least that's the story: some people consider this equivalent to using Hungarian notation in Python ... I'm not one of those people, for the reasons above.

Especially after the people next to it figure out that nobody's actually watching the feed.

At this point, it's probably trivial to make it go past everybody every few days just to scare people, right?

That's the logical result of widespread adoption of this, isn't it? Similar to (most) security CCTV right now.

Either that, or elaborate "moon-landing" setups to trick the remote factory (or weapons) inspectors.

What's your point? I don't mean to be a jerk, but ... what is your point?

The designers of the Ruby, Python, and C++ have (perhaps) more cordial online personalities than Linus ... so what?

And the whole "rant" is taken a bit out of context...

A patch was submitted, which used C++ in a C-only project, then some guy (Kakurin) comes out of nowhere and says "you should be using C++ on your project", and Linus replies with reasons that they are not going to use C++.

So it's not, "C++ is stupid;" it's closer to "no, we are not using C++ for Git" ... even if what he said was "C++ is stupid."

To get a better picture of the discussion, you should really read the preceding comments, as well as the follow-ups.

The root of the thread can be found here: http://article.gmane.org/gmane.comp.version-control.git/5764...

The "hair trigger" might be explained by the fact that Linus' other project, the Linux kernel, is also C-only and I'm sure that this (re: "letz use cpp plz") has come up before. And Linus is a jerk... whatever.

Personally I think that he articulated his point reasonably well, if a little forcefully.

Besides, if C++ would really have been That Much Better™, he's welcome to use it; just not dictate language Linus uses to write his project with... which is basically what Torvalds said. I mean, it's open source, after all.

PS. The guy who made the comment appears to (despite the GMail address) have worked at Microsoft at the time, for what that's worth.

PPS. The real "sigh" is that this post is year old, out of context link bait.

Those aren't the same thing. f(a) != f(b) != f(c) is unsurpising.

Just because you don't personally, and explicitly define the inputs of the algorithm does not mean that they are none, or that they are static.

Of course, this also means that you can never do the "same thing" twice, because space and time are nice like that.

I think a more appropriate headline/analogy/Simpsons reference would be, "dig up, stupid".

Or perhaps even better, "the business of failure has failed: we need to make it work again!"

They don't withhold the product from people who want it. They withhold it from people who want it for "free" (ignoring FOX, and NBC's (or whoever's) billion dollar deals to show the NFL on their networks).

They have a myriad of services such as NFL Network, Sunday Ticket, etc. that give people a chance to see any game they want... for money.

Think iTunes. It's not that Apple doesn't want you to have access to any mp3 you want, it's that they want you to get it from them... for money.

The NFL is pretty good at making (a lot of) money for pretty much everyone involved.

You're mistaking the first term of university with the University™ that everyone else is talking about retrospectively.

What they mean by University™ is usually "the last 2 years of university".

Year one, if your experience is like mine was, is where you get the breadth part of your education in. My first year was 20% philosophy, 20% English, 20% math, 20% CS, and 20% political studies.

And it was all mostly tripe. The math was basic calculus; the English was Donne, Gawain, Shakespeare, and some other BS; the philosophy was Socrates and Aristotle; the CS was basic "this is a for loop", and the politics was Locke, JS Mill, Engels, etc. ...

All extremely basic. The first year is unlearning what your retard HS teachers told you, giving you some basis in the "you're supposed to know this text"-texts in each field, and getting everybody up to a base level to continue from.

Of course you're going to be bored... the three golden rules to surviving are 1) finding out what profs are good, and then taking their classes, 2) not scheduling a lecture before noon (at my school they put nearly all the first year math classes at 8:30 ... brutal) and, most importantly, 3) playing Super Smash TV with the other smart kids.

You don't learn anything because you (you being the average student) are a fucking retard. This becomes especially clear years later when you (you being the smart kid) serve as a TA for some first year class.

This problem is especially apparent in CS, because there is, depending on where you live, and what school you went to, either a) absolutely no curriculum at all, or b) some retard teaching kids goto in BASIC on crappy 80's computers, or worse. You can learn decent CS in HS, but that's far from typical.

And when you put the kids with no exposure whatsoever to programming in the same class as people with a decade of experience ... of course the smart kids are going to be bored; you're supposed to be.

So, in first year you get the hammer.

The second year is more interesting because you actually might learn something. Or, at any rate, will be required to work. This year is usually when they separate the people who think they want to be an X, from the people who actually do.

This year you take 30% math, 50% cs, some physics or chemistry, and (if you're like me) more philosophy. In your CS, if it's like where I went (when I went), you a bunch of new stuff... I went from a shaky understanding one and a half programming languages, to being pretty good in a few ... if you make it through.

Also, by this time you've learned all about requirements engineering if your professors are as "evil" as mine were. http://portal.acm.org/citation.cfm?id=1121475

Still, you're not learning anything that interesting, doing (relatively) toy apps in assembly, prolog, Eiffel; but you learn more advanced procedural and OO stuff at this point, and can begin to postulate on the pros and cons of multiple inheritance, and tail v. head recursion, for instance.

Again, nothing ground-shaking, but you learn how to swing that hammer you got earlier in a useful manner.

Third and fourth year are where you begin to specialize, and most of the classes are awesome. Also, by this time, you're old enough to drink (in Canada). You're taking 60% CS, 10% math, and pursuing your interest in X with the other 30%.

All of your classes are taught by pretty much the most intelligent and passionate people around, and everybody is there because they want to be, and interested in learning, and you're learning about stuff that's actually cool.

And you spend all of your "free time" playing with robots (or kernels, if that's what you like, or compilers, or whatever), and building stuff with your friends.

University's awesome. (I finished in October.)

About the fourth year student thing ... some people are fucking dumb but manage to scrape by with "group projects" that their smart friends complete, and middling test scores... whatever. This is not a phenomenon exclusive to ... anything, really.

And I know tonnes of smart people who suck at programming contests ... they're not real. It's kind of like having a waitress who's a world champion at stacking cups ... I can't really see it hurting, but I'd rather have someone who gets the orders right, and brings the food out while it's still warm (and flirts with the programmers!) than who can stack cups quickly.

The biggest thing to realize is that even if you're at a shit university, there is someone there who's incredibly intelligent and passionate about what they do ... and they have a propensity to like others who are intelligent and passionate about what they do.

They want to help you learn more than almost anything; the caveat being that you have to want to learn.

Ask to help them out ... they might even give you money for it.

Or, if that's not your alley, spend all day trying to break something, or create a monster (with your friends, of course).

My Public Apology 18 years ago

Perhaps I should have been more clear: The downvoting of the joke was expected.

The massive upvoting of the snarky "oh, snap" comments that followed, is what was surprising.

You are supposed to upvote intelligent discourse, and downvote the cruft; ie. encourage the "community and the discussion that goes on here", and discourage the "anonymous trolls that don't think before they comment". Or at least that's how I learned it.

The reverse seems to have happened.

See: "indeed" +12

"memo to self: stop using ticketstumbler.com" +34

"Such a shame, but I won't be using it either." +9

"TicketStumbler founders - Get a life." +4

"You think the people on here are dumb enough to believe that what you posted was an "experiment"? You're an asshole." +21

"Just apologize for the comment, man. You're not going to change anyone's mind with a childish rant like this." +20

"Posting comments irrelevant to your initial insensitivity will not help save face, especially when you throw in an attack towards the entire crowd." +18

or the especially ironic "I actually had to scroll up to the banner to make sure I was still on Hacker News and not reddit." +12

As far as I can tell, those are on the same plane as the original comment.

It was the upvoting of these (and similar) inane, and snarky one-liners that I was surprised at, not the downvoting of the comment that set it all off. Although the upvoting of the "golly gee-whiz, that's awful bad, hyuk" type comments, and the intertia of the downvoting of the subsequent comments were also surprising.

It appears as if the score of some of the other comments, ie. "You're an idiot" seem to be stabilizing over time. It's no longer +5, at least.