I'm a software architect and full-stack developer based in Calgary, Alberta, Canada. 🇨🇦🏴
I design and build software systems. Systems that don't crash when they receive incorrect data, that don't need to be rebooted constantly and that don't run so slowly that the users think they've crashed. Systems that take data from any source - databases, files, networks, APIs - process it as quickly, efficiently and reliably as possible and output the results in whatever form the customer requires.
I've designed and written systems for energy companies, railways, security companies, banks, finance companies, insurance syndicates and many others.
I use Continuous Integration and Deployment to automate every part of the process from building to unit testing to deployment and integration testing. I usually try to automate everything I can - it makes things faster, and it removes errors.
I started my career as an Electronic Engineer (I'm a Chartered Engineer) and I used to design PCBs, FPGAs and video hardware, but I quickly changed to designing and writing software.
I've used a LOT of different technologies in my career, depending on the problems I'm trying to solve because languages are just tools.
The main languages I've used most recently are:
- Python
- C#
- ASP.NET
- C++
I've used these on:
- Windows
- Ubuntu Linux
- AWS Linux
- MacOS
And used these databases:
- MS SQL Server
- PostgreSQL
- Oracle
- Vertica
I've also recently used:
- AWS Lambda
- AWS API Gateway
- Various other AWS features!
- Terraform
- Django
- Docker
- Kubernetes
- bash
- JavaScript
My main open source project is Randalyze, a Python package that generates and analyzes random numbers that match those encountered in real life. The numbers are distributed according to Benford's Law; for more details, there's an article on my blog: Are those numbers realistic or fake? Try using Benford's Law
Links to The Original Article
PyCoder's Weekly - Issue 568 The Real Python Podcast - Episode 151 - also available on Player FM
The most recent download statistics for Randalyze are:
My newest open source project is primegenerators, a Python package that generates prime numbers, checks whether given numbers are prime, and factorizes them.
The most recent download statistics for primegenerators are:
Witter lets you generate pseudo-random text in the style of an original file you provide. For example, if you want to generate text in the style of Shakespeare's sonnets, War and Peace, or any (preferably big) text document you have, it will come up with gems like:
What acceptable audit canst thou O cruel, say I love thee with mine, compare thee to a summer's story tell Or from their physicians know. For if I should despair I should grow mad, And in mine own love's might O let my looks be then the eloquence, And dumb presagers of my silence cannot boast, I was not sick of any fear from thence.
Nobody said it was going to make sense! What it DOES do though, is to demonstrate text parsing, stochastic methods, and some statistics.
The most recent download statistics for witter are:
I'm an experienced Software Developer who can improve your software design and processes, reduce your cloud bill and make sure your software does what it's supposed to.
My professional web site is Software Pragmatism. I write about technologies I've learned about and used, and about software development processes in general.
📫 If you're in Canada, feel free to contact me via my contact form.
Some of the sites that link to me:
Other sites:
- Shields provided by shields.io
- Project Euler - mathematics puzzles: