When not laboring in his secret identity of a mild-mannered software developer, Elliotte Rusty Harold lives in a secret mountaintop laboratory on a large island off the East Coast of the United States with his wife Beth and dog Thor. He’s an avid birder and insect photographer. His fiction has appeared in Alfred Hitchcock’s Mystery Magazine, Crossed Genres, Daily Science Fiction, and numerous anthologies. He’s also written over twenty non-fiction books for various publishers including Addison-Wesley, O'Reilly, Wiley, and Prentice Hall. His most recent books are Java Network Programming, 4th edition, and JavaMail API, both from O’Reilly. Find him as @elharo on Twitter or at http://www.elharo.com/blog/
Contrary to what most recruiters would have you believe, today’s software engineering interviews aren’t designed to find the brightest programmers or the best culture fit. They’re designed to weed out the worst candidates and find somebody who’s good enough. The system is gameable, and if you understand it you’ll have a much easier time finding the right position for you, and getting paid more for it too. We’ll discuss simple and obvious but rarely practiced techniques that will move you straight to the top of the pile at the companies you want to work for.
You've been bitten by the testing bug, are thoroughly test infected. Excellent! You're undoubtedly producing more robust, less buggy software faster and at lower cost. Now it’s time to think about what makes unit tests even better. We’ll discuss flakiness, debuggability, reproducibility, speed, specificity, independence, timing, and other characteristics of effective unit tests. Examples will be in Java and JUnit, but the principles apply generally to all languages and test frameworks.