Valentin Crettaz is an independent IT software consultant who’s been working for the past 25 years on various challenging projects across the globe. His expertise ranges from software application engineering and architecture to data science and business intelligence.
His daily job boils down to leveraging the latest and most cutting-edge Web, Data and Streaming technologies to implement software solutions that will help reduce the cultural gap between IT and business-people involved in any kind of industrial sector.
Obvious start though, but what made you a full stack developer?
Valentin Crettaz: Curiosity, appetite for knowledge and striving for independence. The first two might seem to be synonyms, though I still see them as complementary. I’ve always worked on both ends of the spectrum (i.e. back-end and front-end) way before the term « full-stack » was coined, way before we grasped the importance of understanding how those two ends collaborate to deliver a seamless user experience. Being full-stack really helps to understand what you’re building for your end-users.
Nowadays, as user expectations grow beyond reason, software solutions can get really complex. On the one hand, being able to understand how the data that you crunch on the backend ends up in front of your users is of paramount importance. Fail to properly capture all the needs and your app is worthless, game over, you’re toast! There are so many libraries and frameworks out there, that it’s nearly impossible to master them all and regularly stay up to date with the new releases that come out at a frantic pace.
Most full-stack developers usually pick their own stack of technologies that they want to use and master. In the end, what you pick doesn’t really matter that much. What really matters is to empower your customers with cleverly crafted IT solutions that operate in such a manner that technology doesn’t get in the way and seamlessly integrates with the customers’ everyday job.
The independence bit is more related to being able to deliver an end-to-end solution without having to depend on someone else developing the front-end part. However, as a historical backend developer, being good at carrying out front-end tasks and managing to keep pace with the rapid innovation happening on the client-side, gets harder and harder as users get more and more demanding. Most of the time, front-end chores should be left to natural-born UI engineers.
Started as a student assistant, you are now the Senior Data Solutions Architect. We would love to hear about your journey.
Valentin Crettaz: I did spend some time in the academic world, wrote a few conference papers and did some research. All that was nice, and I met extremely smart people. However, I felt that I wasn’t quite molded for that life. I’ve always wanted to have more latitude in my projects.
So, I got out of my comfort zone pretty early in my professional life and started a small consultancy. I was lucky to land a few initial projects, and soon, I had to hire a few engineers to work on those projects. That paid the bills, but I eventually ended up doing more boring tasks such as management and HR than what my real job (and passion) was all about: architecting and implementing software systems to solve real-world problems. It took me a little time to fully realize this until my second child had an accident when he was just over 18 months old. I was 28 at the time but that was the key driver for changing directions.
After seven years in the consultancy business, I had built a great network, not only in terms of size but also in quality. So, I decided to quit my consultancy and start another one which would allow me to work remotely from home where I could spend more time with my family. Even though that meant dividing my salary by a factor of three, my quality of life increased by a much larger magnitude, and that is genuinely priceless.
Photo: Gregory Grin, President (Swisscom), Francois Bochatay (Local-Search.ch), Valentin Crettaz (IT Consultant)
Which is that one opportunity/project you would consider as the turning point of your professional life?
Valentin Crettaz: I once had to collaborate with an anthropologist who was called in on a project to provide insights into how to better understand the users of the system we were building at the time. At first, I thought to myself that this was just a waste of money and time. But, as time gone by, I came to realize that he was asking the right questions and drove us through a profound thought process about what we were really doing.
I came to the conclusion that our job as software engineers wasn’t to use the latest techs to build the coolest apps but simply to solve real-world problems for real people in other business sectors. I couldn’t put it better than Steve Jobs once did when he said: “Start from the user experience and work back-wards to the technology, not the other way around".
Yes, I firmly believe that the IT industry only exists for a single purpose: to enable other industries (such as finance, real estate, hospitality, to name a few) with real-world problems do their business. Civil engineers build roads, bore tunnels and erect bridges to enable mobility. Find other types of engineers. Mechanical engineers, one of the broadest of all engineering degrees available today, combine many different skills to design mechanical systems for a broad range of various industries (manufacturing, aeronautics, etc.).
Going back to 2005, the year you started working as a technical editor and proofreader, and you are into writing till date. What is the motive behind every topic you pick for your readers?
Valentin Crettaz: I used to write a lot of blog articles in the years 2000 to 2008 when I was active on JavaRanch. Article ideas came most of the time from the questions I answered on the different JavaRanch forums. Even though I’ve had several book ideas in the past two decades, I’ve never really had the time to dive into those projects. Time allowing I’m willing to make that happen at some point. But clearly, roadblocks I encounter in my projects are always motives for publishing something.
I have a long list of topics I’d like to write on. When I spend time-solving something, I’d like to share it with other people, so they don’t waste their time on the same or a similar problem. Even though I don’t have the time to write, I do take the time to tech proof/review books. I’ve been doing that for many renowned editors and I really like that activity. I have sharp eyes and an extreme sense of detail.
Back in the days when I was preparing for my first Sun Java certification, I developed the ability to mentally compile code and that ability is still proving itself extremely useful when editing technical books.
What makes you a proud developer?
Valentin Crettaz: As mentioned earlier, my biggest pride is to be able to create new software-based solutions to help people do their everyday job. When I manage to properly capture the needs, deliver a solution implementing those needs in a timely manner and hear the customer cheer every morning when he fires up the app, I’m a proud developer. Many people tend to think that developing software is a science, probably because they relate that activity to computer science.
To me, developing software is more of an art than a science. The building blocks themselves (programming languages, algorithms, etc) are deeply rooted in science, however, there are an infinity of possible permutations to assemble those building blocks together in order to land a solution, and every developer will implement a solution to a given problem differently, that’s what makes it an art.
Ask 10 people to paint a sunset and you’ll get 100 different paintings. In short, continuously striving to master the art of developing software is what makes me a proud developer.
Tell me about your most successful project till date. What were the challenges you faced and how did you approach them?
Valentin Crettaz: Let’s first discuss what success means. In theory, you’ll only know when a project is successful the day it goes EOL and your support was never called. In the software lifecycle, 20% of the time is usually spent developing it and 80% maintaining it. So, are we assessing the success in regard to the 20% of the time or 100% of the time? And again, if your software goes EOL, it probably means no one is using it anymore, so how could that be a success?
Since none of my past projects are EOL yet and my phone still rings every day, I cannot answer that question. However, let’s adopt the common wisdom which tends to qualify a project as successful if its development went well (whatever that means) and the project was sent to production with no major issues (whatever that means as well). Given that definition of success, it’s hard to find the « most » successful project to date, because all projects are more or less successful one way or another.
However, one trait that usually stands out when I qualify a project as successful is when an old system has to be replaced by a newer one in a completely transparent manner for every stakeholder, without any service interruption. It’s like changing the four wheels of a running car and repaint it without stopping it first. When approaching problems like this, what tends to work best is to stay as modular as possible and migrate the old system piece by piece.
You have been an active member of JavaRanch. Would you like to share your experience?
Valentin Crettaz: Being part of the JavaRanch community, it was a great experience. I met very smart people, some of which I’m still in touch with. JavaRanch induced various interesting momentums for me. The most notable fact was probably when I met Kathy Sierra and Bert Bates who asked me to help them tech edit their wonderful and ground-breaking « Head First » book series published by O'Reilly. This was a wonderful experience.
A little later, I got in touch with Vikas Kaushik, who was about to build an exam simulator for helping Java developers pass their Sun certifications (SCJP, etc). He asked me whether I would be able to produce puzzle questions for their exam simulator. Being active on JavaRanch, I had access to a gigantic body of knowledge that helped me understand the main pain points people were facing with the Java language. All I had to do was to distill that knowledge into cleverly crafted questions for SCJP exam simulator.
That ended up being an incredible endeavor during which Vikas and I created a strong friendship. For various reasons, I had to stop contributing to JavaRanch for a while and I regret that. I love to help people. Early 2015, after having consumed countless threads from Stack Overflow during years, I started contributing back and set out to answer questions on a regular basis. I’m as active on Stack Overflow nowadays as I was on JavaRanch 15 years ago and even made it into the top 500 contributors.
The two communities are different, but they do share one common thing: supporting people who want to help each other. I’ve learned so many things in the past 25 years and I want to share as much as I can. The nicest thing is that you always get to learn new stuff while sharing your knowledge.
What are your preferred languages and tools?
Valentin Crettaz: I’m a historical Java aficionado. I started university when Java came to life in 1996. That language was a revolution at the time. The way Java eased the job of developers was unprecedented at the time. It also made the future generations of developers lazier, because they didn’t have to think in terms of performance and security as much as their predecessors using C/C++ had to.
In some sense, that was a good thing since the job of a developer is to create tools for supporting real-world businesses, not to think about which memory region that pointer references or how to recycle this other bunch of bits in the corner. I’m digressing, but anyway.
As for tools, I fell in love with Elasticsearch in 2010 and I’m using that technology ever since then. With the addition of Logstash, Kibana, Beats, Prelert, OpBeat and Swiftype over the years, the Elastic Stack ecosystem has grown into a full-fledged platform for ingesting, analyzing and searching your data.
Valentin Crettaz: They are two different beasts, governed by two very different authorities. So many lines of Java have been written during the past 20+ years, that the language is clearly here to stay. It’s the next Cobol and I strongly believe that historical Java engineers should stay up to date with each new release as their experience will be badly needed in the years to come to maintain all the existing Java legacy.
How would you like to contribute to technology in the coming years?
Valentin Crettaz: If I had to pinpoint one regret I have to date is to have started contributing to open-source software way too late in my life, even though I’ve been consuming open source technologies ever since I started developing. So, my way of contributing to technology is to contribute to open source. Since I’m an Elastic Stack aficionado, I’m mainly contributing to existing Elasticsearch, Kibana, Logstash and Beats plugins but I'm also creating new ones based on my needs and sharing them with the community.
My advice to all junior developers out there: if you start consuming open-source, make sure to contribute back as early as possible. Not only does it help you to improve your skills, but it also serves as very good proof to future employers that you know what you’re talking about. Tech employers don’t hire you based on your CV anymore (and those who still do it will get out of business soon). Showing them what you’ve built so far, gives you an advantage over other applicants, and thus, bring you one step closer to being hired.
Recently I co-authored a book - Event Stream in Action, with Alexander Dean as the main author. Event Streams teaches you techniques for aggregating, storing, and processing event streams. In this hands-on guide, you'll discover important application designs like the lambda architecture, stream aggregation, and event reprocessing. You'll also explore scaling, resiliency, advanced stream patterns, and much more! By the time you're finished, you'll be designing large-scale data-driven applications that are easier to build, deploy, and maintain.
Everyone has a story to inspire. What's yours?
Valentin Crettaz: Even though we might get the impression that many young people from renowned startups got very successful very early in their lives, don’t ever think there is a shortcut to get there. Hard work, resilience and self-sacrifice is the only way to be successful. Then again, we can debate what « successful » really means and everyone will have his own definition and understanding of the concept of success, but don’t think that money should always be the main objective.
The beauty of being a business software developer is that you get to build solutions for other businesses that most of the time don’t evolve in the IT sector. Learning many other domains while doing your IT job is priceless. When you’ll have worked on a substantial number of different projects, you’ll be proud of knowing the inner workings, constraints and processes of other domains, such as, for instance, the insurance sector, the financial sector or the real estate sector.
Never cease to believe in what you’re doing but know when to stop pursuing your current idea to start the next one. As the saying goes: « Life’s too short », so make the most of your time, although do not spread yourself too thin or you'll end up doing too much and nothing properly. I've known a few people in my life who were trying to do everything and anything, so-called control freaks. Their motivations were very diverse, from not willing to dilute their capital too much to willing to keep control of everything. At first, I saw these people as examples but soon realized that this wasn't what I wanted to become.