Welcome to Key Efficiency.

Over the years, I've noticed that a common problem businesses have is cumbersome and inefficient data and reporting processes. I develop solutions to address that problem by creating custom software, BI, ETL, and system integrations that make your daily processes much more productive.

The key to this is a focus on efficiency.

What I Do

For over 20 years, I've been building software and automating data and reporting processes. If you need custom software, reporting, or automations for your business, contact me below.


Who I Am

I'm a full stack .NET developer with extensive experience in business process automation, application development, ETL, BI, SQL, and MS Office automation.


Custom Software Development

I've built custom software and automations for small and large businesses.
If you need custom software to automate your business processes, send me an email.


I offer a freeware application named TaskRunner which can help to automate common tasks.

Its central function is a Task Scheduler which can perform numerous actions, such as running
executables and scripts, backing up files locally or to FTP, sending emails and notifications,
process/service monitoring on local/remote machines, pinging IPs, performing system cleanup, and more.

TaskRunner also has several other "modules" which perform various functions.
These include an FTP Browser, an Email Monitor, a Shortcut Toolbar, and a Web Search tool.

Click here to download TaskRunner.

TaskRunner's History: A long, long time ago in a cubicle in St. Louis, I was starting to dabble in a new technology called ".NET" (I told you it was a long time ago). Before this, my focus had been on MS Office automation and scripting for ETL. I decided to make my first .NET desktop application: a simple utility to backup my code to an FTP server. Most of the options were written directly into the code and it had a minimal front-end.

Soon after, while dealing with some frustrating aspects of Window's Task Scheduler (which I had to use for various daily functions), I decided to make my own scheduler that was more fine-tuned to what I wanted in a batch runner, so I incorporated a Batch Scheduler utility into the .NET application which could run executables and scripts. After the application had been successfully running for a few months, I was talking to someone in IT and they noticed the program and told me that they'd like to use it, but they would need to be able to change some of the "options" that were built in to the code. So, I threw together a front-end configuration tool, and the first public-release of TaskRunner was born (version 2.0).

Originally, the FTP backup utility and the Batch Scheduler were completely separate functions, but over time I decided that I wanted TaskRunner to be a multi-function tool. I'm not a fan of having to install a dozen or so third-party apps just to perform essential functions, so I decided to merge the "backup" utility and the Batch Scheduler into a multi-function "Task Scheduler" and make "FTP backups" and "running executables" just one of many actions that the Task Scheduler could perform. Over the years, I added several new actions to the Task Scheduler, as well as adding other tools to the app outside of the Task Scheduler.

As a result, instead of having to install an email checker and a task scheduler and a backup utility and an FTP client and a search toolbar and a shortcut toolbar (and so on, and so on), I just install one app that does it all. Some might consider this overkill, but with a focus on efficiency, I loathe having numerous apps load at startup and show up in my systray (and use up a bunch of memory). TaskRunner doesn't take up any additional RAM for any functions that you don't use. If you don't need the Email Monitor, or Toolbar, or FTP Client, or even the Task Scheduler, just don't configure them and they won't take up any additional resources.