Working remotely as a systems engineer and developer managing data gathered into a large elasticsearch cluster for reporting and various automation and reporting tasks using technologies like Django, Salt, Node.js, MySQL, Mongo, Snort, and Bro.
Worked remotely as a developer on a secure communications application using several technologies including Django, Android, iOS, Salt, MySQL, Apache, Vagrant, Node.js, Mongo, and Redis.
Working as a lead developer on a variety of products designed to enable managed service providers to remotely support and manage their client networks. I primarily work with Django and Node.js using technologies like Redis, Postgres, Elasticsearch, HAProxy, Docker, and Vagrant in Linux and FreeBSD, with VB.NET and C# on the Windows-side.
Working as a systems engineer for a family-owned business serving a wide variety of clients that need network design, management, and support without the cost of employing a full-time team of staff.
My primary clients include:
Helped run a small web hosting provider involving a handful of Linux servers. Hosted sites for clients, friends, and family. The project was an experiment to test the strengths and automation capabilities of Linux in a production environment.
I volunteered from January 2001 until February of 2005, at which time I was hired on part-time. In September 2005 I was brought on full-time. While on-duty, I responded to 911 requests for assistance aboard an ALS ambulance and/or technical rescue vehicle. Duties included providing patient care, teamwork, critical thinking, problem solving, and respect for the changing command structure on emergency scenes. Helped maintain the services IT systems.
Provided support on an on-call basis to numerous companies and individuals in the Columbia River Gorge area, providing phone, e-mail, and on-site support for a variety of Windows and Linux networks.
I provided buildings and grounds security for a members only resort in addition to checking in/out guests from the park.
I designed and developed web-based applications for customers and for internal use. I designed and maintained the company intranet, including business applications for tracking telephone circuit repair, installation of new services, and interfaces for support personnel to monitor various network device logs relating to customer accounts.
I was regularly tasked with installing and configuring new hosting servers and co-location machines in addition to new employee workstations. I was on-call 24/7 to support critical infrastructure that kept an average of 1,000 users online at any one time.
I have a passion for integration and automation. Saving time reduces costs, reduces errors, and frees people up to take-on new and interesting challenges.
I specialize in network design, and automation for my current employer. I created a solution called "Practice in a Box" that we sell to medical companies to provide routing/firewalling for their remote offices, virtualization for their internal Linux and Windows servers, with on-disk encryption for their patient data as well as encrypted off-site backups, and a wireless network for both staff and guest access. All equipment is remotely monitored and managed. Additionally I build and maintain custom web applications both internally and for clients to track deployments, backups, switch configurations, and other information related to the product. By automating various aspects of the product installation and configuration, I was able to reduce our time-to-deploy from approximately 30 days do approximately 16 hours. Automation and reporting plays a huge role in the deployment to ensure a predictable setup, testing as well as ensuring fixes get rolled out smoothly to all clients.
My activities are mainly unsupervised with occasional meetings with my boss. I am expected to monitor ticket queues and detect/fix problems with minimal input from management and minimal impact to our clients. I am always on-call and the point-of-contact for any low-level network issues involving routing, VLANs, VPNs, troubleshooting various protocol issues, and I also manage the company hosting infrastructure.
For my other employer, I work as a developer on a variety of products designed to enable managed service providers to remotely support and manage their client networks. I primarily work with Django and Node.js using various technologies like Redis, Postgres, Elasticsearch, HAProxy, Docker, and Vagrant in Linux and FreeBSD. On the Windows site, I have to write tools in VB.NET with some C#.
My passion for automation and software development comes from working for Gorge Networks. While I was there I became frustrated with our sign-up process. It consisted of gathering customer information over the phone and then e-mailing it to our billing department. Technicians would sometimes forget a necessary piece of information which would require us to call the customer back. Our billing department would input the information into our billing system, bill the credit card, and then print several copies of a 'new user' report at 5 PM. Users who signed up after 5 PM usually had to wait until the next evening at 5 PM to get started. The 'new user' report would be given to several technicians who would each pick one of several systems on our network (like our mail server, RADIUS server, web hosting server, etc...) and start entering new customer data. The process was fraught with typos.
Customers were told throughout the day to try connecting after 6 PM and to call us back in the morning if there were any problems. Customers who couldn't connect were frustrated, and prone to playing with their settings in an attempt to try to fix the problem. This would usually cause more work for our support staff in the morning.
I spent several months working after-hours to automate the sign-up process, and finally built a set of web forms, and a CD that could be handed out at local stores in our geographic area that would walk customers and our technicians through gathering all the required information. The data would then be validated by our servers, the customer credit card would be automatically charged, and then the scripts would automate creating accounts in all the various systems and databases. Finally, the CD would configure their computer properly and allow them to connect. This would all occur over the span of about 45 seconds.
This new system reduced the number of support calls we received, reduced user frustration, and freed up staff at the end of the day by no longer requiring them to spend time manually entering and verifying account data in multiple disparate systems.
In my spare time I research and develop custom applications for companies, play with new technologies, and I try to better myself and my knowledge of every aspect of IT. When I am not working, I love hanging out with my family, working on my farm, and helping my community.