Paul Tyma

paultyma.blogspot.com · Personal blog · on HN since 2007

Paul Tyma, a software engineer and startup founder, writes about threaded versus async I/O, tech interviews, hiring, and speculation about aliens and AI.

What HN saysCommenters cite his case for synchronous multithreaded I/O over async callbacks and his argument on why we'll never meet aliens, calling his blogs full of gems.
42HN people shared it
17linked it in comments
45stories submitted
860story points
8 years agolast shared
2007people per year2026

Most-shared posts

  1. 1
    Blocking I/O: it's not just for pansies
    8 people · 43 points · first shared 2008 · 19 comments on HN
  2. 2
    How Artificial Intelligence Will Really Kill Us All
    5 people · 29 points · first shared 2015 · 1 comments on HN
  3. 3
    A Google Interviewing Story
    4 people · 206 points · first shared 2010 · 116 comments on HN
  4. 4
  5. 5
    Why We'll Never Meet Aliens
    3 people · 96 points · first shared 2013 · 116 comments on HN
  6. 6
    The Young Man's Business Model
    3 people · 70 points · first shared 2008 · 14 comments on HN
  7. 7
    How to Get Hired as a Technical Co-Founder
    3 people · 8 points · first shared 2016 · 1 comments on HN
  8. 8
    The Young Man's Business Model
    2 people · 70 points · first shared 2008 · 17 comments on HN
  9. 9
    Startup Ideas - Part 3
    2 people · 15 points · first shared 2011 · discussion on HN
  10. 10
    A few ideas about Negotiation
    2 people · 11 points · first shared 2008 · 4 comments on HN
  11. 11
    An Extremely Common and Terrible Line of Java
    2 people · 11 points · first shared 2018 · 2 comments on HN
  12. 12
    The Idea about Ideas (2005)
    1 people · 51 points · first shared 2011 · 5 comments on HN
  13. 13
  14. 14
    Your business model will die
    1 people · 20 points · first shared 2007 · 9 comments on HN
  15. 15
    Paul Tyma: Why We'll Never Meet Aliens
    1 people · 9 points · first shared 2013 · 3 comments on HN

What HN people wrote when they linked it

