Spring Builders

Maciej Walkowiak
Maciej Walkowiak

Posted on

What's your Spring journey?

Hello! Since this place is all about the community, I'd like to get to know you better.

What's your story? How did that happen that out so many programming languages, frameworks, software stack you chose to work with Spring (and I assume Java)? How did your career developed?

Share your journey! 馃檪

I'll start:

In 2006, during my 3rd year of university, a local company organised a program for students, where students led by company employees build a real life software in a company-like setup - team structure, tools and frameworks like ones used in real-life projects etc.
We were meant to build a website, mobile app and an API for posting photos online when interesting things happen in the city. Server side in Java, mobile app - as we are in pre-iPhone era - as far as I remember was meant to run on Symbian.

I picked up "Thinking in Java" by Bruce Eckel and started reading Spring Framework and Hibernate reference documentation. At that time, there were almost no tutorials, no getting started guides, nothing like that. I remember the beginnings were difficult.

We managed to finish the project, it wasn't popular at all but this was also not the intention. Me and my friend proved that we can write code, learn and suffer and this was apparently good enough to hire us.

I started my first job as a Java Developer on the 7th of May 2007. Since then, I have worked with ~10 companies on short and longer customer projects, contributed to several Spring projects, spoke few times at conferences, met many wonderful people from the Spring community and the Spring team - either online on Twitter or in real life.

I quickly realised that specialising in Java & Spring gives very good and well paid job opportunities for both permanent and contract positions.
Even though I tried few other programming languages, I like to express myself the most in Java (or Kotlin). I've always believed that Java & Spring is a great foundation for enterprise software or software with complex domains. And most importantly - I find coding with Spring fun and the Spring community is fantastic.

During the 17 years of my career Spring has always been at the center and most certainly will remain there for the next decade.

