hi, I’m morgan. A believer in empathy driven development.
Empathy driven development is an idea that software should be written with the people who will be using it in mind. Traditional UX (User eXperience) tells us we should design with the user in mind. All too frequently the reality of this is driven by ‘conversions’ or the business ’needs’ of making it as easy as possible for the consumer to hit BUY. Empathy on the other hand says software development should focus on the users actual wants and needs. Additionally traditional development says little about the other users of the software. The people you work with, the people who will work on this software in the future, even your future self.
Recent Career Highlights⌗
As I have been a professional programmer since 1999 I’ve worked as many jobs as variation between them. As a result, many are not worth mentioning. Here’s the work I’m most proud of in the last decade.
Etheric Networks
Senior Engineer, Web Technologies and Developer
Operations
May 2020 - Nov 2022
As a long time customer of Etheric Networks I was extremely excited to not only see the inner working of a regional scale wISP, but for the opportunity to work towards bringing better service to other users. My primary responsibility was to take over development of Etheric’s internal customer support and network management software, which had been abandoned by it’s previous maintainer and left to an already overworked developer. Along the way I fell into a de facto DevOps roll.
- Implemented version control best practices, maintain self-hosted
GitLab
, setupContinuous Integration
,Continuous Deployment
and version rollback support. Tools the team had little to no experience with and allowed for far more rapid development. - From the work above I laid out the teams first development road maps tracked
with
GitLab
Issues and Board. - I made the decision to not rewrite. All too often when taking over projects a
programmers first reaction is burn it down and start over, I’ve done it many
times. I’ve also learned this is a tricky proposition, particularly when many of
the needs are not clearly understood. Instead we propped the original
web2py
application with the help of the workflow improvements and set in place a transition plan to a newerDjango
based framework. - Created new
Django
application based on theDjango REST framework
to assist in the transition offweb2py
. By usingREST
the old application could make calls into new, easier to maintain code. This will eventually lead to aJavaScript
based front end utilizing the sameRESTful
interface.
Chabot Space and Science Center
Lead Exhibit Fabricator
Nov 2016 - Mar 2022
For a tinkerer like myself, working in a science museum was a dream. I came to Chabot after a small volunteer period to assist in designing, fabricating, training on and opening the museums new open ended, hands on initiative; Project Create.
With a scant budget and minimal timeline, our team of two created the museums most impactful exhibit in a decade. Before COVID-19 brought this all to a halt I had helped launch 3 exhibits, worked with volunteers to bring their science demonstrations to the public and taught dozens of high school volunteers basic shop.
Tenon.io
NodeJS Backend Developer
Nov 2014 - August 2017
Microservices, microservices, microservices!
Tenon.io was a startup focusing on website accessibility, think the w3c validator for accessibility. As a contractor over several years I worked to revamp their slow and buggy PHP based engine into a lean, scalable, highly testable multipart NodeJS system. The system I build was distributed from the start, using a combination of Redis and AMPQ to seamlessly pass jobs off to worker systems, allowing for fault tolerance, dynamic scaling and per customer load limits. Various parts of the system consisted of crawlers, content fetchers and analysis workers, all tied to work queues. This approach not only was more scalable moving forward but allowed us to keep the old analysis engine (PHP) in place, as it wasn’t the bottle neck and put off rewriting.
say hi.