Design for developers

As you may know, I work as a front-end developer. Which means that I implement the user interfaces that real people will use and engage with. That's true for all front-end developers, and in most companies, you'll have a designer (or several) designing those interfaces for you.

The way this usually goes is that a UX designer will sketch out high-level wireframes of how information should be structured and how a website/app should function overall. Then, those sketches will be passed to a UI designer. The UI designers job is to make them look great using colors, typography, fonts, images, shapes etc. And finally, it'll end up for you to implement using HTML, CSS and JS.

This is not a bad process. It allows each individual to focus on what they find most exciting and what they're good at. But there is a slight problem.

No matter how well the UX and UI designers do their job, sooner or later, you will have to make some design decisions as well.

Maybe they forgot to account for a certain edge case, or didn't design how the site should look on tablet devices. Or maybe it just wasn't feasible for them to play around with animations in other tools, leaving you to decide certain details.

This can be scary for developers who aren't comfortable with design, but it's also powerful. As the last part of the chain, we have a lot of freedom and responsibility to create the best possible product. And knowing basic design skills is a tremendous asset in this regard.

You don't need to be a designer. You just need a feel for what looks good/works well, and what doesn't. A lot of it comes with experience, but you can also help yourself by accepting this fact early on in your career. Put in some effort to understand the basics behind color theory, font hierarchies, Gestalt laws, animation etc.

Then you'll be well equipped to make design decisions when they inevitably end up in your hands.