Ruby Developer in Dallas, TX, United States
Lead Developer2018 - 2019Counterfind.com
Technologies: Ruby on Rails, Go, Postgres, AWS
- Designed a full stack application using Ruby on Rails.
- Designed and implemented an API based for microservice workers using both Ruby on Rails and Go.
- Implemented multi-tenant data storage on a per client basis.
- Developed a cloud-based initiative to move microservices to AWS with communication through queuing systems and data storage through S3.
- Built out classifiers to be trained against previous results to assist in the sorting of future incoming data.
- Responsible for building out a development team consisting of Ruby on Rails stack developers, DevOps, and UI employees.
Lead Developer2017 - 2018Beag.ly
Technologies: Ruby on Rails, React
- Supported development of a Ruby on Rails application integrating payment opportunities in market research surveys.
- Implemented React front-end for highly user customizable survey generation to include different types of questions, conditional responses, and configurable authentication.
- Led a team of developers, delegated work, mentored, and outlined development strategies.
- Implemented a new testing strategy to achieve greater coverage and consistency.
- Provided production support on live issues.
Senior Programmer2017 - 2018Match.com
Technologies: Ruby on Rails, PostgreSQL, Cassandra
- Led development of a new API system for future dating apps using Ruby on Rails and a variety of data storage devices including PostgreSQL, Cassandra, Redis, and S3.
- Mentored developers new to Ruby on Rails, providing prototype microservices to build from as well as doing regular coding reviews and improvement sessions.
- Established security protocols for multi-tenant application, from separation of data to client server authentication and authorization procedures.
- Created a library of gems for use on common tasks in the microservices; seeding a full sample product, a security gem to for transparent enforcement of security standards and a client gem for easy and consistent communication between systems.
- Extensive testing and documentation of the microservices I wrote to be used as guides for the APIs being written by the rest of the team.
Tech Lead2015 - 2017IBM
- Wrote a program to track disease progression based on patient's status and history compared to population norms using Java, Golang, R, and IBM Watson. The results of which will lead to outreach and prevention.
- Maintained multiple legacy products through the acquisition and merger of Phytel into IBM. This included rebranding efforts on the front end as well as security and devops changes required to meet IBM standards and deployment locations.
- Developed a portal for a microservice architecture using Ruby on Rails, Golang, and React to provide a widget based front end with a variety of api back end possibilities, allowing customers to customize their individual product.
- Performed regular code reviews and mentorship for junior developers.
Principal Software Engineer2013 - 2015Intellicentrics.com
- Brought in to lead three teams of developers in the software development process. This included the establishment of development principles; how to use git for source control, a workflow for features into development, testing, acceptance, staging and production, testing procedures, code reviews, coding standards, etc.
- Developed ground breaking platform for credential based systems allowing multiple products to be served through a single platform. This moved customization from developers writing custom code to an onboarding team filling out easy to answer questions online. This was architecture and data design work that would apply anywhere but used PostgreSQL and Ruby on Rails in this case.
- Developed a email, fax, and SMS message delivery system tested for 500,000 users, tested to scale to 5 million users using Golang. This API-backed service provided a way for events to schedule messages to clients or other interested parties for delayed or immediate delivery. A templating system allowed for quick customization for immediate personalized response.
- Developed a fax receiving system (still common in medical), to receive, scan for bar codes, sort, and process a large volume of incoming faxes using Ruby on Rails and Golang.
Senior Programmer2012 - 2013Numerex
- Maintained multiple projects and acted as manager for an off shore team. As features/bugs came in, I delegated work to be completed in house and work to be completed by external vendors.
- Wrote a Ruby on Rails gem to handle the SMS messages received on our projects.
- Created deployment scripts to provide consistent deployments to testing, staging, and production environments.
- Developed the continuous integration tooling to provide testing and approval of code as it is checked in. This was written in Bamboo, with a variety of patch scripts written in Ruby.
Senior Programmer2011 - 2012Zengine
- Developed a graphical timeline to easily view the order of events at a glance, something critical in casualty insurance.
- Created a configurable system for claimants, claims adjusters, inspectors, managers, customer service, and other internal departments to all work on the same claims with the appropriate permissions enforced at all levels.
- Built a data warehousing system to move data from Mongo to PostgreSQL for reporting purposes. Specifically to get around the difficulties of ad hoc queries in Mongo and make use of the flexibility of SQL for the multi-dimensional searches being regularly required by the insurance industry.
- Route66 (Development)https://rubygems.org/gems/route66
This gem can be plugged into a Ruby on Rails app (most useful before 4.0) to discover the routes at run time.
This is particularly useful when thrown into a large project and 'rake routes' takes a long time. Now a user can go to http://<their-project>/route66 to view the routes immediately (since they are already loaded at run time.
- State Lookup from Latitude and Longitude (Development)https://github.com/LanceH/state-lookup
At Numerex we had a recurring problem with fleet management that operators wanted to know what state their trucks were in, possibly for tax purposes.
Map services provide more data than is necessary in a reverse geo lookup (full address). They also take considerably more time when 10's of thousands of lookups may need to be done every minute.
This project solves the problem by breaking down states into triangles and finding which triangle contains the latitude and longitude provided. When used in library form locally it can process thousands of lookups a second.
The major work in this is the breakdown of states into their component triangles; the lookup being fairly straight forward. It has further been optimized to use bounding boxes to limit the search. Additional optimization has proven unnecessary at this time.
- ReliantHeart Remote Monitoring - (at Numerex) (Development)http://reliantheart.com/new-heart-assist-5/heartassistremote-monitoring/
From their description:
"With the HeartAssistRemote™ Monitoring System, HeartAssist5® patients feel more secure about their heart health while enjoying life at home or traveling. The HeartAssist5® Conquest Controller continuously receives data from the HeartAssist5®. The data is transmitted in bursts to a controlled and secure data center. This data can be viewed remotely – helping to avoid unnecessary trips to the hospital. In cases of concern, HeartAssistRemote™ Monitoring provides a head start, allowing for proactive response and possibly better results for the patient. Effective deployment of this exclusive feature should result in better use of the caregiver’s time and the healthcare system’s resources."
This project was done with Ruby on Rails with messaging through the internet with failover to 4g. The monitoring was done on the device itself, providing clinicians and patients with alarms for early warnings or errors such as reduction in battery life.
- Disease Progression Management - IBM (Development)
As part of the Watson Healthcare initiative at IBM, consider regression analysis has been completed to track and predict the advance of disease based upon hundreds of potentials markers (lab results, physical characteristics, activities, etc.)
With the scoring system, this provides clinicians with the opportunity to reach out to those most at risk earlier. Ideally this results in prevention or diversion rather than handling greater disease later.
This project was completed largely in R and Java, with extensive backend analysis using a variety of analytic tools.
- Intellicentrics Sec3ure (Development)https://intellicentrics.com/
Redesigned and implemented a generic question/answer system that allowed all rules/questions/follow-ups to be configured by administrators.
This allows medical facilities to request specific requirements for their numerous types of users (doctors, drug reps, facilities, visitors, etc.)
The credentialing system enforces compliance in response and either facilitates the verification manually by credentialing agents or does it automatically (such as a background check).
This represented a move from custom code written for each type of facility. Now customization was moved to the onboarding team through customization, or even to the client themselves.
- Zengine.com (Development)
Start up company providing auto insurance quoted by the mile. We built a modular casualty insurance company and pivoted that into a software only company.
I developed the claims side of the effort. This included a model of the claim itself - types of damage, counting against which aspect of the insurance policy (think bodily injury vs. vehicle damage). From there the workflow enabled all levels to manage the claim as appropriate, enforcing authorization levels (management may be required to step in above a certain amount), tracking necessary steps (adjustment, legal) all the way through settlement.
Additional work was done to automate meet the state reporting requirements. This involved replicating the claims data stored in a Mongo database into a PostgreSQL database for reporting purposes; largely due to the difficulty in doing ad hoc queries across multiple conditionals in Mongo.
- Multiple System SSO - IBM (Development)
IBM, having acquired multiple healthcare companies in a short amount of time has the problem of integrating multiple clients onto one system.
I designed and implemented a Single Sign On system using Golang to allow clients to have a single identity with their current credentials until they migrate over to IBM client IDs.
FrameworksRuby on Rails (RoR)
StoragePostgreSQL, MySQL, Redis
- Bachelor of Arts degree in Mathematics1988 - 1996Southwestern University - Georgetown, Texas