Recently completed a contract and currently open to opportunities in .NET development, full-stack development, software engineering, and hybrid technical/instructional roles (contract or full-time).
.NET Developer • Full-Stack Developer • Instructor

Building practical software with clean and maintainable code.

.NET Backend & API Development
Full-Stack Web Applications (Frontend + Backend)
Software Engineering Clean, maintainable system design
AJ

Anmar Jarjees

Software developer and instructor focused on .NET development and full-stack web applications. I build practical applications and contribute to technical learning environments through instruction and mentorship, helping learners understand and apply real-world development practices.

.NET C# ASP.NET Core Web APIs JavaScript Typescript Java Python PHP HTML5 CSS3 SQL Responsive Design Teaching / Instruction Curriculum Development Technical Mentorship
About

.NET development and computer programming instruction with a focus on practical learning.

Instructor and Developer Profile

I am a Technical Instructor and software developer with experience applying and teaching core programming concepts in web and software development environments.

My focus includes .NET development, C#, ASP.NET Core, databases, and front-end technologies, with an emphasis on practical, project-based learning and real-world application.

What I Can Help With

I support both learning environments and development work involving full-stack applications, backend systems, and web development fundamentals.

  • Develop .NET / ASP.NET Core web applications
  • Develop RESTful APIs and backend services
  • Work with HTML, CSS, and JavaScript for responsive interfaces
  • Work with SQL databases and application integration
  • Teach and explain software development concepts in structured learning environments
Beyond Coding

Technology, Creativity & Continuous Learning

Outside software development and technical education, I enjoy music and creative expression.

Music & Creative Expression

Music has always been an important part of my life. I play keyboard and guitar, and I have participated in different church choirs.

Music has strengthened my creativity, listening skills, patience, and collaboration. These qualities also influence my approach to software development, problem-solving, and teaching.

Core Skills

Software & Web Development

A practical skill set covering backend development, web applications, databases, and software engineering fundamentals used in real-world projects and instruction.

01

Frontend Development

Building responsive and interactive user interfaces for modern web applications.

  • HTML5 / CSS3
  • JavaScript / TypeScript
  • Vue.js
  • Bootstrap
  • Responsive Design
02

Backend Development

Development of server-side applications, APIs, and application logic using modern frameworks.

  • C# / .NET / ASP.NET Core
  • Node.js / Express
  • Django (Python)
  • RESTful APIs
03

Databases & Tools

Working with relational and NoSQL databases, development tools, and version control systems.

  • SQL
  • MongoDB
  • Entity Framework Core
  • Git / GitHub
Technology

Tools & Development Environment

Throughout my career as a technical instructor and developer, I have worked with a range of technologies used for software development, web applications, databases, and learning environments.

Development Technologies

HTML5 & CSS3
Bootstrap
JavaScript
TypeScript
Vue.js
Angular.js
Java
Java GUI Swing
Java GUI JavaFX
C#
.NET / ASP.NET Core
PHP
Python
Node.js
Express.js
Django (Python)
SQL
MongoDB
IntelliJ IDEA
Android Studio
Git / GitHub
Visual Studio
VS Code

Additional Technical Background

MS-Office
Adobe Animation
Adobe Dreamweaver
Adobe Photoshop
Adobe Illustrator
Adobe InDesign
Projects & Work

Projects & Learning Materials

Examples of software development projects and instructional resources demonstrating applied experience in both software development and technical education.

.NET / Web Apps

ASP.NET Core Applications

Web applications built using C# and ASP.NET Core, focusing on backend logic, APIs, and full-stack development practices.

Full-Stack Projects

Full-Stack Web Development

Projects using frontend and backend technologies such as JavaScript, Node.js, Django, and database integration.

Teaching Materials

GitHub Programming Lectures

Structured coding examples, lecture materials, and demonstrations covering programming fundamentals, frameworks, and real-world development concepts.

Main Projects & Resources on GitHub


Explore project repositories, coding examples, lecture materials, and learning resources available on GitHub.

Repositories are regularly updated with new projects, code samples, and instructional content.

Looking for a .NET or full-stack developer with instructional experience?

I am currently open to opportunities in .NET development, full-stack development, software engineering, and technical instructor roles involving programming education and applied software development.

Start a Conversation

Case Studies

Case 1: Secure Contact Form Using JavaScript, Node.js, and Express

Introduction

In this case study, we will build a modern and secure contact form using JavaScript, Node.js, and Express. The project also demonstrates how modern web applications separate frontend and backend responsibilities when handling sensitive operations such as sending emails.

  • Why traditional mailto: forms are problematic
  • Why backend processing is required
  • Common security considerations for contact forms
  • How to build a secure Contact Us form using Node.js and Express
JavaScript Code

Why This Case Study Matters

In this case study, we will cover the following key areas:

  • Real-world forms are security-sensitive
  • Frontend validation is insufficient alone
  • SMTP credentials must remain server-side
  • Backend APIs are essential in modern web applications

Technologies Used

  • HTML5
  • CSS3
  • JavaScript
  • Fetch API
  • Node.js
  • Express
  • Nodemailer

