How I channeled the desire to use my skills for social good into an exciting and eventful career.
As a software engineer, I seek to use my talent for social good. This means that I avoid working for companies or taking on projects that could potentially harm society. I don’t believe in building harmful software because it’s cool or because I have the technical skills to realize the idea. Some may consider my perspective to be career-limiting, but I make a pretty good living doing work that I find meaningful.
In college, I was taught how to be a Computer Scientist. I learned how to build an operating system from scratch, how to define an algorithm’s complexity in terms of Bachmann-Landau (Big O) notation, how to deconstruct a compiler, and how to use the concept of Occam’s razor to break down complex technical problems. I recall reviewing classic case studies of software engineering mishaps like Therac-25 and Ariane 5 and considering them to be cautionary tales from a bygone era of undisciplined software engineering practices. Surely this could never happen in modern-day software engineering where the waterfall approach was meant to mitigate those kinds of issues (I was so naive back then).
The software you create can positively or negatively impact people’s lives. Be thoughtful in your actions.
I recall the very first time I ever truly considered the impact of software on the physical world as if it were only yesterday. It was a cool spring evening and I was sitting in Dr. T’s Data Mining graduate class. Dr. T was a tall, burly Australian with a jovial disposition and a laid-back attitude whose ability to manifest publication-worthy articles out of thin air was astonishing.
On that particular evening, we had spent entirely too much time wrapping our minds around Naive Bayes classifiers and my head was reeling from all the statistics we had discussed. Near the end of class, Dr. T told us a story about a time when he had done a major research project using a Naive Bayes classifier to analyze the data on a particular industry that his team had collected. The results of the analysis indicated that to maximize profits, all the small family-run businesses in the industry should be absorbed by the larger businesses.
Had the recommendations of this classifier been followed blindly without any thought given to the social impact, hundreds of families would have fallen into financial ruin. Dr. T and his team never published their findings and these small businesses were spared. The major takeaway from that day was the software you create can positively or negatively impact people’s lives. Be thoughtful in your actions.
That lesson came back to me a few years later when I was commissioned by a small micro-lending service in my home country of Jamaica to build a simple payment reminder application for customers. This application took advantage of email to SMS gateways1 to send reminder texts to customers who were delinquent in their payments.
While testing a CGI script, I accidentally sent notifications to over 100 real customers. A few hours later, I received a phone call from a very excited (and somewhat flustered) CEO who informed me that at least 70 people had turned up to her office to discuss their loan payment status immediately after receiving the text message.
The upside of this story is that the CEO was delighted that the application produced the desired result. The downside is that many of these people were doing the best they could with what little resources they had and receiving a text message that erroneously told them that they were delinquent in their loan repayments resulted in undue confusion and stress. Dr. T’s lesson came back to me full force that day and I vowed that I would never build another software application without carefully considering the negative impact that the code I wrote would have and identifying ways of mitigating this potential for misuse. That was the moment that defined me as a software engineer.
So, what have you done lately?
By choosing to focus my efforts on building software that positively serves society, I have had some incredible and unique opportunities come my way. I’ve created data modeling tools and visualization tools used by aviation meteorologists around the world. I will never forget the sense of euphoria I felt when I walked into a meteorological office housed inside the airport of a small Caribbean country and saw software that I wrote projected on a large screen television. Nearby, a small group of pilots studied the display intently as they were finalizing their flight plans.
I’ve had the rare opportunity to architect a scalable, high-performance satellite data ingest and visualization platform capable of efficiently processing terabytes of data received from NOAA GOES-R series weather satellites. Several meteorology and emergency management offices in the Caribbean and Latin America purchased this system for a wide range of uses including hurricane monitoring, volcanic ash detection, and Saharan dust tracking. I’ve seen my work products splashed across the official weather services webpages of many different countries and have even seen meteorologists make use of satellite loops generated by software I built in their daily weather forecasts.
I once earned an invitation to the Obama-era White House for volunteer work I did with the University of Chicago Center for Data Science & Public Policy under the Workforce Data Initiative. Some of my original code can be found here.
Today, I am the Vice President of Engineering for Brighthive, a high-growth SaaS startup in the data collaboration space that evolved out of some of the earlier Workforce Data Initiative work. I’m fortunate to have the opportunity to work for a company that is focused on helping networks of organizations increase their impact and value by creating the business, legal and technical framework needed to securely and responsibly link their data. I’m also excited about being able to assemble a diverse team of software engineers who not only believe in the company’s mission but who also share the same values that I do.
What was your defining moment as a software engineer?
Footnotes
-
In the early 2000s when mobile devices weren’t as sophisticated as they are today and platforms like Postscript and Twilio Sendgrid didn’t exist, many mobile providers supported email to SMS gateways that allowed individuals to send text messages to mobile devices via an email address specific to the device and provider (example: 5551234567@mms.att.net). ↩