(I've shortened this story several times to make it easily digestable, but I can get into details if anyone is interested 馃槈)

Top comments (11)

Collapse
 
sergialmar profile image
Sergi Almar

My journey also starts back in my university days. In 2005, I had to implement a web application as part of an assignment. After doing some research, I stumbled upon the Spring Framework, but I realized I didn't have time to learn it properly. Later that year, while doing my Master's degree, I founded my first company with an ex-professor and I knew I needed some solid tech foundation, that's when I started learning Spring seriously (and this has been my best investment so far).

I rapidly became a Spring fan, and one year later, in 2006, I reached out to Interface21 (the original company behind Spring) to try to deliver the official training for them. They rejected, they thought it was too risky. I continued using and learning Spring in my startup, which also became my Master's thesis, called "Developing with the Spring Framework". In 2007, I delivered some Spring training at the university and had the pleasure of attending SpringOne Europe.

During Devoxx 2008, I approached the people at the SpringSource booth and proposed again to be a training partner. After some months of back and forth, we made it happen, I was delivering my first training 馃帀.

Given that SpringOne Europe disappeared, I thought of starting a Spring-focused event. At that time, I knew most of the Spring team and I was involved in a JUG called javaHispano (it covered all the Spanish-speaking countries) which meant I had access to the community. In 2010, Spring2GX Day was born (the first edition of Spring I/O). This was held in Madrid and was mostly a local event, 600 people registered, a complete success. Because the name of the event was too close to the one from VMware (SpringOne2GX), I was kindly asked to change it, and that's how it was rebranded to Spring I/O.

I organized Spring I/O 3 years in a row in Madrid (and one edition in Mexico!), but given the epic effort that organizing a conference requires, I burned out, the other folks from the JUG who were helping me didn't want to support it either. There was no Spring I/O in 2013 and 2014.

During a conversation with Juergen Hoeller at SpringOne 2014 in Dallas, he asked me to bring Spring I/O back. As a true fan of him, I revived Spring I/O in 2015, this time with a renewed focus, more international and I brought it home (Barcelona). The rest, as they say, is history.

Fast forward to 2024, I still use Spring on a daily basis and continue to deliver the official Spring training. I'm truly privileged and honored to be part of this community and you should be too!

Collapse
 
greeneyed profile image
Daniel L贸pez • Edited

Well, time for one of the dinosaurs to show its head 馃槈

I started with Java in 1996, the day before 1.0.2b was released (I remember because I left a job to download the JDK 1.0.1 during the night and the next day when I was going to start, I saw the announcement and had to wait another night to download the new version). It was the time when the download speed you acoomplished was often measured in bytes.

I kept working with Java though all the versions and slow improvements and even though I was working with Java/XML/XSLT at the time, I skipped completely the "Spring configured in XML" period and joined the Spring bandwagon when Spring Boot and Java configuration started to be a thing, around here in 2014ish.

I was tasked to learn and see how it worked and then help a popular, & relatively important company in the area, embrace the Spring echosystem, so I became sort of "a local expert" in it. I then went back to my job in the public administration, where I also "infected" some other groups with it.

I keep experimenting, as always (it's part of my job) with other techonologies, but so far we are still happy with it and we keep using it and developing new products with it. Currently we are in the private-cloud zone, still migrating legacy services while developing new shiny cloud-native ones, even though not going as far as microservices. Due to our size, we don't need them.

It is not without its pain points, but you learn there is no technology witjhout them and everything is a trade-off, so one picks the poisons one can live with and keeps going.

Collapse
 
piotrooo profile image
Piotr Olaszewski

Ohh, nice! Could you shed some light on how you鈥檙e migrating legacy services? Is it a monolit or a microservices? We鈥檙e int the same boat, migrating our legacy monolit to microservices too 馃

Collapse
 
greeneyed profile image
Daniel L贸pez • Edited

Well, we are not migrating monoliths into microservices. In some cases we are removing them. We are migrating some all-apps-in-Tomcat deployed in hand-made VMs to self-contained Spring Boot apps and K8s (private cloud).

With our team and applications' size, microservices are an overkill and bring more issues than advantages, so we are removing them and sizing the services appropriately based on different criteria, but not trying to actively make them "micro" any more. I call them "properly sized" services 馃槈.

What has worked best for us is to externalize the configurations and the logs, containerise the apps around Spring Boot executable jars and divide the environments using K8s namespaces with ConfigMaps/Secrets per namespace to tell the containerised app which profiles it should use.
We connected the CI&CD pipelines with the K8s docker registry and added observability, and with a bunch of scripts to manage the deployments, and we have a workable system we are happy with.

There are still a lot of things that could be made, (we want better observability, investigate GitOps...) but one should not run before one knows how to walk, and rushing in this space can lead to a lot of headaches. So there is no fixed goal but a path for improvement.

Collapse
 
sivalabs profile image
Siva

I started my professional career as a Java Developer in 2006 and my first project was using Struts and EJB 2. In 2007 I started using Spring and it feels amazing compared to the pain I was going through with J2EE App Servers and endless piles of ejb configuration files.

Later almost in every Java project, I have been using Spring and once Spring Boot is released it became the default tech stack.

Since then I have extensively worked with Spring Boot and wrote a couple of books on Spring Boot as well.

I have been blogging about various Spring Boot topics on my blog sivalabs.in for a very long time and now I am teaching Spring Boot on my YouTube channel youtube.com/sivalabs.

Cheers,
Siva

Collapse
 
georgeciprianvilau profile image
Ciprian Vilau

"learn and suffer"!
This describes the exact feelings I had along the way since 2015 when I first started to learn Java because I wanted to write an Android App for my tablet that would tell me how many penalty points I would get if I parked my car in the wrong place.
Fast forward to 2019, I got my first full-stack job working with Spring MVC. Since then I just wanted to become better at it, especially after seeing Josh Long's talks in Spring.

Collapse
 
piotrooo profile image
Piotr Olaszewski • Edited

I thought long and hard before joining this topic, but I'll give it a try...

Nice journey, @maciejwalkowiak, congratz 馃憣

How was it in my case?
I starter learning programming in high school. It was what we call in Poland a specialized school. There was a lot of programming an related subjects: Pascal, Delphi, C#, PHP, HTML/CSS, SQL and more, also related with the hardware. I still remember when I created my first coffee machine in Delphi, which could do some tricks with the change for the customer 馃槏.
That was around 2007-2009.

In 2009, I went to university and simultaneously started working as a PHP developer (sorry about that, Josh Long 馃檹) in a small company (right now I'm still in that company but is not small anymore 馃檭).
The first time I encountered Java was at university, and I fell in love with this language. I read twice "Thinking in Java" (3rd edition if I remember correctly). However, Spring didn't appear.

We created a lot of stuff in PHP and vanilla Java (with a small usage of Guice as a IoC container). Around 2014, my friend told me, 'Hey Piotrek, maybe we should use Spring to create some microservice' (I remember it was a microservice to handling Messenger converstations). That's when I first encountered Spring.
In 2016 (after two years, I know... 馃う鈥嶁檪锔), I created my first microservice in Spring and Spring Boot 馃檶.

Today, I cannot imagine developing new things without these framework. We have numerous microservices written in Spring, and we're still counting.

That's my journey. It's not finished yet. I'm still learning new things. Maybe it's not as spectacular as @maciejwalkowiak's, but still 馃

I hope that one day I can easily give a talk about something connected with Spring or something similar.

Collapse
 
nilan profile image
Nilanchala Panigrahy

Good to know your story @maciejwalkowiak

I am as old as you馃お. Started in 2007 as a mobile game developer. But after working for couple of years, I've moved to enterprise side. Ever since I've started my career, I've lived and loved java.

Before I grew tired of Java, I started using the Spring 馃尡 framework and have never looked back since.

And, I am too shy on twitter!

Collapse
 
openwms profile image
Heiko Scherrer

In 2004, I've noticed Spring the first time, when my colleague told me about this fancy framework.

I remember that the company we're working for wanted a new software stack - instead of the distributed system built in C language. We introduced J2EE1.4 (XDoclet) with Hibernate and JSF1.1 - Spring was not a topic.

After two master thesis, it turned out that the Spring Framework could be a potential candidate to solve the issues we've seen with J2EE.

I remember the first Spring Framework 2.0 article in the German Java Magazine. We started building an opensource warehouse management system on our own without the support of the company - that was somehow stuck in J2EE development cycles.

Since then Spring Framework has evolved a lot - but also had times of less attraction: When EJB3 (Java 5, 2005) came up, it looked like Spring is gone and the "Standard" JavaEE takes over.

But this didn't happen: Spring invented itself and again found the way to make developers life easier. After a short mistake with OSGI, Spring found the right way back to support Microservice architecture. Spring 馃崈 Go ahead!

Collapse
 
rashidi profile image
Rashidi Zin

I started working with Spring Framework in 2009 when I joined a startup. It was confusing at first. Too much "magic". As you mentioned, there were not many tutorials or documentation. Diving into the source code was the way to go.

Fast forward years later, Spring Boot was born. I was already in love with Spring Framework but Spring Boot strengthen the feeling. The idea of able to achieve similar results with lesser work is just lovely!

To this day I'm still learning Spring and it never gets boring.

Collapse
 
tschuehly profile image
Thomas Sch眉hly

I started with Java in a school course in 2016 abroad, afterwards, I learned C# in an IT-focused school. In my free time, I did Python and IOT development with Raspberry Pi's at my local after-school program where we measured data from a wind turbine and processed it.

After graduating I started a dual-study university program where I began to learn Spring for backend development and Angular for frontend development.
A year later I started my freelance business with a web app for a self-employed friend who runs a data recovery business. This was of course built with Spring and Angular. It was in my opinion very convoluted and way too overkill and is becoming a nightmare to maintain, as I don't want to change much but in the frontend world, it is normal to reinvent the wheel every 2 years.

That is why I started with server-side rendering with Thymeleaf and Spring Boot for my side business 2 years ago. I loved how easy it was to get something done, but after a year of developing with Thymeleaf, I found the experience was not as good as I wanted.

That's why I started developing Open Source libraries for Spring to improve the server-side rendering experience like Spring ViewComponent.

I was accepted to present it at Spring I/O 2023. This got me my current job where we focus on optimizing the full-stack developer experience with Spring Boot.
This year I'm going back to Spring I/O and delivering a Workshop about building server-side web apps with htmx.
I'm also presenting at multiple JUGs over the summer!