HNHacker News
TopNewBestAskShowJobs

prophetjohn

870 karma · joined October 20, 2011

I'm a software engineer in Austin, TX.

atxjclark@gmail.com

github.com/j-clark

linkedin.com/in/joshua-clark-0b7a6436/

submissionscomments
prophetjohn··on Ask HN: Is NodeJS stable enough to build the next Twitter?
I think by 'cromulent' he means acceptable
prophetjohn··on Ask HN: Who is hiring? (May 2013)
Austin, TX | Full-time, Intern | Software Engineer

Come pair with me at mobi!

We're seeking talented, full-stack software engineers that are smart and get things done. We're most excited about finding seniors, but all experience levels are welcome. We're looking for candidates in, or willing to relocate to, Austin, TX.

mobi is a B2B mobile fleet logisitics solution. We help companies with mobile fleets service their customers better and faster by optimizing service routes and analyzing GPS data. This means we also help save fuel, tires and brake pads to keep the world a little bit more green.

Our tech stack contains a non-trivial amount of all of the following technologies: Java (Spring/MyBatis/Hibernate) Ruby (Sinatra and maybe Padrino or Rails soon) JavaScript (AngularJS/jQuery) SQL (T-SQL and maybe Postgres or Mongo soon)

We're not dogmatic about the tech we use. We believe strongly in using the tool that helps us accomplish the task in the best and fastest way possible.

We don't expect you to be familiar with all of the technologies we use. There is a very strong learning culture at mobi. Therefore we do expect you to be willing (nay, excited) to learn about the tech we use that you don't know and to teach us about the tech you use that we don't know. We also expect you to be comfortable with test driving the code you write, with a pair, the large majority of the time. Of course, working in pairs doesn't always make sense, nor does TDD, and we're comfortable with those exceptions.

mobi offers competitive salary; competitive ping pong tournaments; free soda, snacks and beer; unlimited time off as needed; great views from our downtown office; monthly company get-togethers to celebrate our accomplishments

If you're interested, my personal email is in my profile. Here's an explanation of roughly what kind of interview process you could expect: https://news.ycombinator.com/item?id=5441267

prophetjohn··on Bitfloor shuts down
It's also possible that the intent was to make a purchase with those bitcoins.
prophetjohn··on Hire talent, not five years with Java
I might be willing to overlook the lack of test for an intern or very junior person, but not above that level.

Writing the code in an "unusual" language, would net big bonus points, though. I get tired of seeing the same solutions in Java and Python.

prophetjohn··on Hire talent, not five years with Java
However the candidates know up front that we are a TDD shop, so for us, a big part of knowing that a program is behaving correctly is having passing unit tests.
prophetjohn··on Hire talent, not five years with Java
This is good feedback. We've only gotten one submission that we thought was grossly over-architected, but it's worth revisiting what we tell candidates to lead them in the direction of not trying to show off and to just write the code as they would normally.
prophetjohn··on Hire talent, not five years with Java
Here's the strategy we feel is working pretty well for us.

First of all, our tech stack looks like this:

Java/Spring(MVC)/MyBatis/Hibernate/etc

Ruby/Sinatra/ActiveRecord/etc

JavaScript/Angular/etc

A bit of SQL (MS)

