RSSAmplifier

Blog

rrrene

rrrene.orgRSS feed ↗91 posts

Latest posts

Credo turns 10

TL;DR Credo is a static code analysis tool for the Elixir language with a focus on code consistency and teaching. Credo’s first version was published on November 16th 2015, ten years ago, today. Oh, wow. From the announcement post : Credo analyses your code and makes suggestions how to improve it. It also explains the issues it finds in plain English, showing examples of good and bad coding…

ElixirStatus turns 10

Exactly ten years ago ElixirStatus went live. This also means that we will be celebrating 10 years of ElixirWeekly next year. Oh wow. It is amazing that all of this is still around.

Inch turns 10

TL;DR Inch turns 10 today. For those who don’t know, Inch is a documentation analysis tool for the Ruby language (with inch_ex being the Elixir variant). Inch’s first version was published on January 28th 2014, ten years ago, today. Wow. From the announcement post : Inch analyses your code and inline-docs. In a way, it is a documenation measurement tool, although it does not measure coverage.…

Guest on Elixir Mix

I’ve been a guest on the Elixir Mix podcast!

Guest on Elixir Wizards

I’ve been a guest on the “ Elixir Wizards ” podcast:

Learnings as a Technology Leader

I would like to share some key principles that help me navigate my responsibilities, deliver impactful outcomes, and lead teams to success. Don’t fear making decisions As a Technology Leader, decision-making becomes a critical aspect of your role. Embrace this responsibility with confidence and understand that making informed decisions, even in the face of uncertainty, is crucial for driving…

What "digital leadership"​ has to do with pencils

In a famous essay 60 years ago, Leonard Read wrote that no one knows how to make a pencil anymore. “That’s impossible!” What he was trying to say was that no single human being was capable of making the product “pencil” out of cedar wood, lacquer, graphite, rubber, wax, glue and ferrule on his own anymore - no single human being had the skills or the overview to manufacture this product without…

Why team culture is the only thing that matters

We read a lot of guides on how to create and maintain great company culture. We read “Culture Eats Strategy for Breakfast” or “Leaders Eat Last”. Only many publications on the subject address companies and entrepreneurs, company owners or branch managers. But what can the committed person in middle management do with their small team? The best advice came from my boss, who gave me advice early on:…

Speechless

War in Europe, in my lifetime. I have no words.

How to lead teams with empathy and trust

“Come on, let’s not make life difficult for each other, we’re all getting old here together.” These were the words that had been ringing in my ears for years. My boss had said them and I, as a young, up-and-coming manager, just thought “oh boy, he has a midlife crisis”. Five years later, I realize that my boss had been right: In a team that sticks together and takes care of each other, you “grow…

Heading Product

It’s been 2.5 years since I assumed the role of “Head of Product Development” at 5Minds . This month, I will be transitioning into a slightly new role, again: After leading our brand new product development team for the past two and a half years, I will now officially become Head of Product at 5Minds, helping our product and marketing teams in any way I can to achieve our roadmap for ProcessCube…

Guest on programmier.bar

I’ve been a guest on the “ programmier.bar ” podcast:

Guest on Adopting Elixir Finale

I’ve been a guest on the “ Elixir Wizards ” podcast:

Credo turns 5

TL;DR Credo is a static code analysis tool for the Elixir language with a focus on code consistency and teaching. It just got a logo for the first time, celebrating its fifth birthday. I remember registering the name credo with Hex a week before the initial release went live. Although I had decided on the name months prior, I did not want to “reserve” the name before bringing the project to…

Guest on Elixir Wizards

I’ve been a guest on the “ Elixir Wizards ” podcast:

Thoughts On Open Source

Please do not read the following as a rant against individuals or certain contribution ethics. Instead, take it as a passionate plea for keeping an eye on the things that make contributing to open source special. I have had the privilege to contribute to Open Source projects for the last 10 years and I think Open Source is beautiful when we give it a chance to be. While I had shared code before,…

Code BEAM Lite Amsterdam 2019

