In recent years, as the Internet grows and develops, the development of high-performance distributed systems has become one of the most important tasks. Achieving efficient performance with low latency (especially in real time applications) is becoming more and more challenging.

There are also many problems related to building complex web-based systems that involve various types of dynamic data structures (such as graphs), work with unstructured or semi-structured data (JSON), provide high availability and fault tolerance (a typical example is the de facto standard REST architecture for web services). And all these new paradigms make software engineering even more interesting!
A short interview with a CF Objective Conference participant follows.

Can you specify any particular tools or practices, which you believe should become widespread in the community of software engineers?

I guess everyone nowadays knows about DevOps and CI/CD (Continuous Integration / Continuous Delivery). Both terms are usually used together, but it is worth mentioning them separately. DevOps helps to solve many problems related to integration of code written by different developers. It also helps with the creation of features that work correctly on the first try. CI helps not only with testing but also makes it possible to build a release immediately after successful tests (and this means that there will be no manual errors). All these processes help improve both efficiency and product quality; they reduce time spent debugging production issues and eliminate delays caused by waiting for manual testing.

Can you name any specific books, blogs or other resources that are worth reading by software engineers?

I guess everyone nowadays knows about StackOverflow. It is not only a very popular question-and-answer site for programmers but also an amazing source of knowledge, which includes lots of interesting articles on software engineering best practices . There are many excellent books available on the website too. For example I’d recommend The Clean Coder by Robert Martin. This book can be read online for free here .
Other good readings include the blog posts from the ThoughtWorks company (especially those written by Martin Fowler ) and Pragmatic Programmer, as well as Andrew Stellman’s articles. And don’t forget to look through the blog posts of your colleagues!

What software engineering conferences, seminars or other events can you name? Which ones would you recommend visiting?

There are lots of software engineering conferences and seminars. I guess everyone knows about FOSDEM. In recent years it has become one of the largest European open source developer conferences. If you want to visit a more “academic” event, there is always PLDI, which presents academic research in the field of programming languages and their semantics. It also includes many interesting invited talks by prestigious speakers from industry and academia. Last year’s edition was very successful – I’d encourage you to check out the videos for some amazing presentations!
If you prefer something less formal – take a look at EuroPLoP , the premier European conference on Practical Aspects of Declarative Languages. It’s also a great opportunity to attend workshops dealing with various programming languages – there are many presentations related to functional, object-oriented and logic programming.

Finally, if you want to meet other “interesting” people, take a look at Strange Loop. This is one of the biggest annual conferences about functional and dynamic programming languages and systems. It takes place in St Louis (Missouri) and includes lots of interesting presentations every year! There is no need to mention that these events usually end up with an amazing afterparty.

Can you name any books, articles or resources that aren’t directly about software engineering but influence your work?
WhenI started writing my own software almost 20 years ago, I was heavily influenced by the bestseller Code Complete. This book has become an instant classic and is still considered to be one of the most useful resources for programmers. It was written by Steve McConnell (a well-known expert in software engineering – watch his presentation here). The second edition of this book is available both on Amazon and as a free online version on Safari.

Another good read is Peopleware, a must-have book for all those involved in people management! Thomas J. DeMarco and Timothy Lister have done a great job explaining why good developers don’t necessarily make good team leaders… But if you want to switch your role from developer into some more senior position, you should definitely read this book!

What advice would you give to software engineering students?

Two words: learn how.
Believe it or not, but knowing the syntax of your programming language of choice is just a tiny part of being a good developer. You have to constantly improve yourself, go beyond just using some tool and be aware that there is always something new to learn. Always ask yourself why things are done in a certain way – never accept anything as “this is how it’s supposed to be”. This approach will help you understand many concepts quickly and avoid lots of errors at the same time.
I guess every programmer has his/her own tricks and recommendations on how to be a good developer. What advice would you give to beginner programmers?
Learn how to write simple tests for your code, learn about ways to deliver and promote your application (packaging, deployment and so on). When you finish writing some piece of software – don’t forget about documentation!
Justin F., CF Objective Conference

Other articles