Practices Icon

Practices

Development and business practices, methodologies, workflows, etc.
198 Stories
All Topics

Kubernetes learnk8s.io

Kubernetes production best practices checklist

How do you know if your Kubernetes cluster is production-ready? If you’re a beginner, it’s hard to tell what you’re missing. The subject is soo vast and it’s easy to lose sight on what’s the right path to production. And even if you’re an expert, remembering all networking, storage, cluster, and application development best practices is impossible. There are so many. Here is a curated a list of best practices for Kubernetes that helps you drive your roadmap to production. Check things off the list and keep track as you go. ✅

read more

Node.js github.com

The largest Node.js best practices list

With 35k+ stars, I might be the last one to the party on this awesome repo. It is the largest compilation, and it is growing every week - currently, more than 80 best practices, style guides, and architectural tips are presented. New issues and pull requests are created every day to keep this live book updated. We’d love to see you contributing here, whether that is fixing code mistakes, helping with translations, or suggesting brilliant new ideas.

read more

Browser London Icon Browser London

The power of the MoSCoW method

I’ve never heard of this method before, but it’s definitely interesting enough to link up for you: At its core, the MoSCoW method is simply a prioritization framework that can be applied to any kind of situation or project, but it works best when a large number of tasks need to be ruthlessly whittled down into a prioritised and achievable to-do list. The general idea is you take a list of tasks/stories/whatevs and place each into one of for buckets: Must, Should, Could, and Won’t. (Somehow this gets shortened to MoSCoW for the namesake.) If you listened to our recent episode on Agile, you know I’m not a fan of ceremony when it comes to planning practices, but I do think there is some value here if you do it right. Click through for the skinny on how to run a MoSCoW exercise as well as some pitfalls to avoid.

read more

Thoughtbot Icon Thoughtbot

Let's not misuse 'refactoring'

German Velasco: I find that many people confuse refactoring with any change in code. Sometimes they even use the word to mean huge changes that break the application — “we need a month to refactor this monolith.” I think that in those cases, we are misusing the word refactoring, robbing it of its proper meaning, and ultimately, robbing ourselves of the power to communicate an important concept. Let’s revisit what refactoring is and what it is not. Some folks might consider this post semantic pedantry, but I think there’s value in knowing the difference between refactoring and merely changing stuff. Don’t get me wrong, I misuse the term on the regular, but when I’m being more diligent with my word choice I will reach for rejiggering instead.

read more

JSON engineering.instawork.com

When XML beats JSON

When demoing Hyperview to new engineers, there’s one comment that frequently comes up about the HXML data format: “XML, really? It’s bloated and outdated. Why not use JSON? It’s the future.” These comments imply that JSON is the “one true file format” that should be used for everything, but we don’t believe there’s such a thing. Each format makes tradeoffs in encoding, flexibility, and expressiveness to best suit a specific use case. The author makes a pretty solid argument that JSON is better for lists, while XML is better for trees.

read more

The Changelog The Changelog #367

Back to Agile's basics

Robert C. Martin, aka Uncle Bob, joined the show to talk about the practices of Agile. Bob has written a series of books in order to pass down the wisdom he’s gained over his 50 year software career — books like Clean Architecture, Clean Code, The Clean Coder, The Software Craftsman, and finally Clean Agile — which is the focus of today’s discussion. We cover the origins of his “Uncle Bob” nickname, the Agile Manifesto, why Agile is best suited for developing software, how it applies today, communication patterns for teams, co-location vs distributed, and more importantly Bob shares his “why” for writing this book.

read more

Twitter Icon Twitter

I bet you could've guessed Equifax's username and password...

Jane Lytvynenko went digging through the Equifax class-action suit and uncovered some absolute gems: Furthermore, Equifax employed the username “admin” and the password “admin” to protect a portal used to manage credit disputes, a password that “is a surefire way to get hacked.” This portal contained a vast trove of personal information. Hanlon’s razor often applies in security breaches like these, but I can’t see this as anything but pure negligence by Equifax’s technical teams. There’s more: Equifax also failed to encrypt sensitive data in its custody… admitted that sensitive personal information relating to hundreds of millions of Americans was not encrypted… Not only was this information unencrypted, but it was also accessible through a public-facing, widely used website. Filed under you-gotta-be-freakin-kiddin-me

read more

Jon Thornton engineering.squarespace.com

3 kinds of good tech debt

Jon Thornton writes on the Squarespace Engineering blog: “Tech debt” is a dirty word in the software engineering world. It’s often said with an air of regret; a past mistake that will eventually need to be atoned for with refactoring. Financial debt isn’t universally reviled in the same way. Your friend takes out a mortgage to buy a house and what do you say? Congratulations! … The difference is intention. What if tech debt wasn’t always an accident, caused by incorrect assumptions and unexpected circumstances? How would you spend a tech debt mortgage? We also talked about tech debt in a similar manner on Founders Talk #60.

read more

Jon Calhoun calhoun.io

Why can't we settle on a single application structure in Go?

Go Time panelist Jon Calhoun ruminates on a conversation started on episode 94 of the show: The goal of this article is it explore why exactly there isn’t a single app structure that is recommended to new Gophers, and the overall goal of this series is help newcomers to Go understand what choices are available to them so they can get started a little easier.

read more

Nikita Sobolev sobolevn.me

The complexity waterfall

