this post was submitted on 24 Oct 2023
10 points (100.0% liked)

Ask Experienced Devs

1227 readers
1 users here now

Icon base by Delapouite under CC BY 3.0 with modifications to add a gradient

founded 1 year ago
MODERATORS
 

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?

all 4 comments
sorted by: hot top controversial new old
[–] [email protected] 3 points 11 months ago

The advice I usually see given is to work on a project you actually care about.

A guy I knew in college was really into rpgs, so he made a tool to store character information. Then he built it out to do dice rolls. And then to make it so other people can see the dice rolls. Sort of like DND beyond, but 10 years earlier.

When I was looking for a job, I built a tool to track my job applications. Not as fun, but it helped me brush up on the whole stack.

[–] swordsmanluke 1 points 8 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.

[–] Kissaki 1 points 8 months ago

Do you run your own server/VPS? If you are looking into backend development I can highly recommend running your own, and setting up things you're interested in, stumble over, or find useful.

I've gained a lot of experience through working on what interested me, I found useful, or needed, and setting them up on my server too.

Do you not have things you stumble over or tools you would find useful? Or FOSS you use?

I've made tools for myself for file checksums, for practicing things, for storing resources/information, for publishing and integrating my services, for visualization and debugging, for parsing data formats, for cutting video, for downloading and converting things, and many more.

If you are looking into backend specifically, what kind of backend? For what kind of service or application?