Amer Alghfaili

Hello, I'm

Amer Alghfaili

Software Engineer

I'm a software engineer with 5+ years of experience across fintech and legal services.

I learn slowly by design!

Depth compounds over time! leading to faster execution and better decision-making. Shortcuts compound into technical debt.

Latest Blog Posts

Thoughts, tutorials, and insights about software development and technology.

Featured Projects

Here are some of the projects I've worked on. Each one represents a unique challenge and learning experience.

Ebana

Worked as a Full-Stack Developer and led the complete revamp of the frontend application. Ebana provides digital legal services, including assembly establishment, e-voting, shareholder relationship management, and cap table management, aiming to eliminate manual paperwork and streamline corporate governance processes.

Technologies Used

Spring bootMysqlVaadinReactTypeScriptNextJSChakra UI

Elearner

Elearner is a learning focused workspace designed for structured understanding. Not just note-taking, while tools like Notion and Obsidian are powerful for general note-taking, they aren't optimized for structured learning workflows.

Elearner It combines a flexible notebook editor with flashcards, resource management, and roadmap planning to support active recall and long term retention.

Technologies Used

VercelReactTypeScriptNextJSChakra UIPrisma

Skills & Expertise

Technologies and tools I've mastered through hands-on experience and real-world projects.

🌿

Spring Framework

Experience building backend services using the Spring ecosystem, contributing to full-stack applications across multiple projects. I’ve worked with Spring Boot, Spring Security, and Spring Data to develop server-side systems.

  • REST & GraphQL APIs: Designing and implementing RESTful and GraphQL APIs with clear request/response structures and proper validation
  • Inversion of Control & Dependency Injection: Understanding and applying Spring’s IoC container to build modular and testable components
  • Data & Security: Using Spring Data for persistence and Spring Security to handle authentication and authorization concerns
⚛️

React

Next.js

Building web applications efficiently with Next.js, leveraging built-in web features such as font optimization, image optimization, caching strategies, and file-based routing.

  • Middleware: Deciding when to intercept requests and manipulate them
  • Colocation: Organizing page-level components and layouts for better structure and maintainability
  • Rendering strategies: Deciding when to render components on the server, client, or statically to optimize performance and reduce JavaScript bundle size
🅙

JavaScript

Strong foundation in JavaScript with a deep understanding of its runtime behavior.

  • Asynchronous architecture: Designing predictable async flows using Promises and async/await, managing error propagation, avoiding race conditions, and understanding the event loop (microtasks vs. macrotasks) to prevent subtle execution bugs
  • Closures & lexical scope: Deep understanding of how JavaScript captures variables, how scope chains are created at runtime, and how this impacts memory and long-lived references
  • Type coercion & evaluation model: Strong grasp of JavaScript’s implicit and explicit coercion rules, truthy/falsy evaluation, and equality semantics to prevent edge-case bugs and write defensively predictable code
📘

TypeScript

Enhanced code quality and developer experience with strong typing, interfaces, and advanced type inference.

🎨

Design System

Architecting scalable design systems that preserve brand identity while enforcing consistency across products.

  • Component architecture: Implement different kinds of reusable components that adhere to the brand’s identity and work in different contexts and viewports with rich API and controlled boundary of style customizations
  • Design tokens: Enhance development experience and visual consistency by reusing brand’s design tokens such as colors, spacings, texts and etc
🧩

CSS

Design pixel perfect web apps and able to translate design into code

  • Layout: Using Flexbox and CSS Grid to implement complex, responsive layouts that adapt seamlessly across viewport sizes
  • Positioning: Strong understanding of CSS positioning mechanics and stacking contexts to prevent visual bugs and unintended overlap
  • Box model & Containing blocks: Understanding block, inline, and inline-block elements and how containing blocks affect layout and positioning decisions
  • Utility-first: Leveraging frameworks like Tailwind CSS to accelerate development while maintaining consistency and scalability