Tag Archive

project

Use dbg to check your Elixir code

  • 1 min read

Debugging Elixir code has become even more accessible thanks to the dbg function. Thanks to the latest version, your work may become more pleasant and the search for errors even easier. Check how to apply new possibilities in your code. A simple one-line can facilitate your error analysis.

Solving problems is not easy

  • 4 min read

The initial solution we wanted to apply may turn out to be insufficient. Try to provide as much helpful information as possible. Make sure you understand all the requirements well. Don’t be afraid that something will go wrong. Failure isn’t fatal, but failure to change might be.

Health status without log request

  • 1 min read

Sometimes our application collects more logs than we would expect. Especially in the case of endpoints responsible for the server status. Thanks to a simple plug, you can inform about the system state all the time without logging this request.

The Twelve-Factor App methodology

  • 6 min read

The Twelve-Factor App methodology is a methodology for building software-as-a-service applications. It allows you to eliminate the most common problems with our applications. Some of them have already become the industry standard, so you should get to know them all. The methodology constitutes design guidelines strongly focused on cloud-native, portable, and resilient applications.

Guards - simple restriction checking

  • 1 min read

Guards are a great way to check data limits. They are safe and can make the everyday work with the project more pleasant and, at the same time, limit the duplicated code. And it’s all in pattern matching!

Find leaked credentials with TruffleHog

  • 1 min read

One of the possible vectors of an attack on the system is the disclosure of the used keys, certificates, or other access data. I found TruffleHog as a tool to verify your project. The tool can scan projects on GitHub or GitLab, including entire organizations! You can attach them to your CI/CD pipeline to verify that no confidential information has been published.

Using JSON Web Tokens and their security

  • 3 min read

JSON Web Tokens known as JWT, are a great way to ensure security in communication between system parts. Remember not to trust the user and verify the data before use. JWT contains a lot of information about the user and his permissions. It is also a well-thought-out structure. It indicates in an accessible way for whom and by whom the token was prepared. Also, check out the topic of key rotation and its benefits.

Delegate tasks, and don’t be afraid to say no!

  • 2 min read

Feeling overwhelmed by work is quite a common feeling. Especially if we work on the project for a long time. Good planning can make your work more pleasant and simplified. You don’t have to complete all tasks (alone). Some tasks can even be removed. With the Eisenhower matrix you can manage your priorities.

Good error message

  • 3 min read

Error handling is an integral part of any project. However, only a few can do it well. What makes an error message good? Take care of the language of the message, its length and indicate how to mitigate errors. Have automatic bug reporting tools to quickly respond to system problems.

Zero downtime deployments

  • 3 min read

Not so long ago, to release the application, it was necessary to modify the binary files on the servers. Thanks to good DevOps practices, the entire process can be changed. It is possible to achieve tens or hundreds of releases each day. Everything without the downtime of the application.

A ways to be a more effective engineer

  • 6 min read

Start from understanding the needs and point of view of the organization. Take care of good communication with customers. Don’t be afraid to develop both technical and soft skills. You will have a lot of battles at work. Choose wisely what you can engage in, given your limited time capacity. Act locally, think globally to change the project in small steps. Use non-hanging fruit to be successful and avoid burnout.

Skills development as the best investment in life

  • 5 min read

In my opinion, the best investment is our development. It allows us to achieve better results, receives promotions, and increase our remuneration. By investing in ourselves, we invest in our future. You didn’t know everything (and you still don’t know everything). It is worth trying to help others and learning at the same time.

Using View as a way to simplify your system

  • 2 min read

Many applications introduce some kind of status to make it easier to share data. However, more and more modules in your codebase need to be explicit about these assumptions. Views can eliminate the problematic SQL query. It’s also great way to introduce well-defined entities.

Automatic tests won’t solve all your problems

  • 4 min read

Automated testing can unburden Quality Assurance teams from the monotonous manual review of every change. They can also be a great acceleration for programmers. But they won’t make your organization or product great overnight. It would help if you had people’s support, a clear plan, and an understanding of expectations.

Parkinson’s Law

  • 2 min read

The more time we have to do the job (especially in the office), the longer it takes. Work complicates to fill the available time. Check out Parkinson’s Law and understand why!

Phoenix 1.6 released!

  • 3 min read

We have a new version of the most popular Elixir framework - Phoenix framework. New generators, fixes and improvements are now available. Find out more about the new HEEx engine.

Recruitment and IT - when two worlds meet

  • 6 min read

A good recruitment process starts with a personalized message selected for a specific candidate. Worth mentioning which technologies are used in the project. Try to keep the first conversations short but very meaningful so that neither party feels like wasting their time.

Faster test execution in Elixir

  • 3 min read

Try to use setup_all to prepare the data once and re-use it in tests. Use tags to have a better context and be able to exclude some tests. Prepare a processing pipeline to check the quick tests first, and when they do not fail, take care of the more time-demanding tests.

