Hello There! 👋

I'm Milan P Samuel

Java Developer | GSoC 2026 @ JBoss Community

Core Java tooling, terminal diagnostics, and cloud application deployment.

Milan P Samuel – Java Developer

About Me

I'm Milan P Samuel, a final-year B.Tech CSE student (Gaming Technology) at VIT Bhopal University, originally from Kerala. I'm a Java developer focused on systems automation, command-line diagnostics, and cloud application deployment, with a foundation in Linux, configuration auditing, and CI/CD workflows.

This summer I was a Google Summer of Code 2026 contributor with the JBoss Community, where I worked on jws-diag, a Core Java CLI for diagnosing JBoss Web Server / Tomcat installations. I built its validate command (configuration auditing before production) and its bundle command (redacted support bundles). Before that, I ranked 76th out of 40,000+ participants in GSSoC Extended 2024.

On the side I containerize and deploy small projects with Docker, and AWS EC2, and I learn the most from debugging the things that break along the way. I'm currently looking for junior Java backend and early-stage startup roles.

Outside of tech, I'm a badminton player and a gamer.

Education

2022 – 2026
B.Tech in Computer Science & Engineering Specialization: Gaming Technology VIT Bhopal University, Madhya Pradesh, India

Experience

Open Source Developer – Google Summer of Code 2026, JBoss Community (May – Aug 2026)
Contributed to jws-diag, a Core Java CLI (picocli, DOM API) for JBoss Web Server / Tomcat. Built the validate command: 22 rules (17 core + 5 stretch) covering security, TLS, and connector misconfigurations, with INFO/WARN/ERROR severities and distinct exit codes so CI pipelines can fail on bad configs. Also built the bundle command, a redacted .tar.gz support-bundle pipeline with DEFAULT and STRICT redaction. 6 merged PRs, with 260+ JUnit 5 tests that I wrote.
Open Source Contributor – GSSoC Extended 2024
Ranked 76th out of 40,000+ participants.

Certifications

IBM DevOps Fundamentals · SRE Fundamentals (Google) · IBM Cloud Computing · HackerRank Java Basic
22
jws-diag Validation Rules
260+
JUnit 5 Tests I Wrote
3
Projects
76
GSSoC Extended 2024 Rank (of 40,000+)

My Skills

Java
8 / 11 / 17
Python
Scripting
XML Parsing
DOM, SAX
MySQL & PostgreSQL
Databases
Linux
Ubuntu
Docker
Containers
AWS
EC2, S3, VPC
GitHub Actions
CI/CD
Jenkins
CI/CD
JUnit 5
Testing
Maven
Build tool
TLS/SSL
Config validation

Featured Projects

jws-diag – JBoss Web Server Config Auditor (GSoC 2026)

A Core Java CLI diagnostic toolkit for JBoss Web Server / Tomcat, built with the JBoss Community during Google Summer of Code 2026. My part: the validate command (22 rules for security, TLS certificates and ciphers, and connector/port issues, with INFO/WARN/ERROR findings and distinct exit codes for CI/CD) and the bundle command (redacted support bundles with DEFAULT and STRICT modes). Backed by 260+ JUnit 5 tests that I wrote, using isolated per-test fixtures.

Java picocli DOM API JUnit 5 CI/CD

Weather Web App – Cloud Deployment

A weather web application I used to practice end-to-end deployment: containerized with Docker and hosted on an AWS EC2 Ubuntu instance to host the container. Along the way I debugged a Docker/Jenkins port collision and an AWS security-group misconfiguration that was blocking inbound traffic.

HTML CSS JavaScript Docker Nginx AWS EC2

Milan Bank – Core Transaction Logic Engine

A command-line style ledger simulation (deposits, withdrawals, balance checks) written in Core Java using OOP principles, built to practice backend transaction patterns. Containerized with Docker and deployed on Render, with runtime variables tuned to work around free-tier port-binding and cold-start limits.

