Faisalaffan Blog
|
🇬🇧
Faisalaffan Blog
Career5 min read

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.

Faisal Affan
Faisal Affan
Published
What I Did as a Junior Developer — The Fundamentals That Shaped Everything

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 students table had 40 columns including "father_occupation" and "mother_maiden_name" with no separation

The mistake that changed everything:

PHP
// 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.

Related stories

Career
Career
Every Role I've Played — Junior to CTO, What I Actually Did at Each Level

Every Role I've Played — Junior to CTO, What I Actually Did at Each Level

A candid career retrospective tracing my journey through every engineering role: Junior developer grinding through fundamentals, Mid-level shipping production features, Senior designing architectures, Staff building org-wide leverage, and CTO-level strategic decisions. Each section maps to the portfolio strategy framework with real projects, real metrics, and real lessons.
Faisal Affan
Faisal Affan
Published
Career
What I Did at the CTO Level — Business Strategy Through Technology

What I Did at the CTO Level — Business Strategy Through Technology

At this level, your portfolio isn't about technology — it's about how technology created business value. I reduced AI inference costs by 90%, built an MCP orchestration that 3x'd developer output, and established a FOSS strategy where every repo is a 24/7 portfolio asset. This is what engineering leadership actually delivers.
Faisal Affan
Faisal Affan
Published
Career
What I Did as a Mid-Level Engineer — Shipping, Ownership & Production Scars

What I Did as a Mid-Level Engineer — Shipping, Ownership & Production Scars

I shipped real features to real users. I broke production and fixed it alone at 2 AM. I built a mobile banking app with 680K downloads, a mining fleet system saving $200K/year, and a field operations platform for 4.1M users. This is what mid-level engineering actually looks like — the projects, the metrics, and the production incidents that made me a real engineer.
Faisal Affan
Faisal Affan
Published
Career
What I Did as a Senior Engineer — Architecture, Trade-Offs & Technical Judgment

What I Did as a Senior Engineer — Architecture, Trade-Offs & Technical Judgment

I stopped being evaluated on lines of code. I was evaluated on decisions — what architecture to use, what trade-offs to accept, and how to guide other developers. This is the real story of designing IoT telemetry for 50K events/sec, microservices for Australia's largest insurer, and the stack decision that became my most-read article.
Faisal Affan
Faisal Affan
Published