Expertise
I’ve compiled a comprehensive—and evolving—list of my skills. But it is not and cannot be exhaustive. Like any good engineer, I’m constantly ferreting out and building new skillsets. Let me know what your project requires and I’ll give you a list of skills I can apply to your project today.
Code
I mainly work in Python, PHP, Javascript and its various flavors (TypeScript, Node.js, etc). I also work with Golang. I’m a 25-year veteran of PHP, so I’ve seen my share of legacy PHP code.
Major Frameworks
I have worked extensively with Symfony, Laravel, Vue.js, React and Django. Most frameworks follow long-established architectures and patterns—MVC, MVVM, ActiveRecords, Repository, clean architecture, CQRS, event buses and event-driven programming, frontend reactivity, and so forth. Knowing these patterns intimately allows me to get up speed on almost any framework very quickly.
Infrastructure, containers, orchestration & devops
Code modernization often involves building updated and optimized infrastructure around containers. I’ve built environments around Kubernetes, Github Actions, serverless environments, and other CI/CD tools. I’ve also done quite a bit of old-school Linux management, so if your workloads are on cloud VMs or bare-metal servers, I can work with those too.
Data persistence, optimization and normalization
PostgreSQL provides such a wide range of capabilities that it’s an ideal fit for many organizations, but MySQL can be good at certain read-heavy workloads and large-scale write-heavy traffic with many replicas. I can optimize queries with both databases, and make recommendations on whether a migration from one to the other is worth the effort.
I’ve also worked with read-optimized NoSQL databases like ElasticSearch and Redis, integrating them with ETL pipelines. At times we can greatly improve query performance by using these databases, and at other times we can reduce infrastructure complexity and cost through improved indexing, rollup tables and other tricks in your source-of-truth SQL database, allowing us to reduce reliance on secondary databases.
Architecture
In addition to the architectural patterns mentioned above, I bring a level of domain-driven design (DDD) to many of my projects. But I don’t make blanket recommendations—a full DDD architecture is not always necessary. But DDD is more of a philosophy than a strict pattern, and it can be applied flexibly to balance the four “magic rectangle” objectives of quality, quantity, time and cost. This is always my goal.
Cloud platforms
I’ve worked with primarily AWS and GCP (Google Cloud Platform), with a deep understanding of the concepts and best practices such as storage, CDNs, load balancing, managed Kubernetes, managed databases, IAM, IDS, WAFs, zero-trust and least-privilege.
Security
I’m a security-aware engineer: I know where security vulnerabilities can arise and the types of security efforts that can address them. If you require SOC2 compliance, I can particularly help with your Type 2 efforts. If you’re subject to the GDPR in any way, I can provide guidance on implementing the technical controls you’ll need.