This section may be of interest to you if you wish to hire me to work on your IT systems. This is only a summary, not a comprehensive listing.
I subscribe to the SQLite Code of Ethics.
I do not have "generative AI" write software for me, manage servers for me, or produce blueprints for architecting systems. Nor do I use "generative AI" to write my emails or other communications (including this website). This is because I believe the downsides of using "generative AI" for these tasks outweigh the supposed benefits.
In my experience, AI-generated software of any significant size is difficult for humans to understand. This is a crucial downside, as it can be difficult to verify that AI-generated software behaves correctly. Additionally, AI-generated software can be difficult to modify as needs change, and needs almost always do change.
There are many tried-and-true ways to efficiently produce software and manage computer systems, without resorting to "generative AI". My clients can rest assured that everything I do for them is based on technologies I understand well, used in ways that I can understand. This becomes important when you need a human (either me or someone else) to fix or modify your systems in the future.
Industries: I've provided services to the education, medical, and hospitality industries.
Programming languages: I have written production-ready code in C, Python, JavaScript (including TypeScript), PHP, SQL (a variety of dialects), Haskell, Perl, and Rust. I am very well-versed in web technologies such as CSS and HTML. I have tinkered with Java, C++, Erlang, Elixir, and C# in the past. My favourite programming languages are Haskell, Rust, C, and Perl.
Programming styles: I have experience with a variety of programming paradigms. My preference is for a declarative, functional style that focuses on data modeling first. Get the data model correct, and everything else tends to fall into place.
Programming environments: Most of my experience is in programming within various POSIX-based environments (such as Linux and the BSDs). I am well acquainted with POSIX APIs and other APIs exposed by specific UNIX-like platforms. I also have significant experience with Docker. I am used to programming with only a text editor, rather than a full IDE.
System administration: The bulk of my system administration experience is with UNIX-like systems, include Linux (Debian and Ubuntu primarily), OpenBSD, and FreeBSD. I have substantial experience configuring web, email, and database servers.
Database administration: Relational data modeling is my bread-and-butter. I have experience working with MySQL, PostgreSQL, MS SQL Server and SQLite. I also have experience with some popular no-SQL solutions, including CouchDB and Redis.
Network administration: I have experience setting up and administering small networks. I have experience setting up custom routers (Linux or OpenBSD-based), and have subsantial experience working with the IPTables and pf firewalling systems.
Cloud services: I have a substantial amount of experience administering virtual machines with a variety of providers. I have deployed moderately-complex infrastructures on Amazon Web Services and Microsoft Azure, including using serverless approaches where appropriate.