Who is this book for?

It's for junior or intermediate JavaScript developers who want to learn how to design maintainable & scalable software.

What's the main takeaway? What will I learn how to do?

You'll review classic OOP concepts and learn a set of design principles to aid you in improving your software designs. You'll also understand how to apply these principles when writing code on either the frontend (with React or Angular) or the backend (with Node.js, Express.js and Sequelize).

When is this coming out?

August 2019!

How long is it?

So far, it's about 150 pages and counting

Will it still be free when it comes out?

For now, yes. Absolutely.

Why are you writing this book?

This stuff really helps to write better code. I want my peers, especially the ones writing JavaScript, to have these skills.

Free ebook

Write SOLID code

An introduction to software architecture and design principles with Node.js and TypeScript

Get it free. Delivered straight to your inbox when it comes out.

Send me the best Node.js, TypeScript and JavaScript software design resources as they're released

I want this

Prevent unmaintainable code- learn how to identify bad design and refactor towards a good one

Reap the benefits of OOP and type checking with TypeScript

Use the SOLID principles to prevent tightly coupled and untestable code

Develop a flexible and testable architecture using layers

When to consider microservices and how to proactively code towards eventual microservice deployment

How and why to layer your application into domain, application and infrastructure layers

Learn how to structure any application’s source code for scale

How and when to write unit, integration and end-to-end tests

Why to structure business logic away from dependencies, frameworks, tools & ORMs like Express.js and Sequelize

About the author

Khalil Stemmler

Developer Advocate @ Apollo GraphQL ⚡

Khalil is a software developer, writer, musician, and ex-failed-startup co-founder of Univjobs. He has 6+ years of experience writing software with Java, JavaScript, Node.js, and as of late: TypeScript. He writes about software design and architecture best practices with TypeScript and is especially passionate about Domain-Driven Design and GraphQL.