<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Alok Pandey</title>
    <description>The latest articles on DEV Community by Alok Pandey (@wildoctopus).</description>
    <link>https://dev.to/wildoctopus</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4059396%2F4ea47de1-ec76-40bb-a8a0-186a67722917.jpg</url>
      <title>DEV Community: Alok Pandey</title>
      <link>https://dev.to/wildoctopus</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/wildoctopus"/>
    <language>en</language>
    <item>
      <title>I Built a Java + Spring Boot Lab to Understand What Actually Happens in Production</title>
      <dc:creator>Alok Pandey</dc:creator>
      <pubDate>Sun, 27 Sep 2026 19:26:17 +0000</pubDate>
      <link>https://dev.to/wildoctopus/i-built-a-java-spring-boot-lab-to-understand-what-actually-happens-in-production-495</link>
      <guid>https://dev.to/wildoctopus/i-built-a-java-spring-boot-lab-to-understand-what-actually-happens-in-production-495</guid>
      <description>&lt;h1&gt;
  
  
  I Built a Java + Spring Boot Lab to Understand What Actually Happens in Production
&lt;/h1&gt;

&lt;p&gt;I've spent a lot of time preparing for Java and Spring interviews.&lt;/p&gt;

&lt;p&gt;And I noticed something.&lt;/p&gt;

&lt;p&gt;A lot of preparation eventually becomes:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"What is @Transactional?"&lt;/p&gt;

&lt;p&gt;"What is dependency injection?"&lt;/p&gt;

&lt;p&gt;"What is ConcurrentHashMap?"&lt;/p&gt;

&lt;p&gt;"What is the difference between offset and cursor pagination?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You can memorize the answers.&lt;/p&gt;

&lt;p&gt;But then someone asks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Okay. Show me what actually happens."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's where things get interesting.&lt;/p&gt;

&lt;p&gt;So I built a runnable Java + Spring Boot learning lab around exactly that idea:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understand → Run → Break → Observe → Fix → Explain&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/wildoctopus/spring-enterprise-learning-lab" rel="noopener noreferrer"&gt;https://github.com/wildoctopus/spring-enterprise-learning-lab&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What is the Spring Enterprise Learning Lab?
&lt;/h2&gt;

&lt;p&gt;It's a Java 21 + Spring Boot playground focused on understanding the concepts that actually matter when building and debugging enterprise applications.&lt;/p&gt;

&lt;p&gt;It covers areas including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Core Java&lt;/li&gt;
&lt;li&gt;Collections&lt;/li&gt;
&lt;li&gt;Concurrency&lt;/li&gt;
&lt;li&gt;JVM internals&lt;/li&gt;
&lt;li&gt;Spring Bean lifecycle&lt;/li&gt;
&lt;li&gt;Dependency Injection&lt;/li&gt;
&lt;li&gt;Spring proxies&lt;/li&gt;
&lt;li&gt;Transactions&lt;/li&gt;
&lt;li&gt;JPA/Hibernate&lt;/li&gt;
&lt;li&gt;SQL&lt;/li&gt;
&lt;li&gt;REST&lt;/li&gt;
&lt;li&gt;Pagination&lt;/li&gt;
&lt;li&gt;Streams&lt;/li&gt;
&lt;li&gt;Caching&lt;/li&gt;
&lt;li&gt;System design&lt;/li&gt;
&lt;li&gt;Production-oriented scenarios&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal isn't another collection of theoretical notes.&lt;/p&gt;

&lt;p&gt;The goal is to make the concepts &lt;strong&gt;runnable and observable&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Don't just read it. Break it.
&lt;/h2&gt;

&lt;p&gt;A lot of technical learning looks like this:&lt;/p&gt;

&lt;p&gt;Read → Understand → Forget → Read again.&lt;/p&gt;

&lt;p&gt;I wanted something different:&lt;/p&gt;

&lt;p&gt;Understand → Run → Break → Observe → Fix → Explain&lt;/p&gt;

&lt;p&gt;Because sometimes the fastest way to understand a concept is to deliberately make it fail.&lt;/p&gt;




&lt;h2&gt;
  
  
  What REALLY happens when Spring Boot starts?
&lt;/h2&gt;

&lt;p&gt;For example, instead of simply memorizing:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Spring creates beans and injects dependencies."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I wanted to understand the actual lifecycle:&lt;/p&gt;

