After the covid break and a bunch of online conferences, we finally had a chance to attend one physically. "I love dev" took place in Złote Tarasy (Warsaw, Poland) on the 17th of May and was certainly the biggest software development-related event in 2022 so far. Let us share what it was about.
The conference started with a talk by Sylwana Kaźmierska, who was presenting neural networks. She shared the learnings from her experience - how to build one, what factors to take into consideration, and when to choose simpler solutions. Sylwana explained why decisions made by AI are sometimes unexpected and what can be done to explain or improve the process of decision-making. Her presentation was mind-opening and a little terrifying.
The next speaker, Tomasz Ducin, made a great presentation about the pros and cons of the newest trend in web development - micro frontends. He compared them to microservices, which were also on hype at some point. The main goal of the presentation was to make developers aware of all benefits and risks when choosing new architecture. So, if you have a small startup with 3 frontend devs, and you want to use micro frontends only because they sound fancy and trendy - please don't.
After a short coffee break, the scene was taken over by Andrzej Krzywda. The CEO of Arkency talked about different phases of creating a product and how they influence development practices. He has also associated each phase with a different type of developer (startup / architect / maintainer), which was actually quite surprising, but also accurate . Usually, mature apps need more custom solutions and independence from the framework. Andrzej underlined the importance of knowing its limits and showed some techniques on how to overcome them.
The next talk, made by Sławomir Sobótka, was a history of Stefan, who works in the warehouse. Stefan’s main responsibility is finding packages, but he is also expected to assemble furniture, send letters, take care of clients’ returns, and so on. When Stefan is on sick leave, the company stops working. This analogy to software development shows how badly defined contexts can harm the application. Sławomir presented the idea of bounded contexts (known from Domain Driven Design) and ubiquitous language. Dividing the system into modular components that can communicate with each other is a design we should aim at.
Jakub Mrugalski had a little different talk. He was focused on a more practical problem - security of web apps. Everyone (I hope) already knows about XSS or SQL-injection attacks, so Jakub talked about less popular security problems. The first issue he mentioned was SPF, DMARC, and DKIM email configuration, which is often left with default values. Jakub demonstrated how it allows making email forgery attacks. Other takeaways from his talk are:
- don't use original uploaded image names - always assign random names to avoid many problems
- use Cloudflare to protect from DoS/DDoS attacks, but do it right - remove other entry points to your server
- when you add an HTTPS certificate to your page, it is indexed in a certificate database! It means that all sites using HTTPS are public nowadays. Remember about it when setting your admin password for staging env :)
- have a separate domain/subdomain for your ticketing system.
In the last talk, Jakub Pilimon came back to software engineering topics. He presented how to apply clean architecture for a simple application. He showed the process of building an aggregate component - reusable and open for modification. And all this in the case of a well-known game for Prisoner Dilemma. Jakub even made some live programming (what a brave man!) in Java and run his program to find the most optimal tactics.
The conference ended with an open panel with all speakers. They talked about the future of the software development branch and how developers should extend their skills (be experts!). They also answered questions from the public. The most interesting was the question of how to stay fascinated with daily software development work. Answers varied a lot: original, undiscovered topics to work on; being independent; being able to find something valuable even in the most boring tasks or finally finding your motivation somewhere else (your life isn't only programming, do something good outside!).
How you can say if this was a good conference? Besides the best lecturers and exciting talks, there was an after-party! It was very interesting to meet at least a few people from Rails community from around the country. We had a chance to talk to Kuba Pilimon about making DDD topics more familiar and discuss with Andrzej Krzywda different approaches for introducing event sourcing in Rails applications.
“I love dev” was a professionally prepared event, which broaden our horizons and increased motivation for growth.