7

In my spare time, I like to develop various small libraries and CLI utilities that solve a real problem I have, but are also likely useful to other people with the same use case. When I say small, I mean that the LOC count is modest and the scope is limited - but the program itself is not trivial does solve a real problem.

I am obviously comforting working independently, setting my own goals and directing my projects. I also have substantial professional experience. However, I feel like it would still be very useful to get a code review from another programmer (ideally someone who knows things I don't). How can I get people to do this? I'm not talking here about an extensive audit of my code, since I wouldn't expect someone to donate skilled labor for free. Somebody just spending a few minutes to look over parts that interest them and pointing out anything that stands out would be enough.

I would judge the quality of my code to be good (who wouldn't, right? :) ). I try to challenge myself and follow best practices, make clean git branches and history, comment where appropriate, modularize the code, put thought into how things are named and generally make it easy for someone unfamiliar with the code to navigate it. That someone is often me, since I often go weeks or months without looking at my codebase, until a new feature or bugfix is needed, and by then I'll have forgotten most of it, so I try to design my code so as to not demand too much context or familiarity. I would be happy to improve the code quality further, but at this point it's counterproductive for me to try and blindly improve everything without knowing what particular area is lacking. For example, does it need a comprehensive API reference doc? Are the modules too long and need to be broken up? Are the interfaces unclear? Is the code style not good? Is the use case not well explained? These are the kinds of things I feel I need a second opinion on.

Some ideas, I've had, but seem like they don't work:

  • Just waiting for people to organically discover my Github repo seems like a losing battle
  • Code Review at StackExchange seems focused more on shorter snippets that can be posted in a question. My projects are already fully fledged packages comprised of multiple source files, with releases to a package repository, you would really need to clone the repo and open it with an IDE to read the code comfortably.
  • I don't have any friends who could/would review my code for me :(
  • Although I work as a software developer, my colleagues would likely not find my work interesting, and I'd also like to have some separation between personal and professional life.
  • Hacker News occasionally has people showing their work, but the projects I see tend to be significantly more ambitious than what I develop.
  • I'm not a heavy Reddit user but from my casual experience, it seems like the userbase is heavily skewed towards novice programmers, at least in the big subreddits where I see people share their projects (so the opposite problem of Hacker News). Also, I would like to advertise on places like Reddit after I've had some genuine users test it for a bit, so that the project is more presentable when I share it and I can gain some users.

What are some good ways of getting code reviews of my hobby projects, when the project is not a tiny beginner project (ie. it solves a real problem and has a realistic use case) but also not big enough to brag about (it is utilitarian, trying to do a simple -and useful- thing well, rather than a very ambitious goal).

3
  • Interesting question, and I don't have a great answer. Pre-covid I would say go to a local meetup (if your area has them) and take a spot in the 5 minute announcements section to mention your projects promote your Github repo and see if anyone is interested. Since covid, all the ones I used to attend in my area went dark for a while, but some went online and some are starting up in person again. So essentially, promote your repo and try to do something useful enough that people want to spend time with it.
    – joshp
    Jun 2 at 2:06
  • 1
    Welcome, you could start by adding your GitHub profile to your StackExchange Profile. If this question gets traction you could have some trafic over there. Jun 2 at 6:32
  • Plot twist: the code that OP wants reviewed is for a service where people can request code reviews for hobby projects 😁
    – frnhr
    Jun 3 at 18:47
5

Like you mention (and dismiss) I would go to Codereview Stackexchange and highlight a small section-- perhaps key functionality-- and get feedback. This has a collection of people who like doing exactly what you need. If you can generate some interest, perhaps the same people would be willing to do more of it, for free, money, barter or some sort of exchange.

You should also be more open about publishing your project-- I don't see it mentioned above. You can post about it around the net (and here!) and drive a small amount of traffic there. And then, in you project readme, make sure it's clear that you are interested in feedback.

And yes, if there were meet-ups, that would be good. But maybe you can find the online equivalent of something very specific to your project. Yeah, you may get some less experienced people, but this isn't always bad. Junior engineers can still ask good questions and help you understand where you code doesn't make sense.

Good luck!

3

Advertisement is the key. But I would recommend not to start with the search for reviewers - start with looking for users first, which should be possible when your programs really solve interesting real world problems, as you said, maybe in a more suitable way for certain people than competing solutions.

Once your program has got a significant user base, sooner or later reviewers will follow (assumed you publish the source code in public). So the obvious next question is: how do you create a significant user base?

That's is quite simple (o.k., in reality, it may be not that simple): you need to make your program easily discoverable throughout the web. So polish your GitHub project's site, or make your own, private web site and

  • give a clear and well written description what your programs are good for

  • write about example use case

  • make a show case, maybe with screenshots

  • provide a forum / feedback channels

  • try to find public forums where others were trying to solve exactly the problem your programs solve, and point them to your site as a potential solution (but be careful this will not become perceived as spam)

  • do some SEO, for example, by embedding several relevant search keywords into the site

  • choose a not-too-restrictive Open Source license (at least not at the beginning)

  • give a clear statement on the site that you would be very happy to get feedback or critics from other developers

Moreover, you wrote you want "somebody just spending a few minutes to look over parts that interest them". That sounds to me that you can pick at least certain parts of your code to ask about them on Codereview Stackexchange. Though they don't do reviews for code hosted on third-party servers, AFAIK they allow links from a question to a project on GitHub for providing additional context. That could also help to draw some attention to it.

1

Interesting question and I don't know if there's necessarily a great solution to this. But since it hasn't been mentioned, have you tried IRC? People on IRC (on freenode, which now seems to be libera.chat) have been super helpful and generous to me in the past. I once asked the #haskell channel to review one of my source files and actually got some feedback.

Especially since

  • your code is allegedly short

  • you're allegedly an experienced developed that probably knows how to ask properly

I really think you'll have a good shot there.

1
  • 1
    libera.chat is not freenode, but many channels have moved from freenode to libera.chat. Jun 3 at 18:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.