&lt;p&gt;Application starts&lt;br&gt;&lt;br&gt;
↓&lt;br&gt;&lt;br&gt;
ApplicationContext&lt;br&gt;&lt;br&gt;
↓&lt;br&gt;&lt;br&gt;
Bean definitions&lt;br&gt;&lt;br&gt;
↓&lt;br&gt;&lt;br&gt;
Bean creation&lt;br&gt;&lt;br&gt;
↓&lt;br&gt;&lt;br&gt;
Dependency injection&lt;br&gt;&lt;br&gt;
↓&lt;br&gt;&lt;br&gt;
BeanPostProcessor&lt;br&gt;&lt;br&gt;
↓&lt;br&gt;&lt;br&gt;
Initialization callbacks&lt;br&gt;&lt;br&gt;
↓&lt;br&gt;&lt;br&gt;
Proxies&lt;br&gt;&lt;br&gt;
↓&lt;br&gt;&lt;br&gt;
Ready for use&lt;/p&gt;

&lt;p&gt;And then the questions become much more interesting:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When exactly is a bean created?&lt;/li&gt;
&lt;li&gt;When does dependency injection happen?&lt;/li&gt;
&lt;li&gt;Where do BeanPostProcessors fit?&lt;/li&gt;
&lt;li&gt;When does &lt;code&gt;@PostConstruct&lt;/code&gt; run?&lt;/li&gt;
&lt;li&gt;When are proxies involved?&lt;/li&gt;
&lt;li&gt;Why does self-invocation matter?&lt;/li&gt;
&lt;li&gt;What actually happens with &lt;code&gt;@Transactional&lt;/code&gt;?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The repository contains runnable examples and tests to explore these behaviors.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;code&gt;@Transactional&lt;/code&gt; isn't magic
&lt;/h2&gt;

&lt;p&gt;It's easy to learn:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;@Transactional&lt;/code&gt; = transaction.&lt;/p&gt;

&lt;p&gt;But production systems make you ask:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Who actually starts the transaction?&lt;/li&gt;
&lt;li&gt;How does Spring intercept the method?&lt;/li&gt;
&lt;li&gt;Where does the proxy come into the picture?&lt;/li&gt;
&lt;li&gt;What happens during self-invocation?&lt;/li&gt;
&lt;li&gt;When does rollback happen?&lt;/li&gt;
&lt;li&gt;What happens with exceptions?&lt;/li&gt;
&lt;li&gt;What happens when database operations become slow?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Understanding the mechanism is much more useful than memorizing the annotation.&lt;/p&gt;




&lt;h2&gt;
  
  
  Concurrency: go beyond "ConcurrentHashMap is thread-safe"
&lt;/h2&gt;

&lt;p&gt;The same approach applies to concurrency.&lt;/p&gt;

&lt;p&gt;Instead of stopping at:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"&lt;code&gt;ConcurrentHashMap&lt;/code&gt; is thread-safe."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;you can investigate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Concurrent updates&lt;/li&gt;
&lt;li&gt;Atomic operations&lt;/li&gt;
&lt;li&gt;&lt;code&gt;putIfAbsent&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;compute&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;merge&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Executor behavior&lt;/li&gt;
&lt;li&gt;Immutable objects&lt;/li&gt;
&lt;li&gt;Race conditions&lt;/li&gt;
&lt;li&gt;Singleton failure scenarios&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The interesting interview question isn't always:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"What is ConcurrentHashMap?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It can be:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"What happens when multiple threads modify the same data?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  JVM internals without just memorizing diagrams
&lt;/h2&gt;

&lt;p&gt;We've all seen:&lt;/p&gt;

&lt;p&gt;Heap&lt;br&gt;&lt;br&gt;
Stack&lt;br&gt;&lt;br&gt;
Metaspace&lt;br&gt;&lt;br&gt;
Eden&lt;br&gt;&lt;br&gt;
Survivor&lt;br&gt;&lt;br&gt;
Old Generation&lt;/p&gt;

&lt;p&gt;But knowing the terminology is only the beginning.&lt;/p&gt;

&lt;p&gt;The interesting part is connecting:&lt;/p&gt;