rob05c · 2013-10-15
3. Are we alone in the universe? With regards to this question, I highly recommend http://paultyma.blogspot.com/2013/04/why-well-never-meet-aliens.html He makes a compelling argument.
fleaflicker · 2012-02-21
Then rest of the mailinator blog and his blog (http://paultyma.blogspot.com/) are filed with gems like this. There are a few of entries on multi-threaded synchronous io vs asynch io; he's a big proponent of the former.
thejo · 2010-01-11
> Asynchronous, callback-based code is frequently more difficult to write, harder to reason with, more inflexible, and buggier than similar synchronous code. That is an excellent point that is usually ignored. Thread per request is much easier to understand and work with. Of course, thread per request is simply not a good choice in cases like a server with support for web sockets, but it is good enough in many cases. My experience has mainly been with Java (NIO vs. simple threads and Executors). Paul Tyma has made a more convincing argument than me about this - http://mailinator.blogspot.com/2008/02/kill-myth-please-nio-is-not-fas… http://paultyma.blogspot.com/2008/03/writing-java-multithreaded-server… http://www.theserverside.com/discussions/thread.tss?thread_id=26700
zinxq · 2013-08-01
Fulltime, Palo Alto - funded Series A http://www.refresh.io paul at refresh.io Title: "Rather Impressive Java Developer" Our current dev team is pretty awesome and we're looking to add to it. Currently we have a few PhD's, few ex-googler's, some tech book authors, couple of ex-linkedin, ex-microsofties, and stanfords, and a bunch of startup vets like Trulia and dealer.com. Heck we even have the guy who wrote the Java testing framework TestNG ( http://www.testng.org ) and the guy who wrote Mailinator ( http://mailinator.blogspot.com ). And we're only up to 7 people. But we want an 8th and maybe a 9th. Job Description: Someone we want to work with. Someone who will make us smarter and better and, in return, someone we can make smarter and better too. Someone who will help us make our company and its products great. Our technology includes: Java. Thousands of threads (Mailinator guy keeps adding more, TestNG guy keeps removing them). Tons of data, tremendous data analysis, fuzzy logic, machine learning, natural language processing. We use Mongo and we're having no problems with it - because we're careful. We treat every superfluous database access and every unnecessary network call like its a small insult to our users. And gosh darn it, we love our users. Simply, we are building a product that fetches and analyzes massive amounts of data to improve our user's lives (see the website for a more specific description, or better yet, email me) Job Requirements: You…
edwinnathaniel · 2012-08-13
Very thorough explanation that I definitely agree. I love watching Soccer and Basketball. In those two fields, the best players are those who dedicate themselves to the game. Lionel Messi, Christiano Ronaldo, Michael Jordan, LeBron, Kobe. The list goes on. They have the same trait: passion and dedication. Some may have born with the skill (Ronaldo, LeBron). Some takes time to develop (Jordan, Messi). Having said that, our field is a little bit strange because there's a divide between being good at a particular set of skills and being jacks of all trades. For example: we tend to argue and discuss the topic of how learning new programming language can change the way you think about a particular problem and hence make a conclusion that those who put the effort and time to learn niche language such as Erlang, LISP dialect, Ruby, Lua get this automatic recognition as a "better programmer". (They may be a "better" programmer if we compare it to John Doe Programmer, but are they truly a better programmer?) On the other side of the coin, we have people like James Gosling, Bjarne Stroustrup, John Carmack, Dennis Ritchie, Joshua Bloch, Guido von Rossum, Kent Beck, Martin Fowler, etc. that are pretty much sticking with one or two languages but truly focus on their problem domain (as oppose to the languages that they use). There seem to be a group of people who are good at plumbing different technology and get something out of it and there are another set of group of people who…
KirinDave · 2011-04-21
"NIO/MINA is the right answer on Java." I think my point, which admittedly is only informed by the work of some brilliant people, is that your point is not supported by data gathered on modern hardware with modern operating systems running a modern JVM. At least, not in all cases. With care and some tuning, people can get extremely good performance out of the thread-per-connection approach. Please check the document linked in the parent to this thread (http://paultyma.blogspot.com/2008/03/writing-java-multithreaded-server… What's more, even the systems that are very good at this do not use something like NIO, epoll, or select (as anything other than a very buried implementation detail). Erlang, for example, doesn't restrict you to the kind of model that raw NIO does. NIO is a fine thing for what it is, and a potential building block for many things, but it's not a very compelling as a server framework. MINA is a better suggestion, but still not a universal catch all for these sorts of problems. I'm not trying to say, "NIO is never right, tpp is never wrong." I'm just saying your categorical statement is not always correct. Making that statement is wrong, and it's misleading, and I don't think the problem you found was really due to the unavoidable overhead of the threading.
antics · 2011-01-17
That is too vague to get really good answers back. What position are you in for? That said, the best practice you can hope for is to INTERVIEW AT A LOT OF OTHER PLACES FIRST. Just trust me on this. Interviews require practice, and the best way to do it is to interview at other places that are good. If you don't trust me, listen to this guy, who says the same thing (and got the job at Google) [http://paultyma.blogspot.com/2010/11/google-interviewing-story.html]. That all said, you will probably want to review your basics of analysis (e.g., big O), as well as things like binary search. You will probably get asked to implement code of some sort, so be really well acquainted with your favorite language. Pick up a copy of Programming Pearls, by Jon Bentley, and work through a problem or two every day. By "work through", I mean try and do it yourself, and THEN look at the answers. The idea is to be thinking well come time for the interview. Other things everyone knows are, you want to be really well acquainted with what Google is doing in your area. One of the ways they vet candidates is to see who actually knows what Google is an does in practice, rather than asking why they want to work there. A lot of their questions will probably come from problems they actually have. Brush up on your books from college. Give the algorithms and data structures 101 stuff a quick look over and make sure you understand it. That's not a comprehensive list or anything, but if you want more…
lemming · 2010-02-09
As an interesting counterpoint, Paul Tyma has a really excellent presentation on how NIO in Java actually allows considerably less throughput than thread-per-connection and has a much more complicated programming model: http://paultyma.blogspot.com/2008/03/writing-java-multithreaded-server… I've written a fair amount of asynchronous network code in my time, and it really is more difficult to write and debug - developers are generally used to being able to see a linear flow in their code. Event driven code in general IMO is much harder to follow and reason about than linear code. In my current project we have a fully asynchronous multiplexing network component - I'm about to replace it with a simpler, synchronous model because both the client code and the code of the component itself will be much simpler. Even if I take a performance hit the easier maintenance and fewer bugs will be worth it.
grondilu · 2015-11-27
Seems like the authors do not consider how safe such a system would be. Yet it seems to me that a machine whose main goals would be to learn things about the world so that it can communicate with humans and answer their questions, is possibly very dangerous. While reading the first section I kept thinking about this blog entry from Paul Tyma, "How Artificial Intelligence Will Really Kill Us All": http://paultyma.blogspot.fr/2015/10/how-artificial-intelligence-will-r…
swah · 2014-02-17
Those two articles, http://blog.erratasec.com/2013/02/multi-core-scaling-its-not-multi.htm… (from Robert Graham) and http://paultyma.blogspot.com.br/2008/03/writing-java-multithreaded-ser… seem to say opposing things about how threads should be used. Having no experience with writing Java servers, I wonder if any you guys have an opinion on this.
gojomo · 2011-04-20
Paul Tyma's counterpoint from 2008, that thread-per-connection is scalable to tens (and maybe hundreds) of thousands of threads, using recent Java & Linux NPTL: http://paultyma.blogspot.com/2008/03/writing-java-multithreaded-server…
bretthoerner · 2011-01-23
The URL seems weird at first, but Paul created mailinator, it's as permanent a URL to him as random-joes-domain.com is for Random Joe. http://paultyma.blogspot.com/2008/03/writing-java-multithreaded-server…
jbellis · 2010-05-10
nbio isn't a magic wand; context switching is virtually free in a language without a GIL http://paultyma.blogspot.com/2008/03/writing-java-multithreaded-server…
maskur · 2009-11-14
I'm aware of this; The mailinator guy Paul Tyma talked about this in his blog (http://paultyma.blogspot.com/2006/06/im-getting-sick-of-subpoenas.html…
prakash · 2008-06-11
Look at Paul Tyma's Howto Pass a Silicon Valley Software Engineering Interview http://paultyma.blogspot.com/2007/03/howto-pass-silicon-valley-softwar…
dpapathanasiou · 2007-04-23
Google comes close (from Paul Tyma's blog): "At Google, you never know who your interviewers are going to be. If you say you're a Java or C++ expert that rates a 10 - you darn well better be - because you never know - your next interviewer could be Josh Bloch, Matt Austern, Guido van Rossum, or Ken Thompson." http://paultyma.blogspot.com/2007/03/howto-pass-silicon-valley-softwar…

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close