HN user

JasonPunyon

831 karma

- jasonpunyon.com - cv.jasonpunyon.com - https://hachyderm.io/@JasonPunyon

Posts32
Comments58
View on HN
meta.stackoverflow.com 1y ago

Why is the total number of questions on Stack Overflow shrinking lately?

JasonPunyon
4pts0
meta.stackexchange.com 2y ago

Stack Overflow has stopped publishing data dumps to the Internet Archive

JasonPunyon
101pts17
jasonpunyon.com 2y ago

Farey Numbers and Linked Lists

JasonPunyon
7pts4
seqlite.puny.engineering 2y ago

SEqlite – Minimal Stack Exchange Data Dump in SQLite Format

JasonPunyon
28pts11
archive.org 2y ago

SEqlite: Minimal Stack Exchange Data Dump in SQLite Format

JasonPunyon
30pts1
meta.stackexchange.com 3y ago

June 2023 Data Dump is missing

JasonPunyon
556pts257
stackoverflow.blog 6y ago

The Unfriendly Robot: Automatically flagging unwelcoming comments

JasonPunyon
27pts23
jasonpunyon.com 11y ago

Providence (ML at Stack Overflow): Failure Is Always an Option

JasonPunyon
17pts0
jasonpunyon.com 11y ago

Providence (ML at Stack Overflow): Architecture and Performance

JasonPunyon
3pts0
jasonpunyon.com 11y ago

Providence (ML at Stack Exchange): Testing and Results

JasonPunyon
1pts0
jasonpunyon.com 11y ago

A Wild Anomaly Appears!

JasonPunyon
6pts0
remoteworkrookie.com 12y ago

The Ephemeral Symphony

JasonPunyon
1pts0
remoteworkrookie.com 12y ago

Do What It Takes To Keep In Touch

JasonPunyon
2pts0
remoteworkrookie.com 12y ago

Why Did You Go Remote?

JasonPunyon
1pts0
jasonpunyon.com 12y ago

So You Want a Zillion Developers…

JasonPunyon
7pts2
ozar.me 12y ago

What I Have Learned About Job Searching

JasonPunyon
1pts0
blog.stackoverflow.com 12y ago

Finding a Great Company

JasonPunyon
7pts0
kevinmontrose.com 13y ago

Your Future on Stack Overflow

JasonPunyon
5pts0
jasonpunyon.com 13y ago

Fun with RNGs: Calculating π

JasonPunyon
1pts0
www.semanticmerge.com 13y ago

A semantic merge tool that understands your code

JasonPunyon
15pts2
jasonpunyon.com 13y ago

Things that, were I to unfortunately wake up as a recruiter, I would never do

JasonPunyon
1pts0
jasonpunyon.com 13y ago

Get Your Redis On on Windows

JasonPunyon
1pts0
jasonpunyon.com 13y ago

Geography's The Fuck

JasonPunyon
104pts29
jasonpunyon.com 13y ago

A Guy Walks Into An Apple Store...

JasonPunyon
3pts0
jasonpunyon.com 14y ago

Rock Stars Went Where?

JasonPunyon
2pts1
jasonpunyon.com 14y ago

Don't Be Represented by Contingency Recruiters

JasonPunyon
2pts0
jasonpunyon.github.com 14y ago

On Counter Offers

JasonPunyon
80pts64
jasonpunyon.github.com 14y ago

How I Got My Dream Job at Stack Exchange

JasonPunyon
7pts0
jasonpunyon.github.com 14y ago

Employee Referral Bonuses Are Pants on Head Stupid

JasonPunyon
9pts7
talks.githubapp.com 14y ago

Building Social Software for the Anti-Social [video]

JasonPunyon
12pts2

Nice post!

Yep, my process is similar. It goes...

  - decompress (users|posts)  
  - split into batches of 10,000  
  - xsltproc the batch into sql statements  
  - pipe the batches of statements into sqlite in parallel using flocks for coordination
On my M1 Max it takes about 40 minutes for the whole network. Then I compress each database with brotli which takes about 5 hours.

I mean fine, write an article that overweights recent events to weave a tale of the decline of Stack Exchange...but don't leave out the moderator strike, the data dump fiasco, or the CEO that simply doesn't get it. Jon Ericson's writing on the issue is much more informative. https://jlericson.com/

PCA/SVD aim for maximizing explained variance, not preserving distance. They tend to "preserve" large distances at the expense of smaller ones, but that's not an explicit goal, nor can you bound the distortion. The [answer here](https://stats.stackexchange.com/a/176801/60) gives a pretty good intuition about why.

