Settings

Theme

Ask HN: What portfolio items are most impressive to you when hiring developers?

67 points by nullundefined 9 years ago · 36 comments


kasey_junk 9 years ago

The best devs I know dont have portfolio pieces. They tend to work on problems that the people employing them pay a lot of money to prevent being public.

So for me portfolios are for junior devs & graduate students looking to leave academia. Therefore, I look for things that are uncommon in those environments, engineering over theory, documentation & tests over novelty.

Note: if I were hiring for a researcher the above would not be true.

  • gdfer 9 years ago

    This is refreshing to hear. I've been a successful developer for years working for a few different clients but don't have this portfolio of things I've done after work.

    What I do have is a bunch of great reviews from my managers in the past years. Do those carry any weight in an interview?

    • kasey_junk 9 years ago

      See my other answer to the subthreads. I could go on and on about software hiring as its something I've spent a fair amount of time testing and thinking about. But in a limited answer:

      - If I had a good work sample based proxy for hiring, I'd use that and basically nothing else.

      - But that never happens, so what I (and most places I've encountered) actually use is network based hiring. So a bunch of great reviews from your managers is awesome for hiring assuming I know them. If I don't its basically a crap shoot, but I view it as much more valuable than some half baked collection of github repos proving to me you've done the the first couple chapters of several hot "how to" books.

  • dsacco 9 years ago

    Just curious, how do you consider maintainers of popular open source projects? I broadly agree with your thinking here, but I'm wondering if you consider an open source project part of a "portfolio" if it's mature software.

    • kasey_junk 9 years ago

      Sorry just seeing this question. Without getting into a giant rant about software hiring, there are things I think should be and things I think are.

      In a should be case you'd have a hiring pipeline that had a good objective work sample proxy for the work you were trying to do and you'd judge blind other than that.

      In the real world, I've found what actually happens is network based hiring. I hire the people I already know are good. After that, its mostly a crap shoot but I'd take popular open source contributors over other candidates all things being equal (though by the time you've contributed to a popular open source project you are dramatically past the bar for hiring outside of the "network" tract).

indescions_2017 9 years ago

Look for "fit & finish" in a completed app. There is an old saying: "we're 90% done, now all we have to do is the remaining 90%!" I like to see that polish. It implies an understanding of the craft that is required, attention to detail, good debugging skills and an appreciation of human-centric design principles.

  • robpethick 9 years ago

    This sounds really great - but how does something look 'fit & finish'? Is a decent Readme.md with descriptions + screenshots of a sharp app good enough, or does it need to be actually deployed somewhere public?

    • wibbleywobbley 9 years ago

      Typically when I am presenting a project as part of an interview I spin it up in AWS (or elsewhere) and provide login credentials for them to actually play with the application. It makes it a lot easier to discuss the specifics of how an application was built when you can demo the application directly.

corobo 9 years ago

Anything at all relevant to the role - same language, same functionality at least.

Ideally things like good tests, good code structure, personally I'd also like to see a stable language choice too - if you're jumping from one language to the next to the next I'll probably assume you're going to want to rewrite everything in the new hotness every other week and that's a pain in the arse.

Associated blog posts that explain how your code works and why though? I'd put your name to the top of the "get this person in" list on the spot

  • shubb 9 years ago

    That seems like a wierd expectation for evaluating peoples home side projects.

    One reason people do side projects to develop and demonstrate effectiveness with technologies they don't use at work.

    If I saw someone using a familiar and established stack to build fininshed, highly polished applications as side projects... I'd assume they were trying to make a product. That's what you do when you are making a product. You'd need to bring it up because they might be more interested in building their own startup than working for me.

    • corobo 9 years ago

      The question was "What portfolio items are most impressive" not "What portfolio items are required" :P

      Infinite disagree on the "they might want to work on their own thing more than my thing" angle

      They're keeping their skills sharp on their own dime and that's a bad thing? Many employees only stick around for 2 years or so anyway who cares whether they move on to the next 9-5 or their own thing?

  • aeriklawson 9 years ago

    I sometimes do projects in new frameworks or languages as a learning experience - in a professional setting I would still default to tried and true tools that I have a lot of experience with and are relatively stable. How do you differentiate between individuals like you describe and people like me who like to experiment for education's sake?

    • corobo 9 years ago

      > How do you differentiate between individuals like you describe and people like me who like to experiment for education's sake

      I wouldn't, that person would - I don't imagine many people put their experiment/education projects in their portfolio

      • krrishd 9 years ago

        > I don't imagine many people put their experiment/education projects in their portfolio

        I highly disagree, experiment/education projects aren't necessarily low-quality by default, so I don't see why they wouldn't make it into a portfolio.

        • roryisok 9 years ago

          I'm in a situation where a lot of my work projects have been axed or replaced with newer projects. I have very little professional stuff to show, sadly. But I do have some side projects I'm very proud of, and I'm dammed if I'm leaving them out

        • corobo 9 years ago

          That's a fair point but if it was an absolute top notch experiment/education banger then that person's going to the top of the pile anyway because my experiments in new languages are 10% todo lists and 90% abandoned hello worlds

          • probinso 9 years ago

            I can see why some people might use to-do lists as their go-to, but those often are not representative of actually exploring a language.

            I guess there is probably a large community of people who only share publicly projects they consider portfolio Worthy. I have found sharing valuable in both failed and successful projects when interviewing, teaching, and spec'ing a new project.

            You're correct in noting that some of these projects fail, but as long as there is sufficient code the projects they can often be interesting.

            Sort of side projects that I pull together in another languages are often to explore language features that are not readily available in my common tongue. Certain languages have made completing certain tasks far easier like heavy Matrix programs in Octave or Julia, n-body simulators with extended unit types in Julia, multi-threaded cryptographic toy project in erlang, statistics problems and visualization in R, easy concurrent types and strong explicit typing for model train controller and Ada. I have also used a new language for a interview coding challenge (for fun).

          • cableshaft 9 years ago

            One of the ways I learn new languages/frameworks is by porting something I've already made before and don't really have to work out how to design it again.

            For example, I've ported my Proximity game a bunch of times. Some of these never got completely finished and released:

            * Actionscript (Flash, released and playable online)

            * Java (J2ME and later Kindle -- the Kindle version looked awesome, too bad Active Content is no longer a thing)

            * C++ (Popcap framework)

            * C# (XNA, released on Xbox 360 on Xbox Live Indie Games)

            * Objective-C (OpenGL ES, released on App Store)

            * Python (I just used text graphics)

            * Lua (Pico-8, almost done but not quite)

            * Physical board game prototype, hoping to find an interested publisher

            * C# again (Unity this time, and making it in 3D)

            • roryisok 9 years ago

              Physical board game is a cool language. You have to roll your own garbage collection though.

softwarefounder 9 years ago

Authentication.

i.e. Have you successfully implemented a good OAuth[2] security system? Can you explain the difference between JWTs, and session auth? Why choose one over the other. Talk to me about SSL a little bit, even at a high-level. How do you secure APIs? Talk to me about how you encrypt passwords, and sensative data.

Have you had to deal with PCI DSS?

This is one of the differences between "I'm a developer who has maintained a simple CRUD app" and "I'm a senior developer who can build a secure system".

Or in other words, authentication separates the men from the boys.

agitator 9 years ago

I like seeing personal projects that solve interesting problems, and that show that the person really considered the use cases and application of their project (UX design, functionality, etc.). There are good engineers, and then there are engineers that focus on why/who they are doing the engineer and I think that's really important, especially in a startup setting where people need to be intelligent self starters and hold themselves to high standards without having someone breathing down their neck.

sodafountan 9 years ago

I like to see lots of personal projects, the more complete and fleshed out the better, it shows you have a passion for the craft. I'm also slightly biased in favor of people without a college degree like myself, but I certainly wouldn't hold a degree against anyone.

so my most impressive candidate would be someone without a degree and quite a few very complete and well polished personal projects.

  • gaius 9 years ago

    I like to see lots of personal projects, the more complete and fleshed out the better, it shows you have a passion for the craft

    Translation: young, impressionable, willing to work lots of unpaid overtime

  • good_vibes 9 years ago

    There's still hope. Glad I saw this comment.

camhenlin 9 years ago

I like to see projects that people are obviously passionate about. A project that someone worked on with passion is likely to be some of their best work and best ideas melded together. If the output of that is good, they're probably worth giving a shot.

edoceo 9 years ago

Anything that has shipped.

If you run an open project on GitHub I'll also look at your wiki and issues, to evaluate communication.

20years 9 years ago

Something that has shipped, acquired customers and made money. Those things are more impressive to me than what framework, programming language, etc. you used.

  • lj3 9 years ago

    Why would a programmer who can do all these things work for you?

    • 20years 9 years ago

      It doesn't have to be a lot of money or customers. Even a small portion shows they can think about the bigger picture and ship something user/customers want to use.

      You are right, a programmer who can make $80k+ building their own stuff is most likely not even looking for a job.

    • kasey_junk 9 years ago

      Because those things imply a team effort not an individual one? But demonstrating you've been part of one of those teams is a good indicator.

      • lj3 9 years ago

        If it's a team effort, then why are you judging the developer candidate based on what other members of the team did or did not do well (acquire customers and make money)? It makes no sense to judge a developer based on criteria he's not directly responsible for.

      • big_spammer 9 years ago

        Please don't generalize without evidence to back it up.

        The first version of the Linux kernel wasn't written by a team, for example, and writing an OS is clearly impressive. Linux didn't ship, get customers, and make money.

lastofus 9 years ago

Something with a vibrant community built up around it is most impressive to me. It shows a degree of communication and management, not to mention marketing.

Otherwise, most github repos are not that impressive as I have no idea how long it took to write (did it take a few months to write something most devs could write in a few days?), or if the candidate even wrote it at all.

  • lj3 9 years ago

    > It shows a degree of communication and management, not to mention marketing.

    Which is important when hiring a programmer who won't be managing anybody or marketing anything.

    • lastofus 9 years ago

      The question was what I find most impressive in a portfolio, not what I require in a candidate. "Soft skills" on top of good engineering is extremely impressive.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection