View profile

Making it look easy - 123dev #59

Making it look easy - 123dev #59
By Justin Garrison • Issue #59 • View online
Doing the impossible makes you the GOAT

A goat effortlessly climbs a wall
A goat effortlessly climbs a wall
Knowing how to debug
Writing code isn’t too hard. Writing code that works is difficult. Writing code that does what is intended on the first try in all circumstances is nearly impossible. One way to get from writing to working code is through testing and debugging.
There are lots of ways to improve your speed and accuracy when writing code. Some people only choose statically typed languages like Typescript and Go to catch errors at compile time. Others prefer test driven development and IDEs that assist in surfacing errors early.
Using helpers can make writing code look easy and removes a lot of mundane tasks computers are well suited for. No matter how you get to correct functioning code there’s still a lot to consider for availability and performance.
Software architecture
Running a local app is very different than running a website at scale. Running a web app requires architecture considerations that can optimize for lots of different things (e.g. latency, throughput).
If you run your app with the wrong architecture you can easily take good code and make it completely unusable. Locally optimizing can solve parts of a problem, but unless you understand the whole system you cannot guarantee your changes will have any impact.
Microservices is an attempt to decouple components and allow optimization in many different areas. This can but useful but makes it much harder to optimize the end-to-end system.
People who are experienced with different architectures make running reliable systems look easy. They often have a indescribable sense for what architecture should be used. Years of battle testing and outages gives them the ability to make it look easy.
Sometimes a print is the easiest way to figure out why something isn’t working. Other times—with UI elements—a big red outline is the easiest thing you can do.
“Platforms” are what infrastructure engineers are building and developers want to use. In reality what most applications and developers need is templates and defaults.
Templates can be generated from the client or on the server and Efe has some great insights about building a client side “platform” with AWS Copilot.
If you want to optimize your architecture you first need to know what types of architectures exist and what benefits they have. Talescale has a great blog describing different options and why they picked some of the architecture they did.
Modules, monoliths, and microservices · Tailscale
Did you enjoy this issue?
Justin Garrison

1 gif, 2 comments, and 3 links to make you a better developer and person

In order to unsubscribe, click here.
If you were forwarded this newsletter and you like it, you can subscribe here.
Powered by Revue
Los Angeles, CA