You can also compare them on computational complexity, where random projection (O(numPoints * numOriginalDimensions * numProjectedDimensions) smokes PCA or SVD which are cubic in the number of original dimensions.

And then there's simplicity. The random projection method turns on sampling from a normal distribution and then doing a matrix multiplication. There's a whole lot more about PCA to understand (standardizing your data, calculating the covariance matrix, eigenvector decomposition). I doubt I could implement it correctly myself, and I surely couldn't do it in high dimension.

This is the standard stuff from our company page (http://stackoverflow.com/jobs/companies/stack-overflow)...

20 days vacation (to start)

Flextime

No Copay Health Insurance

Whatever workstation you want (PC/MAC/Build Your Own), Monitors out the wazoo. Seriously, I have 128GB of RAM and a GTX 1080, we don't skimp here.

$3,500 a year + 3 days conference budget

Gym Reimbursement Tuition Reimbursement

In NYC and Denver we have in house chefs

Unlimited sick time

Fully Paid Parental Leave

...but our people team is pretty empowered to make you happy.

And yeah, there's equity.

We have offices in NYC, London, and Denver. If I'm remembering correctly, I can count the number of developers who've left the company on one hand. We currently have ~20 engineering staff in the NYC office. Retention doesn't seem to be a huge problem.

I'd also like to point out that...we're a largely remote company. We don't index our salaries to the most expensive time and place to hire developers ever. We don't have to support Bay Area rent, or duel it out with AppAmaMicroGoog to keep our people from getting poached. We hire people everywhere in the world and through that lens, we're competitive. I live like a king in Buffalo, NY.

Hey, I'm the Jason Punyon drob's gushing about in the post. I wanted to tell you that this is 100% totally realistic, everyone on the Data team at Stack Overflow besides Dave Robinson is living proof.

In the beginning the Data Science Team at Stack Overflow was just me and Kevin Montrose. We're both ~30, we had some skills that were data-ish, but they were general critical thinking and math skills. By no means were we statisticians or data scientists by trade like Dave Robinson. However, the data at Stack Overflow was very amenable to analysis, and we were able to ship a personalized machine learning product after a year of work.

That year was plagued by (my, mostly) engineering failures (http://jasonpunyon.com/blog/2015/02/12/providence-failure-is...) and a bit of unfortunate lack-of-empiricism, not "data science" problems. And post launch of Providence, the engineering remains the bigger issue. It's just hard to get this shit right. Our record on getting experiments right the first time is spotty, and at Stack Overflow levels of traffic you might be dumping a week or more of time on a single screwup. We've had to rerun many experiments because of various things going wrong with the code (screwed up the A/B testing code, not counting the right things, visual issues with the ads we didn't catch during design, etc etc etc). There's a litany of things you've gotta get right engineering wise before data even comes into the picture.

So if you're gonna take the plunge, know that it's 100% possible but 100% difficult, and maybe not for the reasons you think.

Again, up to the individual teams to decide what's right for them. The most globally applicable principle we have is "Make sure to use your brain."

Currently most teams don't subscribe to a particular methodology, though there is a Scrum effort happening on one team.

Long time dev at the company here.

Yes, Yes, and No.

#1 kind of happens naturally as we're all working on different things. There are "a lot" (< 100) of people slinging code/design/SRE/IT, but only a few work in the same areas at the same time and rapid good communication generally happens among those subsets of the overall team. We also seem to have perpetuated a tendency toward good citizenship, so we generally talk to people before traipsing through areas of the code we aren't familiar with.

#2 Absolutely. This is some basic principle stuff. We don't hire people to not trust them.

#3 Related to #2: Automated acceptance testing is done as is deemed appropriate by the person developing the system. I've been on teams that valued and developed automated testing more, and less. My personal experience at the company has been it is neither necessary nor sufficient for success.

Much more important than any pre-deploy automated testing is our effort to monitor what's deployed (both in terms of software/hardware metrics and business goals). Bosun (http://bosun.org), developed by our SRE team, gives us some pretty great introspection/alerting abilities. I'd be incredibly sad to not have it. Bosun monitoring combined with the ability to have a build out in <5 minutes keeps me pretty happy.

But HFT's don't play much in those products, so they don't provide liquidity or make markets there either.

It's not that no one follows the norms or tests. On the Careers team we do much more automated testing because there's money and literally people's jobs at stake. We have unit tests, integration tests and UI tests that all run on every push. All the tests must succeed before a production build run is even possible.

Sorry. I interpreted tptacek's first line as that he'd known about the patent and what it contained independently for "a little while". (It was a patent after all. Isn't that public information?)

Or was the news not the existence of the patent referenced on the tweet?

Yes. All the differences here are due to employers choosing where they want to advertise their jobs. We have 7 granular advertising regions for employers to choose from. You can see them at the bottom of the post job page.