Gnarly Learnings from May
Published: 2021-06-01 15:41:29

We love reading, watching, and listening to constantly update our skills and learn new perspectives. Here are some of the exciting pieces we learned from this month.

## [Demystifying the software engineering test pyramid](https://leaddev.com/agile-other-ways-working/demystifying-software-engineering-test-pyramid)

This is a great refresher on the "classic" testing pyramid, but also taught me about many other models. Have you heard of the testing trophy? Or the delicious sounding ice cream and cupcake anti-patterns? This article introduced me to those concepts.

## [Common issues with CSV parsing and solutions to them](https://longliveruby.com/articles/ruby-csv-common-issues)

The section on [converters](https://ruby-doc.org/stdlib-2.6.4/libdoc/csv/rdoc/CSV.html#class-CSV-label-Typed+data+reading) draws attention to an incredibly-useful and previously unknown to me feature of Ruby's CSV standard library.

## [A Guide to Mindful Communication in Code Reviews](https://kickstarter.engineering/a-guide-to-mindful-communication-in-code-reviews-48aab5282e5e)

There are tips galore for both authors and reviewers of code to be found in this article.

## [Building Bridges as a Technical Leader](https://keavy.com/work/building-bridges/)

Navigating the waters of an organization can be difficult - there's rarely a map. While I don't have a compelling conclusion to this metaphor that says, "something something - build a bridge instead", I do highly recommend reading this post, and the many links it provides, to gain valuable insights on working with others in any company.

## [How I resolve conflicts in yarn.lock](https://medium.com/@drdmason/how-i-resolve-conflicts-in-yarn-lock-7083331b5969)

Resolving merge conflicts can be tricky, especially when they occur in the lock file where _intent_ is not always clear and the file could be thousands of lines long. This article provides a few simple steps to sanely and quickly resolve lock file conflicts.

## [Custom ordered list number styling](https://css-tricks.com/custom-list-number-styling/)

I grimaced when I saw that the designs had a custom style for an ordered list. I brainstormed ways I could do this in a clean and extensible way. Turns out it's much easier than I thought ;).

## [You're not in the zone](https://engineering.ezcater.com/youre-not-in-the-zone)

Because ActiveRecord doesn't support PostgreSQL's `time` column type out of the box, handling time-of-day logic in Rails isn't as straightforward as I would have expected. This article however provides some interesting - and fortunately very eloquent - solutions using a particlar gem.

## [Move lines around in vim without copy and paste](https://www.reddit.com/r/vim/comments/na7qmm/help_how_to_move_lines_like_in_vscode/gxseh00/)

Honestly, this doesn't come up that often. But I found it to be a neat little trick that can help you keep track of how things move around when you're trying to remember how things work (and don't need to be distracted by the specifics of managing code in your editor). Plus there's a good quick explanation of `map` and `noremap` in the comments!

## [Strong parameter assignment via Pundit](https://github.com/varvet/pundit#strong-parameters)

Earlier this month, I was tasked with prohibiting certain types of users from making changes to a subset of attributes on a model. The Pundit gem that we are using for authorization makes this much easier than I have anticipated by allowing a `permitted_attributes` method to be defined on the policy that returns the list of allowable attributes. The attributes can then be retrieved from the policy from within a controller.

## Contributors

- [Dan Frenette](https://github.com/danfrenette)
- [Ethan Fertsch](https://github.com/efertsch)
- [Jon Yurek](https://github.com/jyurek)
- [Kevin Murphy](https://github.com/kevin-j-m)
- [Mike Stone](https://github.com/mikestone14)
- [Will Mahoney](https://github.com/WMahoney09)

> This post originally published on [The Gnar Company blog](https://blog.thegnar.co/gnarly-learnings-may-2021).

_Learn more about how The Gnar [builds software](https://www.thegnar.com/software-development)._