Last week I went to Amsterdam to attend Code BEAM Lite, the conference series dedicated to both Elixir and Erlang. After talking about wanting to go to Amsterdam to give an Elixir talk for years, this was it! . @rrrene getting philosophical #cblamsterdam pic.twitter.com/pNJyGoYdNP — Arjan Scherpenisse (@acscherp) November 28, 2019 I was invited to talk about Credo’s new plugin system. Credo…

Code BEAM Lite Berlin 2019

Last friday I travelled to Berlin to attend Code BEAM Lite, the conference series dedicated to both Elixir and Erlang. It was my seconding time speaking at CBL Berlin. "How many of you heard of Credo?" amazing talk from @rrrene about digital mentors - analysis tools. #CBLberlin pic.twitter.com/vARTfmbhcN — Code BEAM (@CodeBEAMio) October 11, 2019 I was invited to talk about the origins of…

Guest on the Smartlogic Podcast

I’ve been a guest on the “ Smart Software with SmartLogic ” podcast:

ElixirStatus turns 4 years old

Four years ago, at the end of July 2015 , ElixirStatus went live. A year later, in early July 2016 , ElixirWeekly published its first issue . Elixir 1.3 was all the rage back then (it introduced colored diffing to ExUnit, a feature I can’t seem to remember life before). This week, Issue #156 went out. Elixir 1.9 is out, with first-class support for releasing applications through mix release . Both…

Credo v1.1.0 released

TL;DR Credo is a static code analysis tool for the Elixir language with a focus on code consistency and teaching. It just got support for plugins, so that it can go beyond static in its analysis! Get it via Hex and on GitHub . Why plugins? Credo’s focus has always been the static analysis of Elixir source code. That is its domain and purpose. The decision to focus on static analysis alone, of…

A Coder Running Product Development

Recent years have been almost overwhelming: I joined 5Minds IT-Solutions, finished my PhD, achieved my personal goal of being invited to speak in the United States for the first time, all while wearing many hats in the day-to-day, from software architect to team lead to consultant to project lead. Being part of a growing company comes with a unique set of challenges and this has been the ride of a…

Linters: Why your team should tread lightly

The usage of linters, tools to analyse your code and tell you where it can be improved upon, is becoming more widespread in recent years. Many programmers nowadays start their careers in places where a CI system runs ESLint , Rubocop or Credo against all their checkins. Overall, this is a good thing, because it enables discussing code quality issues within teams more openly and in a transparent…

Credo v1.0.0 released (on its birthday)

TL;DR Credo is a static code analysis tool for the Elixir language with a focus on code consistency and teaching. Today it celebrates its 3rd birthday and goes 1.0! Get it via Hex and on GitHub . Happy Birthday 🎉 When Credo originally started, I could never have imagined where it would end up. I was the main contributor to Dogma , the then de-facto standard in linting Elixir source files, when I…

Code BEAM Lite Berlin 2018

Last friday I travelled to Berlin to attend my first Code BEAM Lite, the conference series dedicated to both Elixir and Erlang. @rrrene on Inch: How Elixir 1.7 changed the rules for documentation analysis @CodeBEAMio #CBLBerlin pic.twitter.com/2HhGJrqLwB — Leandro Bighetti (@LeandroBighetti) October 12, 2018 I got the opportunity to talk about Inch , a documentation analysis tool, which I…

ElixirConf: Architecting Flow in Elixir

