I often hear this suggestion that engineers early in their career should work on side projects to show off. Until you try, it’s difficult to realize how hard it is to do that. From balancing work and life, to coming up with ideas, to finding the motivation, it is many times harder than anything I approach at work.

For me, personal projects are a creative outlet and a way to learn new things. I think this is the real value in personal projects (side projects with an aim for income are a different story and not what I’m talking about here). This project started off as an exploration into how Markov Chains work. Eventually, it grew into the Markov Recipe Generator.

Screenshot of the Markov Recipe Generator page

There’s a lot of new tech that I don’t understand, and I feel like they’re incredibly difficult to understand. Kubernetes and neural networks, for example, I have no idea how they work beyond the basic concept. I can go through a “Getting Started” tutorial and I’ll come out the other side still not really sure if I understand it, or can apply it.

Markov chains might be 20th century “AI”, but it’s much easier to understand and fairly approachable. Here’s my takeaway: don’t chase the latest and greatest. Find something approachable, keep the scope small, focus for an audience of one or two, and build it.

If the motivation isn’t there, try something else, find someone who will push you on, or take a break. I have (literally) hundreds of unfinished projects. One project, a game I’ve envisioned for a long time, I’m currently up to 36 attempts to start it. On taking breaks: I’ve taken many breaks of 3-9 months where I don’t even open my IDEs. Sometimes, you just have to wait for inspiration to come.

Screenshot of a sample recipe

For the engineers early in your career, there is no rush. There is no need to pack your Github with amazing projects. And there’s no need to have learned all the technologies.

Work on things that you’re curious about and drive you, and the experience will show in your future work.

Markov Recipe Generator: Give it a try and let me know what you think!



How does it work under the hood?

I built the whole thing on AWS Lambda + API Gateway, with a Netlify frontend. C# + .Net Core on the backend, taking advantage of some async logic for speed.

The Markov model comes from this dataset. I pre-train the markov models for speed’s sake. Thankfully they fit into a deploy of AWS Lambda (50MB limit)!

The images are pulled from Pexels and transferred to the frontend via a data:image string.