Alex Lawrence

Full-Stack Developer, Technical Lead, Software Architect

I am a software developer with knowledge and experience in architecture, automation, backend, frontend, operations, teaching, technical leadership and testing. Since 2007, my professional focus lies on full-stack web development.

In most projects, I use JavaScript as language and Node.js as backend runtime. Wherever useful, I apply selected parts of DDD. The architectural patterns I am most interested in are Event-driven Architecture, CQRS and Event Sourcing. For the frontend, I personally favor to use native technologies, such as Web Components. Professionally, I also work with various libraries and tools.

Most recently, I started learning Rust as new programming language and picked up selected concepts of Functional Programming. Since many years, I am a strong supporter for Free/Libre Open Source Software.

Availability

Area of work

  • Automation
  • Backend Development
  • Code Design
  • Frontend Development
  • Operations
  • Software Architecture
  • Talks
  • Teaching
  • Technical Leadership
  • Technical Writing
  • Testing
  • Workshops

Languages

  • CSS
  • HTML
  • JavaScript
  • Markdown
  • PHP
  • Rust
  • SCSS
  • SQL
  • TypeScript

Technologies

  • Ansible
  • BabelJS
  • CSS Modules
  • Docker
  • express
  • Jest
  • jQuery
  • gohugo
  • GNU/Linux
  • lodash
  • Mocha/Chai
  • Node.js
  • nginx
  • Protractor
  • React
  • redux
  • Server-Sent Events
  • socket.io
  • Shell/Bash
  • Web APIs
  • Web Components
  • Websockets
  • Webpack

Designs & Patterns

  • Clean Code
  • Command Query Responsibility Segregation
  • Composition over Inheritance
  • Continuous Delivery & Continuous Integration
  • Domain-Driven Design
  • Event Sourcing
  • Event-Driven Architecture
  • Eventual Consistency
  • Inversion of Control / Dependency Injection
  • Loose Coupling
  • Messaging
  • Microservices
  • Model-View-Controller (MVC)
  • RESTful
  • Reactive

Methodologies & Processes

  • Agile Development
  • Behavior-Driven Design
  • Code Reviews
  • Domain-Driven Design
  • Extreme Programming
  • Kanban
  • Lean Startup
  • Pairing (also remote)
  • Refactoring
  • Scrum
  • Test-Driven Design (TDD)