Selecting your Side Project
It’s been a decidedly wet weekend. Very Autumnal, with the added challenge of recently moved house, which has presented some do-it-yourself (DIY) challenges.
Why should you choose “now” to start a side-project? There is never an optimum time to start something new, progress it, and take it over the finishing line.
Easier to have a cup of tea, a slice of cake, and put it off.
The disadvantage, you aren’t going to learn something new, interesting, and motivating….despite the lure of the cake.
So let’s start.
The first step is choosing something. Maybe it’s something you want to create, learn a new tech stack, or satisfy that creative itch. A small amount of all three is just fine.
For me, building something is not just about writing the code, but designing it, making it easy to maintain, and then telling the world about it.
I’m not talking about me wearing a sandwich board, but telling your audience, and asking for feedback.
Don’t be afraid of feedback. It will be good, bad, wanted, and unwelcome. Remember, you cannot please everyone.
So i’m going to paint a picture of my side-project, which has been “in the wings” for too long.
VW Adverts has existed before, but has not recently seen the light of day.
The gist is a registered user enters some keywords, which represent what they are interested in, advertisements, for sale, classifieds, and market place, which are searched automatically. The ones which match are sent to the user.
I love this project, because it presents some interesting challenges.
I get to play with search technology, which has always interested me. Writing connectors which feed the search engine, (with relevant adverts, and meta-data) allow me to use new tooling, and API’s.
The enterprise aspect of this project allow me to experiment with new “stuff”.
Service registration, and discovery. Connectors represented as a command. Commands run in parallel.
But I think i’m jumping ahead of myself, which many developers do :D
Let’s move back to choosing a side-project. I want it to:
- allow multiple users to register, with their search-terms.
- have individual connectors which can add data (to the search engine).
- have a variety of ways of letting a registered user know about relevant adverts.
- be easy to register, and manage users, with a simple (yet extensible console).
- deployment is automated.
- I want to develop a minimal viable product, which will use unit-testing at it’s core.
- A VW enthusiast will be interested, and find it easy to use.
It’s important to paint a picture of the side-project, i’m going to move forward with.
Next, time to look at features, technologies, and useful tooling.