Even the concept of a code review can make developers cringe. It's difficult to have someone else scrutinize something you've worked so hard on especially if it was a difficult task or you are proud of your solution. For the reviewer it requires diligence and attention to detail. In both cases it takes time and can be a pain if the process and goals are not clearly defined.
The theme for this past year has been setting and building your story. In order to do this we need to have clearly defined goals and an action plan to reach them.
It's the end of the year, this is the last episode of 2018. As has become tradition for our last episode we'll be reviewing our predictions for this year discussing the ones we got right, the ones we got wrong, and the ones we came close.
We live in a society where people are praised for being clever. Whether it is in finding better ways to do things, or simply in being witty, being clever is lauded in our society. However, sometimes people are a little too clever and edge into behavior that borders on unethnical. Dark UI patterns are an example of this in the web space. Dark patterns are used to get users to do things that they didn't intend to do through deceptive and nefarious means.
Testing code is not easy, you have to think about all the different ways your code can go wrong and then write tests to cover them. You generally write more test code than functional code when creating unit tests.
Unhealthy management of personal boundaries not only makes life tougher, but can often invite predatory people into your world. It's not a pleasant experience, but it is something you have to do for your mental health as an adult. Your boundaries have to both be flexible enough to let you survive and rigid enough to keep you from being miserable.
Resume Driven Development is considered a bad idea, especially on the job. It can cause problems for your coworkers and the company down the line after you are gone. If you suspect someone you work with of Resume Driven Development ask them why they are choosing the particular technology to solve their problem.
When you start out as a junior developer you're typically focused on a single project learning the system and tools at your workplace. As you get further along in your career you'll begin to take on more responsibilities and begin working on multiple projects. It can be difficult to handle the expectations of multiple projects.
The assumptions we can safely make when building a distributed application are few and far between. Unlike a lot of smaller applications, distributed applications tend not to have system boundaries in the way that many other applications have.
Messed up code happens in every codebase, but for it to really be prevalent requires an ecosystem that makes it a appear to be the best choice most of the time. Small issues in a codebase continue to pile up until someone suggests a complete rewrite to fix it.