Preferences

smilliken
Joined 2,352 karma
MixRank (YC S11) Founder/CEO/CTO, mathematician, programmer, database & distributed systems enthusiast.

Contact: scott at company name dot com or deltaex dot com.


  1. You're going to look silly in 8000 years!
  2. Practically speaking, it's impossible to roll 6 one hundred times in a row on fair dice. Not technically impossible, but we each get to calibrate our skepticism based on how far out the probabilities are.

    In this case we can be sure the dice aren't fair because there's significant motivation for them not to be, or at least it's easy to imagine a manufacturing defect in the dice.

  3. You can have this today or 15+ years ago using the excellent gevent library for Python. Python 3 should have just endorsed gevent as the blessed solution instead of adding function coloring and new syntax, but you can blissfully ignore all of that if you use gevent.
  4. The best kind of documentation is the kind you can trust is accurate. Type defs wouldn't be close to as useful if you didn't really trust them. Similarly, doctests are some of the most useful documentation because you can be sure they are accurate.
  5. https://histre.com does full text search on browser history
  6. The best way is to open a capsule for each batch you receive to test it by taste, then store in the fridge.
  7. > Second: there is no CEO in tech taking a smaller salary than their employees.

    That's not just false but very often false.

  8. It's the exceptional codebase that's nice to work with when it gets large and has many contributors. Most won't succeed no matter the language. Language is a factor, but I believe a more important factor is caring a lot.

    I'm working on a python codebase for 15 years in a row that's nearing 1 million lines of code. Each year with it is better than the last, to the extent that it's painful to write code in a fresh project without all the libraries and dev tools.

    Your experience with Python is valid and I've heard it echoed enough times, and I'd believe it in any language, but my experience encourages me to recommend it. The advice I'd give is to care a lot, review code, and keep investing in improvements and dev tools. Git pre commit hooks (just on changed modules) with ruff, pylint, pyright, isort, unit test execution help a lot for keeping quality up and saving time in code review.

  9. They aren't talking about C and its descendants in particular, but more generally. For example in Haskell and Scheme there is only an if function and no if statement. And you're welcome to create an if function in any language you like and use it instead of the native syntax. I like to use an if function in PostgreSQL because it's less cumbersome than a case expression.

    So in the abstract, if is a ternary function. I think the original comment was reflecting on how "if (true) ... " looks like a function call of one argument but that's obviously wrong.

  10. Fair enough. I'm sensitive about the em dash being used as a tell, which I've seen mentioned once or twice, because I don't want people to dumb down punctuation to avoid being confused for an LLM. I'd guess it's a temporary issue until the LLMs get so good at blending in that we can't tell anymore.
  11. The em dash was in popular use long before chatgpt. It's a useful grammatical symbol and a short dash is not a good substitute. Consider whether you'd use it if it was a dedicated key on your keyboard, if so then it's worth the small inconvenience to learn how to type it.
  12. The reason someone changes a dependency at all is because they expect a difference in behavior. No one would feel the motivation to go update a dependency if they aren't getting something out of it, that's a waste of effort and an unnecessary risk.

    Each person doesn't have to perform the build on their own. A build server will evaluate it and others will pull it from the cache.

    The greater waste that nix eliminates is the waste of human time spent troubleshooting something that broke in production because of what should have been an innocent change, and the lost business value from the decreased production. When you trust your dependencies are what you asked for, it frees the mind of doubt and lets you focus on troubleshooting more efficiently towards a problem.

    Aside, I spent over a decade on Debian derived distros. I never once had one of these distros complete an upgrade successfully between major versions, despite about 10 attempts spread over those years, though thankfully always on the first sacrificial server attempted. They always failed with interesting issues, sometimes before they really got started, sometimes borking the system and needing a fresh install. With NixOS, the upgrades are so reliable they can be done casually during the workday in production without bothering to check that they were successful. I think that wouldn't be possible if we wanted the false efficiency of substituting similar but different packages to save the build server from building the exact specification. Anything short of this doesn't get us away from the "works on my machine" problem.

  13. Like other products in this category, this is for private networks, internal to your company or self. I don't think it's an intended use case to connect to computers not in your control.

    It's useful when you have computers that talk to each other over the internet, likely without public interfaces, and using protocols that may or may not be secure.

  14. MixRank (YC S11) | Software Engineers | 100% REMOTE (Global) | Full-Time

    MixRank processes petabytes of data every month from web crawling. We have hundreds of customers using our data products including Google, Amazon, Facebook, Intel, and Adobe, across industries including Finance, Recruiting, Sales, Marketing, and Security.

    We’re a fully-remote company with a global footprint in over 20 countries. We're growing, profitable, employee-owned, no dependence on outside funding. Applicants from all geographies and backgrounds are welcome.

    We are looking for passionate individuals for whom programming is not just a job but it’s something they love to do. We're obsessed with computers, programming, big data, databases, compilers, hardware, math, data science, and the internet. Does this sound like you? Please apply to join our team.

    Our code base is very friendly to new contributors. You'll have a fully-functional development environment within hours (fully automated) and be pushing commits on your first day. Deployments to production happen multiple times per day and finish in less than 2 minutes. Effectively all of our codebase is written in Python, Rust, SQL, Javascript/TypeScript, and Nix. The core technologies you'll need familiarity with to be productive are Python, PostgreSQL, Linux, and Git.

    We operate at a larger scale than typical startups. We operate two datacenters with high performance servers we've built that are capable of dealing with the volumes of data we process. We've implemented our own distributed file system. We do full-scale web crawls. We download and perform static analysis on the entire universe of Android APKs and iOS IPAs that are published. Unlike a typical startup where you'll spend half of your time in meetings, and the other half fixing bugs from Jira tickets— at MixRank you'll get to challenge yourself with difficult technical problems that will help you to grow as an individual.

    We're hiring continuously for the positions below— they aren't singular positions that will close once filled. Our philosophy on hiring is that the candidate is more important than the position. For each new member of the team, we design a custom role and responsibilities that are specialized to their interests. Other companies will come up with a long list of specific requirements for a position with the expectation that you'll exactly replace someone from the team, or that you'll be the perfect tetris piece that satisfies the job requirements decided by a committee. MixRank is more pragmatic: we'll first get excited about having a unique individual on the team, then we'll figure out the best way to accommodate their specific talents.

    --

    Junior Software Engineer - Remote (Global), Full-Time

    We're looking for remote junior engineers that have 0-3 years of professional experience in software, and 5+ years of curiosity exploring computers, programming, and technical hobby projects. This is an open-ended entry role with mentorship and diverse opportunities to work on all areas of our product: databases, distributed systems, infrastructure and tooling, data analysis, machine learning, frontend/backend web development, APIs, data mining, data modeling, and more. To stand out, please highlight what makes you unique: passion for computing, curiosity and side projects, work ethic, niche research, etc.

    Ideally you've already graduated, but if you still have one or more years left of school, please feel free to apply anyway, and if you're the right fit for the team we'll figure out a way to accommodate your schedule.

    https://www.ycombinator.com/companies/mixrank/jobs/Fnwsojk-j...

    --

    Software Engineer - Remote (Global), Full-Time

    We're hiring generalist software engineers to work on web applications, data mining, machine learning/data science, data transformation/ETL, data modeling, database scaling, infrastructure, devops, and more. We'll cater the role to whatever subset of these areas match your interests.

    Beneficial experience includes PostgreSQL, Python, Rust, Linux, TypeScript, Nix, frontend/backend web development, and data mining.

    https://www.ycombinator.com/companies/mixrank/jobs/RXQspen-s...

    --

    I'm Scott, Founder/CEO/CTO. We're based in US but applicants from Central America, South America, Europe, Asia, and Africa are encouraged!

  15. At risk of the obvious, because it saves $39 and reduces landfill waste.
  16. The operating system provides abstractions for blocking and asynchronous IO, which are the higher abstraction version of the same concept.
  17. Can you see how this comes off as a pedantic difference? If I ran a program 10 years ago and it worked, then run it today and it doesn't work, we say the program is broken and needs to be updated. We don't say the world around it is broken and needs to revert back to its original state.
  18. I've seen benchmarks that estimate the regression at 20-30%, though I expect there's large variance depending on what a program's bottleneck is.
  19. Or you can have technical managers that understand what they are managing.
  20. Would you concede the point if I produce a photo as proof?

This user hasn’t submitted anything.

Keyboard Shortcuts

Story Lists

j
Next story
k
Previous story
Shift+j
Last story
Shift+k
First story
o Enter
Go to story URL
c
Go to comments
u
Go to author

Navigation

Shift+t
Go to top stories
Shift+n
Go to new stories
Shift+b
Go to best stories
Shift+a
Go to Ask HN
Shift+s
Go to Show HN

Miscellaneous

?
Show this modal