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.
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.
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.
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.
- Application security
- Code maintainability and modularization
- Web-based applications
- Promises, map/reduce/filter, data processing
- Scraping - if it's accessible, I can scrape it
- Parsers and DSLs (Domain-Specific Languages)
- Unusual architectures and experimental technologies, with little to no third-party documentation
- Distributed and (soft) real-time architectures
- 13 years of (backend) software development; primarily PHP, Python, Node.js
- 16 years of frontend development; HTML, CSS, JS (and third-party libraries like jQuery)
- Extensive educational/technical writing experience (example)
- 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.
Some honest, unedited reviews from customers:
I reached out to joepie91 through IRC for help on reviewing my code, his confidence, open source contributions and experience within the language I was targetting was a great match for me. His mentorship has really helped improve the quality of my code through consistency and just a better understanding of concepts.
Sven is an incredibly talented developer that works with utmost diligence. He has thorough knowledge of Node.js platform along with the tools built on it and is really passionate about crafting the right implementation to solve most any problem at hand.
I hired Sven (joepie91) to help me beat the learning curve for Node.js; I needed quick tutoring as I was building out a codebase from scratch for a startup. Not only was he an excellent tutor in helping me understand concepts instead of just giving me the answer, but he was also available for me pretty much whenever I needed him. I expected to need ~25 hours of his services; however, I have made so much progress with him that I can't seem to get past 10.
In about only 8 hours, Sven (joepie91) taught me about modularization, callbacks, working with third-party modules, correct variable use, express routes and promises just to name a few. Sven often went into overtime just to make sure I understood a topic, and always made sure I had a thorough understanding of the material before ending a session. Sven is one of the most, if not the most experienced NodeJS developers I've ever worked with.
Cost and payment
Available payment methods include PayPal, Bitcoin, and SEPA transfers. Other methods are considered on a case-by-case basis.
|Commercial work||€70 / hour|
|Non-commercial work||€40 / hour|
|Rate discounts and smaller deposits are available if you're on a tight budget - don't hesitate to ask!|
All payments must be upfront deposits, in 10 hour increments - after 10 hours of work, a deposit for the next 10 hours, and so on. Scheduled sessions are rounded up to always be billed at at least one hour, even if they took less than an hour.
I don't require fixed commitments. We'll simply continue until we run out of either budget or problems to solve. Remaining hours after completion are refunded on request.
|IRC:||joepie91 on Freenode|
When contacting me by e-mail, I will typically respond within 24 hours.
My availability varies by week. Scheduling is flexible, and timezones are usually not an issue; simply let me know when you're available, and we'll figure out a time that works.
Below is my availability for the near future:
|Week 44 (October 30, 2017 - November 5, 2017)|
|Monday (October 30)||Unavailable|
|Tuesday (October 31)||Available!|
|Wednesday (November 1)||Available!|
|Thursday (November 2)||Limited availability|
|Friday (November 3)||Limited availability|
|Saturday (November 4)||Unavailable|
|Sunday (November 5)||Unavailable|
|Week 45 (November 6, 2017 - November 12, 2017)|
|Monday (November 6)||Unavailable|
|Tuesday (November 7)||Available!|
|Wednesday (November 8)||Available!|
|Thursday (November 9)||Limited availability|
|Friday (November 10)||Available!|
|Saturday (November 11)||Unavailable|
|Sunday (November 12)||Unavailable|