Ask HN: What portfolio items are most impressive to you when hiring developers? |
Ask HN: What portfolio items are most impressive to you when hiring developers? |
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.
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?
- 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.
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).
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
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.
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?
I wouldn't, that person would - I don't imagine many people put their experiment/education projects in their portfolio
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.
so my most impressive candidate would be someone without a degree and quite a few very complete and well polished personal projects.
Translation: young, impressionable, willing to work lots of unpaid overtime
If you run an open project on GitHub I'll also look at your wiki and issues, to evaluate communication.
You are right, a programmer who can make $80k+ building their own stuff is most likely not even looking for a job.
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.
Which is important when hiring a programmer who won't be managing anybody or marketing anything.
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.
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.
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).
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)