&lt;p&gt;Java code&lt;br&gt;&lt;br&gt;
↓&lt;br&gt;&lt;br&gt;
Objects&lt;br&gt;&lt;br&gt;
↓&lt;br&gt;&lt;br&gt;
Memory&lt;br&gt;&lt;br&gt;
↓&lt;br&gt;&lt;br&gt;
Garbage Collection&lt;br&gt;&lt;br&gt;
↓&lt;br&gt;&lt;br&gt;
JVM behavior&lt;br&gt;&lt;br&gt;
↓&lt;br&gt;&lt;br&gt;
Production consequences&lt;/p&gt;

&lt;p&gt;The JVM playground is designed to help make that connection.&lt;/p&gt;




&lt;h2&gt;
  
  
  Offset vs Cursor Pagination
&lt;/h2&gt;

&lt;p&gt;Another example is pagination.&lt;/p&gt;

&lt;p&gt;Most developers know:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;LIMIT 20 OFFSET 10000&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;But what happens when the dataset becomes very large?&lt;/p&gt;

&lt;p&gt;What happens when records are inserted or deleted while users are navigating through pages?&lt;/p&gt;

&lt;p&gt;What happens when the API needs to support large datasets efficiently?&lt;/p&gt;

&lt;p&gt;The repository includes pagination experiments around offset and cursor approaches, including tenant-bound cursor validation.&lt;/p&gt;

&lt;p&gt;Because pagination isn't just about syntax.&lt;/p&gt;

&lt;p&gt;It's about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Performance&lt;/li&gt;
&lt;li&gt;Consistency&lt;/li&gt;
&lt;li&gt;Correctness&lt;/li&gt;
&lt;li&gt;Security&lt;/li&gt;
&lt;li&gt;API design&lt;/li&gt;
&lt;li&gt;Scalability&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The idea behind the repository
&lt;/h2&gt;

&lt;p&gt;Senior Java discussions often move beyond:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"What is this API?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;towards:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Why does it work?"&lt;/p&gt;

&lt;p&gt;"How does it work internally?"&lt;/p&gt;

&lt;p&gt;"What happens when it fails?"&lt;/p&gt;

&lt;p&gt;"What happens under concurrency?"&lt;/p&gt;

&lt;p&gt;"What happens under load?"&lt;/p&gt;

&lt;p&gt;"What trade-off would you make?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's the type of thinking I want this repository to encourage.&lt;/p&gt;

&lt;p&gt;Not just:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"What is Spring Boot?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;But:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"What is Spring Boot actually doing?"&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Who is this for?
&lt;/h2&gt;

&lt;p&gt;This can be useful if you're:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Preparing for Java backend interviews&lt;/li&gt;
&lt;li&gt;Preparing for Senior/Lead Java roles&lt;/li&gt;
&lt;li&gt;Learning Spring Boot beyond annotations&lt;/li&gt;
&lt;li&gt;Moving toward senior engineering&lt;/li&gt;
&lt;li&gt;Exploring JVM internals&lt;/li&gt;
&lt;li&gt;Learning JPA/Hibernate&lt;/li&gt;
&lt;li&gt;Practicing concurrency&lt;/li&gt;
&lt;li&gt;Learning production-oriented system design&lt;/li&gt;
&lt;li&gt;Looking for runnable examples instead of theory alone&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You don't need to study everything at once.&lt;/p&gt;

&lt;p&gt;Pick one topic.&lt;/p&gt;

&lt;p&gt;Run it.&lt;/p&gt;

&lt;p&gt;Break it.&lt;/p&gt;

&lt;p&gt;Understand it.&lt;/p&gt;

&lt;p&gt;Move to the next one.&lt;/p&gt;




&lt;h2&gt;
  
  
  Getting started
&lt;/h2&gt;

&lt;p&gt;You'll need Java 21+ and Maven.&lt;/p&gt;

&lt;p&gt;Clone the repository:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git clone https://github.com/wildoctopus/spring-enterprise-learning-lab.git&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Then:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cd spring-enterprise-learning-lab&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Run the tests:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;mvn clean test&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Or start the application:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;mvn spring-boot:run&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Then explore one of the available playgrounds.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's next?
&lt;/h2&gt;

&lt;p&gt;The lab is still evolving.&lt;/p&gt;