Java OOP Docker Render

Blog & Resources

Sharing my knowledge and experiences in software development. Here are some guides and resources I've created based on my own learning journey.

Roadmap For Software Engineer

A beginner-friendly, opinionated guide to the foundations I'm focusing on as I work toward a software engineering career, from picking a first language to preparing for technical interviews.

Programming Languages

Choosing your first programming language is one of the most consequential early decisions you'll make as a developer. My personal recommendation is Java — it enforces strong typing, object-oriented thinking, and has an enormous ecosystem. Python is excellent if you lean toward data science or scripting. JavaScript is unavoidable if web development is your goal.

Whatever language you pick, commit to it for at least 6 months before jumping to the next. Go deep, not wide. Build real projects — a CLI tool, a REST API, or a web scraper — before moving on. The fundamentals (variables, control flow, functions, I/O) transfer between languages. Mastery of one makes learning the second dramatically faster.

Object-Oriented Programming

OOP is not just a set of rules to memorize — it's a mental model for organizing complex systems. When I started working on larger Java projects, OOP concepts became invaluable. In Milan Bank, encapsulation keeps account balances behind well-defined methods, and in jws-diag a shared Rule interface lets every validation check plug into the same engine.

Don't just read about these concepts — implement them. Build a mini library management system, a zoo simulator, or a simple game. The moment you feel the pain of not using OOP properly (spaghetti code, repeated logic, brittle structures), you truly understand why these principles matter.

  • Classes & Objects: Blueprint and instances — the foundation of all OOP design
  • Encapsulation: Bundling data and methods; use access modifiers to protect internal state
  • Inheritance: Code reusability through parent-child relationships; favour composition over deep hierarchies
  • Polymorphism: Method overloading and overriding; key to writing extensible APIs
  • Abstraction: Hiding complex implementation details behind clean interfaces

Data Structures & Algorithms

DSA is the single biggest differentiator in technical interviews — and for good reason. Understanding time and space complexity helps you write code that scales. An O(n²) sort inside a frequently-called function can work fine in testing and still fall apart at real-world data volumes.

My recommended study order: start with arrays and strings (easy to visualize), then move to hash maps (they show up in a huge number of problems), then linked lists, trees, and graphs. Dynamic programming feels like magic at first — but once you internalize the "overlapping subproblems" pattern, it clicks. The NeetCode roadmap is a good structured place to start.

  • Time & Space Complexity Analysis (Big O notation)
  • Arrays, Strings, Sorting & Searching Algorithms
  • Linked Lists, Stacks, Queues
  • Hash Tables, Trees, Graphs
  • Dynamic Programming & Greedy Algorithms
DSA Roadmap

Learning Resources

A short list of the kinds of resources I find most useful when learning something new.

Official Documentation

Official docs are my first stop for anything production-grade. The Java SE docs and Spring Boot reference are where I start for anything production-related. Don't fear them — they're authoritative and usually the most up to date.

Video Tutorials

For visual learners, YouTube channels like Amigoscode, Telusko, and TechWorld with Nana (for DevOps/Docker/Kubernetes) are exceptional. Pause to code along, then rebuild from scratch without the video for better retention.

Practice Platforms

LeetCode for interview prep (use the NeetCode 150 list). HackerRank for Java skill certificates (I hold the Java Basic one). Codeforces for competitive programming if you want to sharpen algorithmic speed. Consistency beats intensity — 30 min daily beats a 6-hour weekend binge.

Community & Open Source

The single best investment in your career is contributing to open source. Start with good-first-issue labels on GitHub. Programs like GSSoC (where I ranked 76th of 40,000+ in the Extended 2024 edition) are perfect entry points. Stack Overflow teaches you to articulate problems clearly — the skill of writing a good question is itself worth practising.

Get In Touch

I'm open to junior Java backend roles and startup opportunities. If you'd like to talk about a role, a project, or open source, feel free to reach out.