When talking about “bad code” people almost certainly mean “complex code” among other popular problems. The thing about complexity is that it comes out of nowhere. One day you start your fairly simple project, the other day you find it in ruins. And no one knows how and when did it happen. This is a deep-dive into where complexity comes from and finishes with some great advice on fighting it off.

read more

Yegor Bugayenko yegor256.com

Daily stand-up injection of guilt

Yegor Bugayenko: Only weak managers need daily stand-up meetings to coordinate the team, while strong ones use more formal instruments to organize the flow of information. However, as someone noted, morning meetings are not supposed to be used by managers to coordinate anyone, but “to discuss progress, impediments and to plan.” I’m not buying it. We had a lively discussion on this very topic on yesterday’s recording of The Changelog. Stay tuned for that episode coming next week. 📻

read more

Polina Gurtovaya Evil Martians

Images done right: Web graphics, good to the last byte

Polina Gurtovaya: Start taking graphics on the web seriously and boost your applications’ performance by learning the essentials about image formats, both modern and old-school. Dig into SVGs and adopt the latest and greatest tools to optimize your graphical content: both vector and raster. Study the theory behind digital images and how humans perceive them—to improve the experience for your users.

read more

Kubernetes learnk8s.io

How do you rollback deployments in Kubernetes?

You should have a plan to roll back releases that aren’t fit for production. In Kubernetes, rolling updates are the default strategy to release software. In a nutshell, you deploy a newer version of your app and Kubernetes makes sure that the rollout happens without disrupting the live traffic. However, even if you use techniques such as Rolling updates, there’s still risk that your application doesn’t work the way you expect it at the end of the deployment. Kubernetes has a built-in mechanism for rollbacks. Learn how it works in this article.

read more

Keavy McMin keavy.com

Thriving on the technical leadership path

Keavy McMinn: The management path isn’t the only way to be a technical leader. I don’t wish to become a manager; I tried it briefly (73 days to be exact, I counted) and decided managing other people wasn’t where my passion lies. I like being an engineer. In particular, I flourish in a strategic technical leadership role. This used to be hard to accomplish. It still is, but it used to be, too. 😏 Hopefully we see more engineers like Keavy thriving without having to make the switch to management. Writing about it, talking about it, and showing success stories is a good start towards that end.

read more

Philip Walton philipwalton.com

Cascading cache invalidation

Turns out one of our asset caching best practices (content hashes in filenames + far-future expiry) has a serious flaws in it: In practice, changes to one of your source files almost always invalidates more than one of your output files—and this happens because you’ve added revision hashes to your filenames. Philip goes on to explain why this happens and then proposes 3 possible solutions. Good stuff 👌

read more

Yaron Wittenstein gryphon.dev

Save yourself the pain by relearning to type

Did you know QWERTY was created in 1878?! I didn’t until I read this interesting piece by Yaron Wittenstein about how he found a new keyboard layout called Colemak that is much less RSI-inducing than QWERTY. QWERTY typing never felt elegant for me. If always felt like something just isn’t right. Typing is supposed to be fun, and with Colemak it’s much more fun. The motivation wasn’t to type faster than QWERTY but to make typing more fun and less effortless.

read more

Eric Holscher ericholscher.com

Using a Welcome Wagon to help first-time conference attendees

Eric told us a little bit about this idea on this year’s OSCON episode, and I’m so glad he took the time to write it up. Conference organizers: steal this idea! At Write the Docs, we’re working to make the community easier to join because we want everyone to feel welcome. We do this with the Welcome Wagon program, which helps attendees at both the planning and the attending stages of the conference. We hope that this breaks down barriers to help them get the most value from our community.

read more

Opensource.com Icon Opensource.com

7 Bash history shortcuts you will actually use

When people see me use these shortcuts, they often ask me, “What did you do there!?” There’s minimal effort or intelligence required, but to really learn them, I recommend using one each day for a week, then moving to the next one. It’s worth taking your time to get them under your fingers, as the time you save will be significant in the long run. Good advice on how to adopt these. Habit formation requires persistence.

read more

Rich Archbold Medium

My engineering standards

In this post, Rich Archbold touches on something we discussed on a recent episode of The Changelog. Specifically, in the episode, we talked about contentment being the enemy of progress and how that might effect our industry psychologically — at-large. But when is what we’re working on ever good enough? Rich has this to say… Software can never be perfect, it can only ever be “good enough”…beyond a certain size and rate of change — it’s always going to contain bugs and experience outages. So how do you know if your software is good enough? … My opinion and approach is to codify your beliefs around what constitutes software that is “good enough” into a small set of engineering principles and build a culture, organization, and set of processes that reinforce them.

read more

Victor Zhou victorzhou.com

How I fell into the trap of premature optimization

Donald Knuth famously said: The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature optimization is the root of all evil (or at least most of it) in programming. You’ve either a) learned this lesson the hard way, b) learned it the easy way (by listening to others’ tales of woe), or you c) should learn it now alongside Victor Zhou as he recounts how he ignored Knuth and wasted a lot of time because of it.

read more

The Changelog The Changelog #361

Generative engineering cultures

Dave Kaplan (Head of Software Engineering at Policygenius) joined the show to talk about Generative Engineering Cultures and how they have become the goal of industry-aware tech teams. We talk through the topology of organizational cultures ranging from pathological, to bureaucratic, to generative, the importance of management buy-in (from the top down) on leading a generative culture, the ability to contribute original value which is deeply rooted in the concept of aligned autonomy. We also covered the 6 core skills required for us to be empowered in our teams.

read more

0:00 / 0:00