Last week, I was fortunate enough to give my first talk at ElixirConf US . After speaking at ElixirConf EU , I have submitted a proposal to ElixirConf US for the last couple of years. After three rejections, I finally got accepted as a speaker . The talk has been published on YouTube : This was the first time that I spoke on a general programming topic at a conference (instead of talking about one…

ElixirStatus turns 3 year old, ElixirWeekly just turned 2

Three years ago, at the end of July 2015 , ElixirStatus went live. A year later, in early July 2016 , ElixirWeekly published its first issue . Elixir 1.3 was all the rage back then (it introduced colored diffing to ExUnit, a feature I can’t seem to remember life before). Another two years later, Issue #105 went out. The first RC for Elixir 1.7 was just released (introducing EEP48-style…

Designing Token APIs for Architecting Flow in Elixir

- Why would we need APIs for this? Can't we just modify the damn thing? - What are guiding principles for these APIs? - Example: Buying something in an online store - How do these APIs evolve? --> In previous articles, we discussed the Token approach and examined when to use a Plug-like Token and when to look at other options . A Token is basically a struct which contains all information relevant…

The Token Approach for Architecting Flow in Elixir

In the last two posts we looked at the Token approach and how we can leverage metaprogramming to build pipelines and custom DSLs processing this Token . The Token is just a struct holding relevant data for the execution of your program: # This struct is handed down during the execution of your program, just like a # `Plug.Conn` is during the processing of a request in Plug. defmodule MyApp . Token…

Using Metaprogramming for Architecting Flow in Elixir

--> TL;DR You can adapt the ideas presented in the last article to any kind of application. Macros can be used to build a Plug-like DSL for your specific use-case. But be careful: Use metaprogramming wisely and only where it’s a good fit. Do not try to build the “Plug for everything”. In the last article we explored a third concept next to |> or with to model how data flows through our program :…

Credo: Looking at 1.0 and beyond

As José Valim eloquently put it: Credo is not going to be able to run away from 1.0 for much longer :) And he’s probably right 😅 Credo is nearly 2.5 years old and is probably the piece of work I am most proud of as an open source developer. Seeing it being adopted by so many people and eventually getting to the magical v1.0 in the coming months is pretty amazing. So, without further ado … What’s…

Advanced Techniques for Architecting Flow in Elixir

In the last post we explored how we can use either |> or with to model how data flows through our program . There is, however, a third concept to model flow in your applications: to hand down a “token” during the execution of your program. This token contains all the information necessary for your program to fulfil its use-case. In Elixir, this token is usually a struct . Let’s look at two…

Should I Use `with` or `|>` for Architecting Flow in Elixir Programs?

In the last post we explored how data flows through our program and why it is important to recognize that the business of software is all about new and changing requirements. We implemented a simple Mix task to convert images to a given format. We can, as indicated in the last post, achieve the same thing using the with macro, which gives us a great way to model flow in Elixir programs. Let’s try…

Architecting Flow in Elixir Programs: An Introduction