We look for candidates of all skill levels who have experience with any "systems" programming language (Java/C/C++/C#) and any scripting language (Ruby/Python/JS).

Once we've found a candidate that has any level of experience with both a scripting and systems language, we send them a small coding project. The coding project is very easy. Any experienced programmer would be able to solve it in about an hour. We tell the candidates to solve the problem in any programming language and that the goal is to show off problem solving, testing and design skills.

Once we've received the code, we review it for the above stated qualities with an emphasis on clean, readable and well-tested code. We're not too hard on these code reviews, we just want to try to eliminate obviously poor fits. People who write no tests are immediately eliminated. Hugely over-architected solution? Eliminated. Code is bad enough the person might not actual be able to program? You get the idea.

Once the person has passed this stage, they come in for an in-person interview. They are asked to bring their laptop. When they arrive, the dev manager will show the candidate to the room where they will be interviewed, talk a bit and then come get two developers for a coding interview.

The coding interview is somewhat on a per-candidate basis, but fundamentally the two interviewers will review the code beforehand and find places for improvement. Improvements might be refactorings to make the code cleaner or new features if the code is particularly well-written. We first have the candidate give us a code walk-through and explain what's happening, thought processes, etc. Then one of the interviewers will pair with the candidate for a while and switch out with the other interviewer after a while.

The whole process thus far is an attempt to, as closely as possible, simulate what it would be like to work with this person on a real task. No writing quick sort on the white board. Writing code, at a computer, with an IDE as a pair. Google stuff, whatever your normal workflow is. We just want to know what it's like to work with you.

After the pairing part of the interview, we do a more informal group interview with the rest of the team. We're currently 7 people counting the development manager, a scrummaster/QA and a PM/QA. So the group isn't too big. This is an opportunity for more high-level and philosophical questions. "Why do you want to work here?", "Anything in particular you dislike about Java?". Maybe if they're more senior, I'll have them explain OOP to our designer to see how well they can mentor. At the end of this section, we open it up for questions from the candidate.

So far we've had particularly good success with 1) not wasting our time with people who can't code, can't test their code or are poor at designing the structure of their code; 2) finding good cultural fits - if someone doesn't like pair programming or TDD, we'll be able to figure that out as part of the interview; 3) not arbitrarily eliminating people because they didn't study their CS textbook ahead of time or aren't comfortable writing syntactically correct code on a whiteboard.

prophetjohn··on How To Hire Me (or any other programmer)
Wait, not knowing what "grok" means is a "pretty good" filter for a person who is unsuitable for a role as software engineer?
prophetjohn··on Where TDD Fails

    |A popular [quick sort] optimization is to end with an insertion sort
What's so hard to test about this? If your quick sort code and your insertion sort code aren't all shoved into one function, you just test them separately.
prophetjohn··on Learn Git Branching
Looks like raphael

https://github.com/pcottle/learnGitBranching/tree/master/lib

prophetjohn··on Ember.js 1.0 RC1 released
Our application is currently jQuery and vanilla JS managed with require.js. I recently led spikes investigating both Angular and Ember. I landed on Angular.

I found Ember to try too hard to be Rails when JavaScript is not Ruby. If you've got experience with Rails, Ember would probably be familiar enough that bending JavaScript into that model would be okay. But I think Angular is more geared toward the strengths of JavaScript (and away from its weaknesses).

It's also a different kind of framework. Rails is so popular that it's understandable for frameworks to want to follow along that model. But Angular takes a completely different approach, trying to extend HTML. Because of this, Angular apps are incredibly readable. Our UI guy who isn't an engineer was able to look at the HTML and understand exactly what the app was doing.

I also found Angular to be easier to piecewise convert an existing project, since any arbitrary element can be your entire Angular app. This might be possible with Ember, also, but I wasn't able to easily figure out how since the documentation is weaker than Angular's.

The biggest problem I had with Angular and our current infrastructure was using the patterns introduced by require.js since Angular has its own opinions about dependency management.

prophetjohn··on A List of Sublime Text 2 Hotkeys
Want a comprehensive list? Preferences > Key Bindings > Defaults.
prophetjohn··on A List of Sublime Text 2 Hotkeys
ctrl+C/cmd+C

That's gets the whole line including carriage return when nothing is highlighted. You could also cmd+L (expand selection to line) and then cmd+C if you already had something selected.

prophetjohn··on When Did Americans Lose Their British Accents?
How representative is the typical accent you hear on Doctor Who of the average English accent? And in case I'm conflating a bunch of very different accents, I'll just go with Matt Smith's Doctor[0].

[0] http://www.youtube.com/watch?v=0FxKcLId-Ys

prophetjohn··on Programmer Interrupted
Private offices sounds terrible to me. I wonder the extent to which silos of knowledge are created by confining every developer into their own office and discouraging outside communication. I would suffocate in that environment.

I vastly prefer open office where developers work in frequently rotated pairs, with separate pairs close enough to talk as necessary. It's a little bit harder this way, but I've found that it leads to higher quality software, higher diversity of knowledge and it's just made me a better programmer (and a better Vim user and a better Unix command line user, etc). I hope I don't ever have to take another job where I'm not forced to both teach and learn from all of my coworkers directly.

prophetjohn··on Show HN: I'm 14, please check out my iOS game
I think "wtf?" is in response to it being both "Compatible with iPhone 3GS" and "NOT compatible with [...] iPhone 3GS"
prophetjohn··on How to pair socks from a pile efficiently?
Traditional fashion wisdom is that socks should match pants. If you match your pants to your shoes, it makes it look like you're wearing high-tops. It draws attention away from your shoes when you want to be drawing attention toward your shoes.

If you don't care about fashion, it doesn't matter, though

prophetjohn··on JavaScript Quiz Set
Is there a case in JavaScript where operators with the same precedence are not evaluated left-to-right?
prophetjohn··on JavaScript Quiz Set
The above example is at least academically interesting since you can reason through it with a bit of programming experience and intuition about operator precedence.

    Does plus or pre/postfix increment have higher precedence?
    Probably increment.
    Does prefix or postfix have higher precedence?
    They're probably the same -> evaluate from left-to-right.
    Code is equivalent to num1++ + num2;

But the examples like "what is the difference between substring() and substr()", "What is the lowest cross-browser increment that [setInterval()/setTimeout()] can accurately use" is just trivia and is boring.
prophetjohn··on Be careful with JS numbers

    I have determined by experience that 9007199254740995
    (which is 2^53+3) is the smallest not representable
    integer in Javascript.
Here's something to drop in your browser console as an amusing illustration of this

     9007199254740994 === 
    (9007199254740995 - 1)
and

     9007199254740995 === 
    (9007199254740995 - 1)
prophetjohn··on Show HN: Hacked Hacker News - new comment highlighting and keyboard navigation
-1 unread happens if you (or someone else) deletes a comment. It should fix itself after a page load.
prophetjohn··on Show HN: Hacked Hacker News - new comment highlighting and keyboard navigation
If there ends up being enough interest, I'll support FF and Safari.
prophetjohn··on Show HN: Hacked Hacker News - new comment highlighting and keyboard navigation
Great idea. I changed it to only be bold comments if the number of unread comments is greater than 0 and less than the total number of comments. It's been pushed to the Chrome Store. Thanks for the feedback!
prophetjohn··on Show HN: Hacked Hacker News - new comment highlighting and keyboard navigation
I agree that the style in your link is cleaner looking. I don't have a very good sense for how to make things look nice. I might clean it up a bit because my goal is to keep HN simplistic but just add the few features that I've been itching for. I hadn't seen your before, though. It looks nice.
prophetjohn··on Show HN: Hacked Hacker News - new comment highlighting and keyboard navigation
I was conflicted about whether or not to update new comments inline or force a page refresh. So the behavior with the comments is intentional. I may end up changing it if it's confusing.

As for the other problem, I'm confused about why that's the only thing not working. Are you running any other extensions that could be conflicting?

prophetjohn··on Show HN: Hacked Hacker News - new comment highlighting and keyboard navigation
I've uninstalled and reinstalled a couple times on Mac and a Windows VM without getting that message. I know Google checks the manifest file on upload for validity, but I've seen reports[1] of seemingly random installation failures. Have it happened more than once?

[1] http://code.google.com/p/chromium/issues/detail?id=103281

prophetjohn··on Show HN: Hacked Hacker News - new comment highlighting and keyboard navigation
I've got the same setup as you. Are they wrong or just not showing? Console errors?
prophetjohn··on Show HN: Hacked Hacker News - new comment highlighting and keyboard navigation
It's currently working for me. Maybe you were just too fast and hit it before domready had fired? Let me know if you have any more issues with it.
prophetjohn··on Show HN: Hacked Hacker News - new comment highlighting and keyboard navigation
It doesn't. The best solution for that that I could think of was to re-GET the current page and pull the new link out of it, but I'm nervous about doing that since HN is so sensitive about HTTP requests being made in rapid succession[1].

[1] http://news.ycombinator.com/item?id=4981907

prophetjohn··on Show HN: Hacked Hacker News - new comment highlighting and keyboard navigation
I created this based on how difficult I found it to be to follow conversations here, especially long ones. It's always been fairly easy to keep track of replies to your own comments, but if you haven't commented in a thread or subthread, you're basically stuck counting timestamps. Since I've gotten it working it's made the browsing experience better. Please report any issues here or on github.
← PreviousPage 3 of 11Next →