Alex Lawrence

Full-Stack Developer, Technical Lead, Software Architect

Profile

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 or TypeScript 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 professionally work with various libraries, such as React or lit-html. Personally, I favor to use native technologies, such as Web Components.

Most recently, I started with Rust and Kotlin as new programming languages 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
  • Kotlin
  • Markdown
  • PHP
  • Rust
  • SCSS
  • SQL
  • TypeScript

Technologies

  • Ansible
  • AWS (ECR, S3, SNS, SQS)
  • BabelJS
  • CSS Modules
  • Docker
  • express
  • EventStoreDB
  • Jest
  • jQuery
  • gohugo
  • GNU/Linux
  • gRPC
  • lodash
  • Mocha/Chai
  • Node.js
  • nginx
  • Pact
  • Protractor
  • React
  • redux
  • Server-Sent Events
  • socket.io
  • Shell/Bash
  • Web APIs
  • Web Components
  • Websockets
  • Webpack

Designs & Patterns

  • Clean Code
  • CQRS
  • Composition over Inheritance
  • Consumer-Driven Contracts (CDC)
  • 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)