The people who will take on the new role have now been selected, and know who they are.
My time constraints have meant that a lot of ideas and suggestions end up getting dropped just because I just don't have the time for it. To help address that, we are now looking for people who are willing to put a bit of time towards operating the forum, in an unpaid role. Ideally, I will take on 2-3 people.
You can read a bit more about the tech stack that we use for the forum in this blog post.
There are a few broad categories of work that we're looking for. These aren't strict categories - if you're interested in all of them, that's great, and if you think you can offer something genuinely useful but which doesn't fit into any of these categories then that may also be ok.
Design and front end development
The look of the forum has been largely unchanged since 2016 (although there are some fairly big changes coming soon due to changes to the upstream theme), and it would benefit from some more care and attention from people more design-oriented than me.
The role would involve identifying areas of the forum that don't look great, then designing and implementing changes to the theme to make them better - major restructuring changes are sometimes not feasible due to the theme framework, but there is a wide scope for changes within individual components. It would also involve merging changes from the IPS default theme back into the LTT theme to get the latest bug fixes and enhancements, and testing that everything still works - most of the work here is handled by git, but there are frequently conflicts that need to be resolved manually.
Back end/full stack development
There are lots of features that people have suggested over the years, and some of them are even good ideas.
The role would involve building everything from small enhancements (such as showing the subforum in the recent topics list) to large new functionality (such as the upcoming rewrite of status updates from the ground up), and maintaining them against the moving target of the forum software. It also involves debugging issues, both in your own code and in others (the best way to get IPS to fix a gnarly bug is to give them the root cause), and making sure that you don't introduce any security vulnerabilities.
The server is surprisingly hands-off for serving over 100k unique visitors per day, but I'm no sysadmin so I'm sure there's a bunch of things that are set up in totally wrong ways.
The role here involves generally just be keeping the server running and secure, and you can make of it whatever you want. So far, I've done about the bare minimum needed to get things running, so there's plenty of scope for automation and scripting, as well as containerization, virtualization, or whatever takes your fancy (but remember that that the forum is just running on one server, so if you break it, you will also have to fix it). If you just want to keep things ticking over as they are, that's cool too. Elsaticsearch has caused us a reasonable amount of pain over the last few years, so if you know how to tame it then I want to hear from you.
Mixture of technologies
Automate all the things! The Invision Community framework was not designed for testing, and makes tests quite difficult, so my aspiration is that we build a testing framework that overcomes those limitations. This would also cover things like the tools for automatically updating the repo when a new Invision Community release is available.
If you're interested in helping out, please make sure you can spend a few hours helping out with the forum in most weeks (on average - being unavailable during school time but having lots of time available during breaks should also be ok). This is a voluntary position, but Invision Community has over 400k lines of code so ramping up will not be quick.
Initially, I will also act as a product manager, helping to gather suggestions and guide the path forwards. However, over time I intend that everyone is willing to come up with their own ideas for things to change, and to interact with the community on suggestions and feedback.
You will need to work self-guided - time zones and availability will mean that there will often not be anyone around who can answer questions or tell you what to do next. Communication will be through Slack.
Who we're aiming for
We're not looking for people who have no programming experience, or who are just starting out with programming. I encourage you to keep going with it, but helping out with the forum will not be the right environment for learning the basics.
However, we are open to people who have worked on a few decently sized personal projects and understand the importance of structured, maintainable code, and are looking to work on something a bit more real-world. For these people, I hope that working on the forum can present an opportunity to grow and learn a lot more about Software Engineering, but in return they must be willing and able to learn quickly.
We are also open to people who have more experience to bring to the table, for whom the forum might be a side project or a way to try out some different technologies.
This isn't an opportunity to get rich, but it is a way of giving back to the community, building your skills, and getting a reference for jobs/university/etc.
Why do you use PHP? PHP sucks, x is much better. Yes, PHP is a very bad language, but we are constrained by the forum software that we're using. If I rewrote everything from scratch tomorrow, I would probably use Go, but I would also be here a very long time.
I don't know PHP, can I still help? If you have a reasonable amount of experience with other languages, PHP shouldn't be too hard to pick up. The code is fairly similar to Java, although without types.
Why don't you just open source everything, so everyone can contribute? The forum software is proprietary, and owned by IPS, so we can't open source that. Without the forum software itself, there's not much use in open sourcing the rest, and doing so would come with its own set of problems. Also, due to the size of the codebase, it would be better to have a few people who have ownership and understand the code, rather than a bunch of contributors who only understand it superficially.
Why only have a small number of people? What one developer can do in one week, two developers can do in two weeks. Having lots of people would mean that I have to spend even more time trying to organise things (and less time keeping the forum going or directly helping people to ramp up), at least at the beginning, and that won't end up being a good experience for anyone. Also, giving 30 people access to the forum software would almost certainly breach our license agreement.
Will I be a moderator? No, although it isn't mutually exclusive with being a moderator.
Will I get to interact with LMG much?No. LMG are very hands-off with the forum, so you should assume that there will be virtually no interaction.
Does this let me work on Floatplane too? No.
I don't use the forum, can I still apply? Being an existing forum user is not an absolute requirement, but it is definitely quite beneficial - it's hard to find things to improve if you're not already using it. If you got the role, you would be required to at least use the meta sections of the forum (Bugs and Issues & Forum Suggestions).
When will I hear back? It depends how many people apply, but I anticipate that it will take several weeks. We aim to email everyone with a decision once it has been made.
Can I put this on my resume? Yes.
If I do this, will I get a forum badge? Yes.
Will there be meetings to attend or paperwork to fill in? You will have to agree not to share the forum's code, but otherwise there won't be paperwork. Depending on what people want and how availability works out, we might have a biweekly or monthly meeting to keep everyone in sync on what's being worked on, but that is not decided yet; most communication will be in Slack, although especially towards the beginning there will be more voice/video calls to get ramped up.
Will I get woken up in the middle of the night when things break? No, unless you want to. The forum is generally pretty stable, and most outages are either load related or out of our control, so we're not likely to need any specific person to investigate.
Will there be deadlines to meet? No, any changes will only be released when they're ready, with no pressure to get it done for a specific date (although sometimes it can be helpful to set yourself a target).
How will I test my changes? Everyone will install a local version of the forum software on their machine (Windows, MacOS and Linux should all work), so they can make and test changes easily. No testing in prod please!
Are there any conflict of interest rules? As long as you're doing things for the benefit of the forum/community rather than for anyone else, and you're not being paid by anyone else for your time, there shouldn't be any issues. If you have questions or concerns, please reach out to me by PM.
I have a question that isn't answered here. Post questions in this topic (preferred), or send me a PM. Note that this will probably make me quite busy, so it might take me some time to get to your question.