What I Did as a Junior Developer — The Fundamentals That Shaped Everything
No production experience. GitHub full of tutorial repos. One asset: the ability to learn fast and zero fear of breaking things. This is what I actually built as a junior engineer — WordPress sites, a PHP university system, and the hardcoded credentials mistake that taught me security forever.

- What I Did as a Junior Developer
- Where I Started
- Project 1: University Information System
- Project 2-6: Small Business Websites
- My Junior Portfolio Scorecard
- What I'd Do Differently
- Start Git on Day One. Not month 8. Not "when I understand it better."
- Deploy Something Personal — Immediately. The confidence boost of seeing
- Write READMEs Even for Solo Projects. Your future self is the primary
- Learn One Thing Deeply Before Moving On. I jumped from PHP to JavaScript
- Advice for Current Juniors
What I Did as a Junior Developer
"Everybody starts somewhere. I started with FTP and hardcoded passwords." — Me
The junior years are about one thing: proving you can learn. Nobody expects production experience. Nobody expects architectural wisdom. They're betting on your trajectory — and that trajectory is determined by how fast you absorb fundamentals and how honestly you handle mistakes.
Where I Started
Year: 2017-2018 Stack: PHP, MySQL, HTML/CSS, Bootstrap, WordPress Deployment method: FTP to shared hosting (I had no idea what CI/CD was) Version control: Started Git at month 8. Lost 3 projects before that.
The Junior Proposition
What I was selling: Fundamental skills + willingness to learn. What companies were buying: Someone who won't be a net negative to the team. My edge: I could figure things out without asking the same question twice.
Project 1: University Information System
A CRUD application for managing student data, course registrations, and grades at a local campus.
- Stack: PHP, MySQL, Bootstrap 3
- Features: Student enrollment, course assignment, grade entry, basic reporting
- Deployment: Shared hosting via cPanel + FileZilla FTP
What I learned:
- SQL joins are not optional — my first version did 47 separate queries on the grade report page
- Form validation must happen on BOTH client and server — I learned this when someone submitted a negative grade via Postman
- Database normalization exists for a reason — my
studentstable had 40 columns including "father_occupation" and "mother_maiden_name" with no separation
The mistake that changed everything:
// This was in my config.php — pushed to GitHub
$db_host = "localhost";
$db_user = "root";
$db_password = "admin123";
$db_name = "university_db";Someone found my public repo. They didn't do anything malicious — they sent me an email saying "Hey, you might want to fix this." That stranger's kindness taught me more about security than any tutorial ever could.
Project 2-6: Small Business Websites
I built 5-6 WordPress + WooCommerce sites for local businesses — a bakery, a printing shop, a small clothing brand, a travel agent, and a restaurant.
What I actually did:
- Installed WordPress, configured themes, customized CSS
- Set up WooCommerce with payment gateways (Midtrans, bank transfer)
- Configured DNS, email, SSL certificates
- Basic SEO: meta tags, Google My Business, sitemap submission
- Taught owners how to update their own content
What I learned:
- Clients don't care about your tech stack — they care that their site works and brings customers
- "Can you also add..." is the most expensive phrase in freelancing — scope creep is real
- Backups are not optional — one hosting company went bankrupt and took a client's entire site with them. I had no backup. Never again.
My Junior Portfolio Scorecard
| Portfolio Item | Did I Do It? | Notes |
|---|---|---|
| 3-5 projects | ✅ | 1 university system + 5 business sites |
| Active GitHub | ❌ | Started Git at month 8 — major regret |
| 1 live deployed project | ✅ | Multiple WordPress sites live |
| Code readability | ⚠️ | Functional but not clean. God classes everywhere. |
| README documentation | ❌ | Didn't write a single README. Future me suffered. |
| Commit message quality | ❌ | "update", "fix", "final", "final2", "final_final" |
What I'd Do Differently
Start Git on Day One. Not month 8. Not "when I understand it better."
Day one. git init before npm init. The 3 projects I lost to hosting
failures would still exist.
Deploy Something Personal — Immediately. The confidence boost of seeing
your code at a real URL is worth 100 localhost projects. Use Vercel, Netlify, GitHub Pages — anything free. Just get it live.
Write READMEs Even for Solo Projects. Your future self is the primary
audience. Six months later, you won't remember why you structured the database
that way or what processData_v2() actually does.
Learn One Thing Deeply Before Moving On. I jumped from PHP to JavaScript
to Python to Java in 18 months. Surface-level knowledge of 4 languages is worth less than deep knowledge of 1.
Advice for Current Juniors
- Your first job doesn't define your career. I started with WordPress freelancing. Three years later I was designing IoT architectures for mining companies.
- The developer who asks questions is more valuable than the developer who pretends to know. Silence is the enemy of growth.
- Ship before you're ready. The project you deploy with bugs teaches you more than the perfect project sitting on your localhost.
- Security is not a "senior thing." Hardcoded credentials, SQL injection, XSS — these are junior mistakes with senior consequences. Learn them early.
The junior years are the only time in your career when "I don't know" is not just accepted — it's expected. Use that window. Ask everything. Break things. Learn publicly. Your senior self is counting on it.