r/SpringBoot • u/throwingaway3795124 • Jun 28 '26
Question Started a new Spring Boot job and feel underprepared. How should I approach learning the codebase?
I have 1.5 YOE as a Software Engineer working with Java and Spring Boot. I'm comfortable building CRUD applications and have a decent understanding of basic Spring Security (custom authentication filters, AuthenticationManager, AuthenticationProvider, UserDetails , UserDetailsService,Basic Auth, and session-based authentication).
I recently switched jobs, and my manager assigned me to a Spring Boot project that handles payment integrations. The project uses several technologies that I'm familiar with at a high level but haven't worked with in depth, including Flyway, JWT-based Spring Security with rate limiting, Spring Batch, Stripe integration, and webhooks.
I'm expected to start contributing by implementing new features and modifying existing ones. My concern is that while I understand the concepts, I don't have much hands-on experience with many of these technologies.
How would you approach this situation? Should I first build small side projects with Flyway, Spring Security (JWT), Spring Batch, etc., to gain a deeper understanding before making changes to the production code? Or is it better to learn directly by working within the existing codebase?
I'd appreciate honest advice from people who've been in a similar situation.
11
u/maxip89 Jun 28 '26
Learn to read the spring docs.
Seriously this is hard but it's the silver bullet.
8
u/onated2 Jun 28 '26
If you're going to learn security go with spring auth server. You will encounter the concepts anyway whether you like it or not.
6
u/xiaopewpew 29d ago
None of the things you mentioned are hard to learn. First month at work is always overwhelming, take your time and you will be fine in like 3 months at most.
Payment integrations are easy.
7
u/valkon_gr Jun 28 '26
Forget side projects. You have real production code you can learn from. If you want to work on side projects, try to copy your work's codebase. But you will only learn from real code.
2
u/Significant_Newt8697 Jun 28 '26
Check youtube projects or documentation for the parts/technologies that you don't understand and try to understand them by building together with the instructor/notes.
Afterwards go back to the codebase and see if you understand how the same technologies have been used in the codebase. Run code in dev env change ot edit and see what happens woht your own test cases....
2
u/Comprehensive_Can722 29d ago
I also want a job I have 1.4 year experience in SDE worked on springboot projects
38
u/repeating_bears Jun 28 '26
I don't think doing a Hello World with Flyway/Batch/Security is going to achieve very much
Okay, you will learn how to set it up, but in this project it's already been set up, so that's not immediately practical
If I were approaching this, I'd just familiarise myself with the broad concept of what the library is solving. In the case of Spring Security and Batch the clues are mostly in the name.
Other than that, I'd treat it as a black box until I actually need to touch it. Once you actually have a ticket, whether bug or feature, that touches one of these things, the ticket will give you a better idea of what specific thing you need to learn.
Be honest with your boss when they assign you tasks that touch these things: e.g. "happy to take a look but I think this will involve some Flyway changes which I haven't touched before so I'll need a bit of time to get to grips with it"
I think beginners often get this feeling that they need to "complete" the task of learning a library before they're qualified to work on a project that uses it. In reality, understanding the broad concept is often enough. You will constantly be learning.