Code review is not for catching bugs

  • 4 min read

Code review can be an opportunity to sharing knowledge. Finding errors is a side effect of the entire code review process. Thanks to code review, you can promote one standard style of changes to the entire team. Don’t be afraid to ask if you don’t understand something.

Response status and the security of your API

  • 1 min read

Have you thought about the response statuses of your endpoints? Some of them can be used for scanning your architecture. Some attacks on IT systems target the weakest areas, which may be addresses used for internal purposes.

Take care of your customers

  • 5 min read

Instead of focusing solely on our business, we should try to understand the client’s expectations. Your client’s success is your success. A satisfied customer is our primary source of recommendations. Treat others as you would like others to treat you.

Principles of estimating

  • 3 min read

We expect our estimates will have a positive impact on the implementation. The most significant value of the estimation is not the value itself. It is a better understanding of the project, and a consistent view of the tasks carried out.

Personal roadmap - find your way

  • 2 min read

Companies often create strategy plans called roadmaps. In the case of a personal roadmap, the plan is for a specific person - you. It can be a great way to achieve your goals and expectations.

Empirical approach to refactoring

  • 1 min read

We don’t touch the code in our projects with equal frequency. The tool for automatically discovering candidates comes in handy by identifying the most frequently modified files with high cyclomatic complexity. Then we can focus on these files and make changes to work with better codebase.

Knowledge sharing is important

  • 2 min read

Knowledge sharing can be a great way to grow faster. It’s also an excellent opportunity to build the image of the expert. There will always be someone we can help. Our knowledge can be helpful and a huge step in personal development.

Business doesn’t understand technical debt

  • 2 min read

Developers and business misunderstand the concept of technical debt. Building on weak foundations can result in losses and risks to your business. Instead of talking about debt, we should talk about missed opportunities.

Take notes during the meetings

  • 1 min read

Taking notes and summaries of meetings can provide a better engagement in discussions. Notes can also be a source of truth and a good reference while working. Do it on paper or immediately digitally, depending on your preferences.

How to overcome task delay?

  • 1 min read

You don’t want to postpone tasks? The best way is to change your approach and set the time window for the project. Instead of dividing up into tasks and thinking about everything right away, you can accomplish as much as you can.

The enemy of good work and code

  • 3 min read

We spend most of our life at work. Work should not be a place where we are forced to go. Have you considered the enemies of our work? Blame culture, ego, responsibilities - these are only some of the topics worth paying attention to.

Document your learning

  • 2 min read

Recently I came across the topic of learning and documenting progress. Sharing our development with others can be done in many ways. I want to share my opinion about the advantages I see.

Top things that annoy programmers

  • 2 min read

Daily work provides many situations to upset, surprise, and even laugh. I asked my friends who are programmers what annoyed them. Please don’t take it as a complaint, but rather as an opportunity to change.

The most important thing in the project

  • 1 min read

No project is perfect from the start. The real problems are very complicated. While something seems simple and fits perfectly, it may not be. I want to present the most critical and unchanging aspect of each project.

Get noticed at a new project

  • 4 min read

Changing your job or team often means changing the current project. It can be a difficult situation for most, especially at the beginning. The first impression can only be made once. It’s worth doing it right. See what we should do to get noticed at a new project.

Back to Top ↑

learning

TIL: Using phash2 for data partitioning

  • ~1 min read

In programming, we often need fairly distribution of data. Using phash2 we can get the same hash for the same Erlang term regardless of machine architecture and ERTS version. This fast function should always be used for hashing any data and limiting the result to a range of integers.

Use dbg to check your Elixir code

  • 1 min read

Debugging Elixir code has become even more accessible thanks to the dbg function. Thanks to the latest version, your work may become more pleasant and the search for errors even easier. Check how to apply new possibilities in your code. A simple one-line can facilitate your error analysis.

The Twelve-Factor App methodology

  • 6 min read

The Twelve-Factor App methodology is a methodology for building software-as-a-service applications. It allows you to eliminate the most common problems with our applications. Some of them have already become the industry standard, so you should get to know them all. The methodology constitutes design guidelines strongly focused on cloud-native, portable, and resilient applications.

Find leaked credentials with TruffleHog

  • 1 min read

One of the possible vectors of an attack on the system is the disclosure of the used keys, certificates, or other access data. I found TruffleHog as a tool to verify your project. The tool can scan projects on GitHub or GitLab, including entire organizations! You can attach them to your CI/CD pipeline to verify that no confidential information has been published.

Good error message

  • 3 min read

Error handling is an integral part of any project. However, only a few can do it well. What makes an error message good? Take care of the language of the message, its length and indicate how to mitigate errors. Have automatic bug reporting tools to quickly respond to system problems.