Most (but not all) of this post is copy-pasted and reformatted from my usual page here.
I'm offering any of the following, for €50 per hour (in BTC), with the first two 'introductory' hours for €20 per hour. Keep in mind that I deliver high quality work, not a hack job - there's a number of references and reviews further down my post to prove it. Mind that this offer is only for Node.js (including frontend), not for other languages/platforms!
Code review
I will review your codebase, and make suggestions on how to improve the readability, maintainability, reliability and security. I will refactor small parts of your code to explain and demonstrate techniques. The code review is in stages - I start out with formatting issues, move on to modularization, specific security issues, and so on.
Note that I'm a perfectionist - I'll keep suggesting and explaining improvements until there's nothing left to improve. By the time the code review has completed, you will have a noticeably cleaner and more reliable codebase.
I do not strictly enforce any style guides - I value actual real-world readability over "following a list of rules". I will also always provide rationale for any suggestions, no "just because". That being said, I am very direct - no sugarcoating, just getting things done as efficiently as possible. My main goal is to teach you how to write better code, not to just change things around.
Tutoring
Perhaps you just want to learn Node.js, or a specific technology or specialization - promises, scraping, and so on. That's possible too! I will help you learn Node.js in whatever way works best for you. Whether that is pointing you in the right direction for self-directed learning, or explaining things step-by-step. I will adjust my teaching style (and language use) to whatever works for you.
It doesn't matter whether you have prior experience. Whether you're coming from another language or just have no experience with programming at all, I'll be able to teach you. That being said, you must be motivated to learn.
Advice
Maybe you just need the odd bit of advice every now and then - troubleshooting, explaining small things, or even just rewording documentation of a third-party library so you can understand it better. That's possible - you can keep me on a retainer/deposit for when you get stuck, and I'll help you out with any topic I know about
I have experience with a wide array of usecases - especially unusual edge cases with little or no documentation - and can generally adapt to whatever's needed. Some examples of this are writing an adaptive bruteforce/spidering script for a search engine, extensive experience with Tahoe-LAFS, and so on. See also my specializations below.
Open-source development
I'm also available for Node.js software development and refactoring, on a case-by-case basis. Keep in mind that I will only actively develop on open-source projects - that is, projects where the results will be available under an open-source license.
Feel free to contact me with more details about the project you have in mind.
Method
I generally do code review and tutoring over XMPP or IRC - providing snippets of code where needed using a Gist. I can do screensharing (via TeamViewer or an open-source screensharing tool of choice), but I've found that text-based explanations generally work better.
I suggest trying text-based explanations first - we can always switch to screensharing later if text doesn't work out for you.
Specializations
- Application security
- Code maintainability and modularization
- Web-based applications
- Promises, map/reduce/filter, data processing
- Scraping - if it's accessible, I can scrape it
- Unusual architectures and experimental technologies, with little to no third-party documentation
- Distributed and real-time architectures
- I speak both JavaScript and CoffeeScript!
Experience
- 10 years of (backend) software development; primarily PHP, Python, Node.js
- 13 years of frontend development; HTML, CSS, JS (and third-party libraries like jQuery)
- A wide array of open-source projects
- A number of published Node.js modules on npm
- Many other frameworks, libraries, and technologies; too many to list here.
Reviews
Some honest, unedited reviews from customers:
Payment and terms
Bitcoins, of course! I also accept PayPal and SEPA transfers (plus potentially other payment methods), but I doubt those are of much interest to people here
Deposit: By default, I require an upfront deposit in 10-hour increments - that is, you pay for 10 hours of work upfront, and once the 10 hours are up, you pay for another 10 hours, and so on. Any remaining hours after completion of work are refunded (except for advice-on-retainer, for which no refunds are available). If you're on a tight budget, then a smaller deposit might be an option - feel free to ask. Paid-for hours don't 'expire', and are valid indefinitely.
Session scheduling: The minimum session duration is an hour - if it's shorter than that, it will be rounded up to one hour (although in my experience, 2-3 hour sessions work best). Shit happens - if you miss a scheduled session and you have a good reason for it, I won't charge you for it. Please be considerate about this, however.
I can accommodate most timezones, as long as sessions are scheduled 2-3 days in advance. Weekdays are preferred, but weekends are also possible if necessary. You don't have to schedule a session in advance, but there are no guarantees about my availability if you don't.
Exchange rates: The rate is set in euros, and the exchange rate to BTC is the one at the moment of deposit, according to the Sell tab at Bitonic. Refunds are based on the amount in euros, using the exchange rate to BTC at the moment of refund.
Anonymity: I don't really care what your identity is, but keep in mind that tutoring and code review consist of a lot of personal interaction, and it is very likely that you will accidentally reveal (part of) your identity in the process. This is inherent to tutoring, and something you should be aware of when purchasing any such service.
Project types: The type of project doesn't matter to me, but I may turn down work if I feel it either violates my ethics, or applicable laws in the Netherlands. I will discuss your project(s) and goals with you before you make a payment, to prevent unpleasant surprises for either party.
Contact
E-mail: [email protected]
XMPP: [email protected] (OTR fingerprints)
IRC: joepie91 on Freenode (other methods preferred though - it's easy to lose track of PM windows)
... or just send me a PM here on BitcoinTalk!
EDIT: You're free to ask questions in this thread as well, of course.