Request Flow (Architecture Overview)

The following steps describe the lifecycle of a contact form request, from the browser frontend to the backend server and email delivery process:

  1. Browser Form
  2. JavaScript fetch()
  3. HTTP Request
  4. Express Route
  5. Server-Side Validation
  6. Nodemailer
  7. SMTP Server
  8. Email Sent
  9. HTTP Response Back
  10. Frontend Success Message

Development Process

  1. Frontend Integration
    • Build HTML Form
    • Add JavaScript Validation
  2. Create Express Server
  3. Create API Endpoint
  4. Server Validation
  5. Integrate Nodemailer (Email Sending)
  6. Add reCAPTCHA
  7. Add Security Layers
  8. Deploy Application

Security Considerations

Security is a key part of this project. A contact form is often a target for spam and abuse, so we need to handle both frontend and backend security properly.

  • Frontend validation is only for user experience, not security
  • Backend must validate all incoming data again
  • Never expose SMTP credentials in the frontend code
  • Use environment variables to protect sensitive data
  • Input should always be sanitized before processing
  • Rate limiting helps reduce spam and automated abuse

Lessons Learned

  • Frontend JavaScript alone is not enough for secure applications
  • Backend APIs are required to handle sensitive operations
  • Understanding request flow helps debug real-world applications
  • Separation of frontend and backend improves security and structure
  • Environment variables are important for protecting secrets

Task Milestone

  • Express server running
  • Health check route
  • Static website served from Express
  • Contact form HTML
  • JavaScript event listener
  • Fetch API request
  • POST /api/contact endpoint
  • JSON request/response handling
  • Postman testing
  • Browser testing

Why We Need Nodemailer

To send emails from a Node.js application, we use Nodemailer, the industry-standard email library for Node.js. It is one of the most widely used email libraries in the Node.js ecosystem.

Sending email is much more complex than making a normal HTTP request. It requires:

  • SMTP handshake
  • Authentication (username/password or OAuth)
  • Email formatting (plain text or HTML)
  • Attachment support
  • Error handling and retries

Node.js does not provide these email features as built-in functionality, which is why libraries such as Nodemailer are commonly used.

Install and Configure Nodemailer

Nodemailer requires a transporter configuration:

Contact Form => Express API => Nodemailer => Transporter => SMTP Server => Email Sent

Professional Workflow (Real Industry Pattern)

Before connecting the contact form to real email delivery, it is common to test each layer independently.

  1. Test SMTP independently using /test-email
  2. Test API structure using /api/contact
  3. Connect email sending to the real contact form
  4. Remove temporary test routes (optional cleanup)

Rate Limiting (anti-spam bots)

When working with Express, we may have an endpoint such as: "POST /api/items.

By default, the endpoint can accept unlimited requests. Without protection, a spam bot could repeatedly submit requests such as:

        POST /api/contact
        POST /api/contact
        POST /api/contact
        POST /api/contact
        ...
        

This could be repeated thousands of times, which may lead to:

  • Email inbox gets flooded
  • SMTP server works harder
  • Hosting resources are wasted
  • Contact form becomes unusable

To reduce spam, we can add rate limiting. Rate limiting allows only a specific number of requests from the same IP address within a defined time window.

For example, a visitor may be allowed to submit the contact form 5 times every 15 minutes. If the limit is exceeded, the visitor must wait until the time window resets.

One of the most common solutions is to install the express-rate-limit package"express-rate-limit" using "npm install express-rate-limit". You can read more about "Understanding Express rate limit middleware".

If the user exceeded the limit, the server returns "429 Too Many Requests". We can format the result as JSON:

        {
            "success": false,
            "message": "Too many contact form submissions. Please try again later."
        }
        

Quick Review

A secure contact form should include:

  • Contact form validation
  • Email validation
  • Header injection protection
  • Rate limiting
  • SMTP credentials stored in .env

Conclusion

This case study shows how a simple contact form becomes a full-stack application when security and backend processing are included. It demonstrates the importance of handling requests properly, validating data on the server, and protecting sensitive information.

The final result is a secure and scalable contact form solution built using modern JavaScript, Node.js, Express, Nodemailer, and industry-standard security practices.

Contact

Get In Touch

I am open to opportunities in .NET development, full-stack development, software engineering, and technical instructor roles in programming and software education.

Contact Details

Location Toronto, Ontario
Availability Recently completed a contract and currently open to opportunities in .NET development, full-stack development, software engineering, or hybrid technical and instructional roles. Open to both contract and full-time positions.

Secure Contact Form Project

Secure Contact Form Illustration

Full-stack contact form implementation demonstrating secure form handling and email delivery.

  • JavaScript Fetch API for asynchronous submission
  • Node.js + Express backend
  • Input validation and sanitization
  • Nodemailer email integration
  • Rate limiting for spam protection
  • Environment variables for secure configuration

Note: This implementation requires server-side support (Node.js), which is not available on all shared cPanel hosting environments.

GitHub / Source Code