Let’s Get Colorful

colorful sequins in ROYGBIV order
Photo by Sharon McCutcheon from Pexels

The people who say you should be working on a personal side project are right and wrong at the same time. They’re wrong because it’s a bad practice to expect people to work a full time job and then do more work in their free time in order to be considered viable in the industry. They’re right because it’s what potential employers will always ask you about, particularly if your current full-time role is something they perceive as nontechnical, like teaching or managing.

I’ve always felt paralyzed by the prospect of coming up with an idea for a side project. I don’t have any business ideas. I don’t have any interest in business, period. And the problems in my life that could be improved by technology are usually things that require a small tool, usually something to make repetitive tasks easier.

I love making tools. I wilt in the oppressive doldrums of repetitive mundanity, and I don’t even mind if building and using the tool doesn’t save me time. Breaking even is a win as long as I’m taking on a challenge.

Another thing that sparks joy for me is thinking about how can I make this colorful? Life can be so boring. Where are the rainbow sprinkles? This was the inspiration for Roy, a tool that just makes coloring your Node.js stdout output a little bit easier.

function generateColor() {
	let r = Math.random();
	r = Math.floor(r * 256);
	let g = Math.random();
	g = Math.floor(g * 256);
	let b = Math.random();
	b = Math.floor(b * 256);
	let rString = r.toString(16).toUpperCase();
	let rHex = rString.length == 2 ? rString : `0${rString}`;
	let gString = g.toString(16).toUpperCase();
	let gHex = gString.length == 2 ? gString : `0${gString}`;
	let bString = b.toString(16).toUpperCase();
	let bHex = bString.length == 2 ? bString : `0${bString}`;
	let color = {
		rgb: {r, g, b},
		hex: `${rHex}${gHex}${bHex}`,
		timestamp: Date.now()
	}
	return client.db(dbName).collection("colors").insertOne(color);
}

Recently, a human I trust and respect suggested that I Work On A Personal Project. She was right, so I started wracking my brain about what I should make. I hate this stage because I JUST WANT TO MAKE THINGS! I don’t want to pull an idea out of thin air. So I decided on the simplest concept I could think of: a web app that just served up a random RGB color. And thus, an app was born.

This is it … this function is the whole idea. I’m going to create a web service and deploy it to increasingly complex environments and learn stuff. I’m also going to build a client because, well, I’m primarily a front-end dev right now. I should probably have a client.

Next step: Heroku.

Leave a Reply

Your email address will not be published. Required fields are marked *