Hi.

I’m a dev with 3 YOE, mostly in ML and MLOps, and more and more I’m trying to pivot into traditional software engineering. As of now I’m trying to really learn the fundamentals of backend engineering (as opposed to the bootstrapping DIY learning attitude that I had during my ML roles towards backend engineering), and I’m learning Node.JS. I’m getting familiar with the the concepts and the syntax, and so far so good. But one thing that I really lack is the imagination of what a good side-project might be.

So I ask experienced devs here, can you recommend me some good project ideas to work on, to make myself a better dev?

  • swordsmanluke
    link
    fedilink
    arrow-up
    1
    ·
    11 months ago

    Welcome! You’ve just started out on the path off mastery. The first step is deciding to take ownership of your growth and to begin independent study.

    But… All the practice in the world won’t help if you don’t know what you want to learn. Before you pick a project, decide what skill(s) you want to learn in particular.

    A list of a few candidates for skills considered “backend”

    • software design patterns
    • <any given language/web framework>
    • infrastructure tools (dbs, docker, etc)
    • api design
    • SOA vs Monolith tradeoffs

    I recommend picking a specific topic and build your project around that. Pick anything you like! It doesn’t even need to seem useful - everything you learn will make you a better dev - and doing fun side projects is much more motivating than doing “homework”.

    As an example, here are some of my past side projects and what I learned from them:

    • A terminal multiplexer for a head-mounted PC ** Rust; ANSI escape codes; async software design

    • A CNN to identify Lego bricks ** keras; NN layer types;

    • A Ruby gem of useful language abuses ** edgecases of the ruby language; interface design; a little FP

    • A match 3 game ** Godot game engine; gdscript; ux and game design

    • a python FP wheel ** Functional Programming concepts

    • an LLM-based software writing agent ** LLMs - how do they work?

    Each of these was targeted to help me dive into a specific area and improve my skills there.