I'm looking for someone to work with me on Pinboard from June 15 to September 15, 2013.
This is a remote position. You'll set your own hours and coordinate with me online.
The pinternship pays a modest stipend of 6,000 USD. More valuable is the chance to develop your skills as a generalist web developer. ‘Generalist’ may not sound exciting, but it's actually a rare person who understands a production web app from top to bottom.
You'll spend three months learning every aspect of running Pinboard, a reasonably complex website with about 20,000 active users. Each layer of the ‘web app stack’ will come to feel like a close and trusted friend. Then that friend will betray you, and you'll practice extracting the knife from your back as you hide your tears from an uncaring world.
This skill, once properly developed, will prove useful in landing high-paying computer jobs.
What You'll Do
Part of your job will be to help me with the day-to-day operation of the site, including troubleshooting and finding ways to automate time-consuming work.
The rest of the time you'll spend on a series of projects in areas of your choice. We'll spec out the projects together, you'll build them, and they'll go live on the site. Then we will scramble to fix them.
Here are some examples of things you could work on:
- Care and feeding of a production MySQL database
- Caching, including memcache, varnish and pound.
- Helping me implement version 2 of the Pinboard API.
- Hacking on the Sphinx-based search engine.
- Writing a better web crawler.
- Making improvements to the job queue and scheduling system.
- Writing tools for text parsing and analysis.
- Machine learning and classification.
- Building custom UI components in Javascript.
- Writing browser plugins for Chrome, Firefox, or Safari.
- Finding security holes and patching them.
- Deployment scripts and emergency checklists
- Improving server monitoring tools
What you work on will depend in large part on what you want to learn.
Over the course of the summer, you'll have a chance to get intimately familiar with the different components of a modern web application (hardware, operating system, database, network, application, and cache) and how they fail to work together.
You'll have the satisfaction of building things that benefit real people.
Ideally, you'll gain useful experience and earn a small amount of money while not completely destroying my livelihood.
Requirements
I don't care where you live, but you must be at least eighteen.
You must be highly autonomous and good at muddling through problems. If you are easily frustrated, you will not enjoy working on Pinboard.
You should know your way around a Linux system and be proficient in at least one programming language.
You have to be somewhere where I can meet with you in person before June 15. This means Paris, Warsaw, Gdańsk, or the San Francisco Bay Area.
You should have a strong work ethic and lots of enthusiasm. Enough for two people.
How To Apply
Send me a link to a webpage with the following info:
- Who you are, and where you live.
- What you're good at already.
- What you'd like to become good at this summer.
- A feature that you'd like to see added to Pinboard.
- Any project you've worked on that you're particularly proud of.
- For super extra credit, your solution to problem #17 in the Matasano crypto challenges.
The webpage should be served over TLS and include a custom HTTP header called 'Pinternship', with its value set to an emoticon of your choice.
If I really like your application, I will ask you to give me a couple of personal references. I'll also ask you to meet me for an in-person interview.
Thank you!
—maciej on April 28, 2013
Pinboard is a bookmarking site and personal archive with an emphasis on speed over socializing.
This is the Pinboard developer blog, where I announce features and share news.
How To Reach Help
Send bug reports to bugs@pinboard.in
Talk to me on Twitter
Post to the discussion group at pinboard-dev
Or find me on IRC: #pinboard at freenode.net