&lt;p&gt;I'd like to expand it with more experiments around:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Spring internals&lt;/li&gt;
&lt;li&gt;JVM behavior&lt;/li&gt;
&lt;li&gt;Database performance&lt;/li&gt;
&lt;li&gt;Kafka and event-driven systems&lt;/li&gt;
&lt;li&gt;Distributed systems&lt;/li&gt;
&lt;li&gt;Observability&lt;/li&gt;
&lt;li&gt;Resilience&lt;/li&gt;
&lt;li&gt;Caching&lt;/li&gt;
&lt;li&gt;Production failure scenarios&lt;/li&gt;
&lt;li&gt;System design&lt;/li&gt;
&lt;li&gt;Advanced concurrency&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The philosophy will stay the same:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don't just read about the problem. Reproduce it.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Your turn
&lt;/h2&gt;

&lt;p&gt;If you work with Java or Spring in production:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's one Java/Spring concept you only truly understood after something broke?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Drop it in the comments.&lt;/p&gt;

&lt;p&gt;It might become the next experiment in the lab.&lt;/p&gt;

&lt;p&gt;And if you find the repository useful, a ⭐ on GitHub helps other developers discover it.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/wildoctopus/spring-enterprise-learning-lab" rel="noopener noreferrer"&gt;https://github.com/wildoctopus/spring-enterprise-learning-lab&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy breaking things. 😄&lt;/p&gt;

</description>
      <category>java</category>
      <category>springboot</category>
      <category>interview</category>
      <category>microservices</category>
    </item>
    <item>
      <title>Deep Learning Training Playbook: Turning Research Papers into Engineering Decisions</title>
      <dc:creator>Alok Pandey</dc:creator>
      <pubDate>Mon, 03 Aug 2026 12:49:37 +0000</pubDate>
      <link>https://dev.to/wildoctopus/deep-learning-training-playbook-turning-research-papers-into-engineering-decisions-3k9d</link>
      <guid>https://dev.to/wildoctopus/deep-learning-training-playbook-turning-research-papers-into-engineering-decisions-3k9d</guid>
      <description>&lt;p&gt;Deep Learning is evolving faster than ever.&lt;/p&gt;

&lt;p&gt;Every week we see new techniques:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LoRA&lt;/li&gt;
&lt;li&gt;QLoRA&lt;/li&gt;
&lt;li&gt;RAG&lt;/li&gt;
&lt;li&gt;Foundation Models&lt;/li&gt;
&lt;li&gt;Mamba&lt;/li&gt;
&lt;li&gt;Diffusion Models&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But one question is still difficult:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Which technique should I choose for my problem?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Most resources explain &lt;strong&gt;how&lt;/strong&gt; something works.&lt;/p&gt;

&lt;p&gt;Very few explain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why was it created?&lt;/li&gt;
&lt;li&gt;When should I use it?&lt;/li&gt;
&lt;li&gt;When should I avoid it?&lt;/li&gt;
&lt;li&gt;What are the trade-offs?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is the problem I wanted to solve.&lt;/p&gt;




&lt;h2&gt;
  
  
  Introducing: Deep Learning Training Playbook
&lt;/h2&gt;

&lt;p&gt;A practical guide to help engineers make better AI decisions.&lt;/p&gt;

&lt;p&gt;The first part covers:&lt;/p&gt;

&lt;p&gt;✅ Transfer Learning&lt;br&gt;&lt;br&gt;
✅ Foundation Models&lt;br&gt;&lt;br&gt;
✅ Full Fine-Tuning&lt;br&gt;&lt;br&gt;
✅ LoRA&lt;br&gt;&lt;br&gt;
✅ QLoRA&lt;br&gt;&lt;br&gt;
✅ Continued Pretraining&lt;br&gt;&lt;br&gt;
✅ Knowledge Distillation  &lt;/p&gt;

&lt;p&gt;The goal:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Don't memorize AI techniques. Learn when and why to use them.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Open Source
&lt;/h2&gt;

&lt;p&gt;GitHub:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/wildoctopus/deep-learning-training-playbook" rel="noopener noreferrer"&gt;https://github.com/wildoctopus/deep-learning-training-playbook&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;More chapters coming:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Model Architectures&lt;/li&gt;
&lt;li&gt;Generative AI&lt;/li&gt;
&lt;li&gt;Training Optimization&lt;/li&gt;
&lt;li&gt;Agentic AI&lt;/li&gt;
&lt;li&gt;Production AI Systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Built by &lt;strong&gt;WildOctopus 🐙&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Turning research papers into practical engineering playbooks.&lt;/em&gt;&lt;/p&gt;




</description>
      <category>machinelearning</category>
      <category>ai</category>
      <category>opensource</category>
      <category>deeplearning</category>
    </item>
  </channel>
</rss>