Getting the “flow” of a program is one of the first things I do when looking at open source software or joining a new project at work. The easier it is to grasp how data flows through a program , the easier it is for me as a developer to estimate the impact of changes (and the business of software is all about changes; while “writing hot new cool stuff” is most certainly fun, most professional…

Looking back at 2017

I think it’s save to say that 2017 has been the most eventful year of my adult life. Leaving Neopoly after 16 years of being with the company was one of the biggest decisions I ever made. It’s always hard to move on, but this has been a very special goodbye. On January 2nd, I started working at 5Minds . In February, I finally handed in my dissertation . After 2 years of preparation and 4 years of…

ElixirStatus is 2 years old!

ElixirStatus is two years old now. 🎁 🎉 This was my first “complete” Phoenix project, and while it is a trivial app, I am still amazed how it keeps running, humming away like an old diesel engine , doing its job for those who find it useful. When ElixirWeekly celebrated its first birthday a couple of weeks ago, I wrote: The Elixir community is growing and, while some would like to see an…

Credo: How Config Comments work

As of v1.4 of Elixir the compiler will warn you when you declare an unused module attribute. Unfortunately, this is also the case for @lint attributes. # BEFORE: using @lint attribute to disable Credo # for an entire function @lint false defp do_stuff () do # ... end With the release of Credo v0.8 , there is a new comment-based syntax. This will get rid of the compiler warnings. Also, you will be…

ElixirConf EU 2017 - Growing Up

Last week my brother-in-arms Christoph and I had the opportunity to attend ElixirConf EU for the second time. It’s been a great experience, rekindling old Elixir friendships and forming new ones. It is always great to meet people you only know from the interwebs - like @devoncestes and @bgmarx - in person. But we also met some colleagues from home: Representing the Ruhr Valley at #ElixirConfEU /cc…

Joining 5Minds

After last week’s departure from Neopoly it’s time to look to the future! Starting next month, I will transition into my new role at 5Minds . There is so much that excites me about this new endeavour: They’re loving Elixir , which is always a good thing, but the main pull for me was probably just how much energy and development this young company exhibits. I have a hard time finding words to…

Leaving Neopoly

Friday has been my last day at Neopoly after being with the company for 16 years. I am 33 years old now, which means that I have been with them for literally half my life - I did not know my first girlfriend when I started this job, nor did I have a driver’s license or a high school diploma. During my time there I learned so much professionally, but also went through my formative years as a young…

Does your company use Credo?

Credo is a static code analysis tool for the Elixir language: Next week, I will be giving a Elixir talk in Hamburg which includes a “behind the scenes” look at Credo and its unexpected success. I am looking for companies using Elixir and Credo for their projects (it’s for a “bragging slide” at the beginning of my presentation). If you want to see your company name/logo on that slide, tweet me or…

ElixirStatus: Updates all around

I rolled out an important update to ElixirStatus last week. Under the hood there’s a long overdue update so that we can run this with Elixir 1.3 and Phoenix 1.2. Next to the technical updates, this also brings a careful update to the visuals of the site. The sidebar got a little darker and the overall visual appearance was tweaked to be closer to ElixirWeekly , our community’s newsletter. Here’s a…

How to write a good announcement

I have been running ElixirStatus for a year now and with ElixirWeekly taking off these last few weeks, I thought I would take the opportunity to write about making good announcements. Get noticed with the right announcement So you wrote your first Hex package or implemented Solitair in Elm with Phoenix. Now what? We have to write an announcement that tells the world about it (and which we can post…

Why announcements are important

TL;DR Announcements deserve their fair share of space and attention. ElixirWeekly is a thing now. For some of us, myself often in included, marketing our open source stuff to the masses is a dreadful endeavor especially if there are no distinct venues to do so. If I go to Twitter and tweet something akin to “InchEx v0.7.0 released” on the same day when Rails 6.0 is released, then I am simply out…

ElixirStatus celebrates first birthday, introduces ElixirWeekly

TL;DR ElixirStatus is one year old now and recently launched a weekly email newsletter about Elixir & Phoenix. It’s called ElixirWeekly . After I created Credo in late 2015 I was occupied with other things, but ElixirStatus - then six months old - kept running, humming away like an old diesel engine . I also had my mind elsewhere for most of this year, but don’t think for a second that this…

ElixirStatus & ElixirWeekly: A community success story

ElixirStatus is old by Elixir standards (started pre-1.0 both in terms of Elixir and Phoenix) and will be celebrating its first birthday soon. Over the last year, the service has become a stable source of community announcements around projects, blog posts and version updates. The big difference to more forum-like formats is that ElixirStatus caters to the people creating stuff as well as…

Guest on the Elixir Fountain

I’ve been a guest on the Elixir Fountain Podcast !

ElixirConf.EU: The roof is on fire!

I had the pleasure to give a talk about Credo at this year’s ElixirConf.EU in Berlin. It was an amazing experience, with the first day culminating in a memorable rooftop party with old and new #elixirfriends . A bunch of elixir dudes @ElixirConfEU after hours at @Klunkerkranich_ Berlin. #elixirconfeu #elixirlang pic.twitter.com/bfQH9LNauo — Sirius Photo (@sirphoto) May 13, 2016 Thank you all…

Credo: Introducing Lint attributes

I just released v0.3.3 of Credo , a static analysis tool for the Elixir language. With the v0.3.0 release we finally introduced support for per-function exclusion of checks. This has been a community requested feature since the very beginning and I am happy to announce: it’s finally here . I was opposed to “magic comments” like # credo: <check-name>:off , since they would clutter your code, be…

Elixir Carnival

Right now there is a yearly celebration taking place where I live called “ Fasching ” or simply “Carnival”. People dress up as all kinds of persons, like pirates , tussis , sailors or ladybug couple with an age difference . I know, Germans, right? ;-) In a way this coming week is also going to be my personal “Elixir Carnival” as I plan to dress up to look like a serious member of the Open Source…