Thread of Software in my Life
I got my first computer from my mom and dad in 1980. It was a Speak and Spell. I was four years old. It was magic to make a computer speak. I made it say some funny and probably silly things. It had me seeing new possibilities. I didn't have to speak; I could have the Speak and Spell speak for me. It made me feel excited about life in a new way.
Tinkerer and Builder
I was a tinkerer and builder at a young age. I loved to build things, combine things, and make something new. My best friend and I spent every day exercising our creative muscles. We built paper airplanes, made high 8 feature movies, ran a Bulletin Board System (BBS), and learned how to code to make our own video games, battle robots, and more.
Surroundings Matter
I like to think we were lucky to be surrounded by technology at a young age. My mom worked at IBM and Martin Marietta as a software engineer. My dad tinkered with electronics and built computers. My friends' parents worked as an engineer at NASA, a biology professor and an anthropology professor both at UT Austin. We were surrounded by parents who supported our tinkering, learning, and building. My natural desire to tinker and build thrived in this environment. That's an important lesson for me as a parent and as an engineer. I want to create an environment where my kids can thrive. I want to build a culture in my work where people can thrive.
Robot War
My best friend Jon had access to his parents' Apple II. We played Playmaker football, and we played Robot War. I think this program was pivotal in my early desire to learn how to code. I thrived on the competitive nature of building a battle bot. The intellectual process of thinking through permutations of future states somehow pleased my amygdala, and brought about a deep sense of calm I'd never felt before. I was in the zone. I was in the flow. I was a programmer.
We were gifted this copy of Robot War by Mr. Jeffries, a parent, and an engineer at NASA who worked on the Hubble telescope. His son Tom, taught Jon and I how to count in binary. A trip to Tom's house was a unique look into a family deeply involved in technology and science. Tom was building computers, experimenting with electronics, and reading tons of science fiction. His room reflected that. I would describe it as a mix between a medieval dungeon and a science and engineering lab. I remember how proud Tom was of me when I understood how binary works.
We spent hours and hours learning how to code in Robot War. Tom was off doing his own thing, and Jon and I were left to taking turns debugging and improving our robot battle programs.
The syntax was something akin to BASIC
SCAN
AIM + 5 TO AIM ; MOVE GUN
AIM TO RADAR ; SEND RADAR PULSE
LOOP
IF RADAR < 0 GOSUB FIRE ; TEST RADAR
GOTO SCAN
FIRE
0 - RADAR TO SHOT ; FIRE THE GUN
ENDSUB
We iterated on our robot battle programs and learned how to make our robots more effective. It was a fun lesson in procedural code, but also the power of iteration. I distinctly recall when Jon told me my robot was good, and showed respect to my programming skills.
Mac Plus
All this programming was done on an Apple II. My parents saw how much I was learning, and how much I struggled with DOS on the IBM, and remembering all the commands in text only interface at home.
The year Apple released the Mac Plus my mom gave me the best Birthday present ever. I was 11 years old. I was so excited to have my own computer. Previously my brother, dad, and I shared an IBM PC, and I often had to compete with my younger brother for time on the computer. I had dreams of running a BBS of my own, learning how to code, and maybe make something people would love: maybe a robot.
BBS (Bulletin Board System)
In the late 1980s and early 1990s, there was one way to get online. You had to dial directly into someone's home computer modem. People who ran a Bulletin Board System (BBS) might have multiple phone lines, and you would dial into their phone numbers to connect directly to their home computer through their modem. Once connected you would see something like this:
This was a full-text interface, and you would use your keyboard to navigate the menus and interact with the BBS. Even though it was all ASCII, you could still have a lot of fun. You could play games, chat with other users, and you could look at photos: ASCII art. Many BBS's had a section where you could upload and download files.
Jon ran a BBS called the Dark Night. He gave me a role as an administrator, and I was able to learn how to run a BBS. We gave out credits for uploads, and people spent credits for downloads. People uploaded everything from books, photos, and even games. My first naked lady was an ASCII art photo I downloaded from a BBS. I recall watching each line of the photo load. It felt exciting but also a little scary. I was doing something I wasn't supposed to be doing.
To learn more about BBS's check out this documentary: BBS Documentary
World Builder
Many of the games we found on our BBS and others were made with some software called WorldBuilder. It was a game where you could create your own world. You could create a world with anything you can imagine.
Jon and I were running his BBS, and this popular shareware called WorldBuilder was being used to make many bespoke games. Users would upload their homemade games, and we would try them out. WorldBuilder came with a development environment where you could construct your map, scenes, and add scripting to elements in each scene.
We were inspired and we each set out to build our own games, upload them, and maybe get some recognition.
Games made with World BuilderWorld Builder was a game where you could create your own world. You could create a world with anything you can imagine. Think of it like an early metaverse. I spent hours and hours creating worlds. I created a world where I was myself, in my room, and I could adventure into my house, and interact with my family, and then outside the house and interact with my neighborhood and neighbors.
I used the software's scripting engine to build animations and interactions. My game was called Trek Around the Block, after a High-8 video series me and my best friends made. I recall uploading my game, and a day later, hearing feedback from other users asking about me and how I created this game. I was so proud of myself. I was so excited to be recognized for my work.
I was so proud of myself. I was so excited to be recognized...
The Tiny Amazing TI 80
Reflecting back on my Youth, it's amazing how impactful Texas Instruments (TI) has been in my life. The founders of Motorola came out of TI; The Speak and Spell was made by TI. My first job was at Motorola.
In 1991, my first year in High School, my parents bought me a TI 80. I learned that I could write programs on my TI in BASIC. This was a nice transition from Robot War but was completely different from World Builder. I created some simple games on my TI 80, mostly by copying existing code, but I was more interested in learning how to code in C++.
Borland C++
In 1992, my mom fed my desire to learn to really code by buying me a copy of Borland C++. I spent hours and hours trying to understand the manuals that came with the development environment. I studied object-oriented programming and attempted to create my own dummy programs and use OO concepts. This is when I really started thinking about artificial intelligence. I was inspired by the books from Isaac Asimov, and I wanted to create a robot that could think and reason. I wanted to be the next big inventor, a visionary like the characters in his novels.
Neural Networks
In those early 1990s, I set out to program an AI that mimicked the human brain. I thought about the mechanisms of the brain, neurons, and how they are like wires that bend and connect.
I imagined a physical robot brain made of wires that changed shape, and then tried to imagine computer code that mimicked that. I was in over my head, but I was thinking a lot. Most of what I created was a mental model of the human brain, and an imagination of how a computer brain might work. Neural Networks were a budding field of research at the time, but I didn't know that. My friends' parents saw what I was thinking about and planted seeds. They told me about the field of Artificial Intelligence, and that I should study it.
University of Texas at Austin
I scored high on my SAT, 99th percentile, and was ranked in the top 5 in my class at Austin High School. I was accepted to the University of Texas, School of Engineering, within two weeks of submitting my application. I guess I am sort of legacy there: both my parents attended UT Austin, and my mom even studied computer science. I entered UT Austin, studying for a Major in Electrical Engineering and a Minor in Microcontrollers and Control Systems. My time there was magical. I recall the grungy Cockrell School of Engineering campus, the smell of the old buildings, and the bathroom tile like exterior. In the basement
The UT ECE Building was really run down, but it had a sort of charm to it. My fondest memories are in the computer lab, where dozens of Sun workstations were available for students to use. I spent hours and hours in that lab, programming behavioral programs, VHDL, and more.
The Electronics Lab
The other room I spent a lot of time in was the electronic lab. I was able to take several labs. In the electronic lab, I gained extensive experience in practical electronics. My work involved building amplifiers and motor controllers, and programming microcontrollers in assembly language. Skills developed included system bootstrapping, microcontroller programming, and circuit debugging using tools like logic analyzers, oscilloscopes, and function generators. I also honed my abilities in soldering, reading circuit diagrams, using breadboards, and employing multimeters for circuit analysis.
The plethora of Integrated Chips, MOSFETs, BJTs, wires, breadboards, and equipment really opened up my mind to more than just computers. 555 Timers were a staple of my time there. I was able to see how computers could be used to control the physical world. I was able to see how powerful analog electronics could be.
Graduate Classes
I think the classes I excelled the most in where classes that combined microcontrollers and algorithms. I took several classes on Microcontroller applications. Professor Robert Flake taught a class on Microcontrollers and discrete systems design. I learned how to create digital control systems. Professor Flake liked my questions in class. It was probably the most fascinating class I attended. He invited me to take a graduate class after that, where I learned about Z-Transforms and Laplace Transforms. I was able to apply my knowledge of microcontrollers to building control systems.
Closing the Digital Loop: From my first computer to my first job
My Senior project was to create a digital multimeter from scratch using a 68HC11. I designed the circuit board and wrote assembly code to control the microcontroller. I learned how to use a logic analyzer to debug my circuit board and used my education to calculate circuit node voltages to debug my circuit.
My teammate and I pulled more than a few all-nighters debugging two thousand lines of assembly code, and we were able to get our multimeter working and beat the target specifications. When I presented that project to my evaluators, one of them took notice.
Project Reviewer of my MCU Project, invented the MCU & the Speak and Spell
He was one of the engineers responsible for creating the modern microcontroller, Gary Boone. He helped me get my first job, at Motorola in south Austin as an 8-bit microcontroller applications engineer.
It turns out the creator of the Speak and Spell that inspired me when I was just four years old, was the same person who reviewed my Senior Project, and the one who put in a "good word" at Motorola, which helped me get my first job. What an incredibly small world it was.
Motorola Microntroller Division
I spent two years working at Motorola as an Applications Engineer supporting the Americas as the technical authority on the entire line of 8-bit microcontrollers. I was responsible for helping customers design their products and troubleshoot their designs. One of my favorite moments was when the team responsible for the Dodge Viper called me to understand one of the features on an 8-bit controller they were using.
I was also responsible for creating and delivering training courses on how to use the microcontrollers. In 2002, Motorola spun off their semiconductor business into a new company called Freescale. I was offered a position at the new company, but I declined and decided to pursue a career in robotics.
GDRS - Fully Autonomous Robotic Vehicles
In 2002, I joined a recently acquired robotics company called Robotic Systems. I packed up my meager belongings into the back of my Mustang GT, and I drove halfway across the country from Austin to Westminster Maryland. General Dynamics had acquired Robotic Systems to roboticize their fleet of heavy military equipment.
I was hired as a software engineer to help create the software to connect and translate a beamforming millimeter-wave radar signal into a 3D point cloud. Most of the senior engineering staff thought it impossible or infeasible, given the tight timings and limited computing horsepower available in the onboard Motorola blade computers.
My boss, Jay, a doer with a show-me attitude, believed it could be done. He hired me to do the work and mentored me by suggesting paths to success that would show the way through experimentation. He partnered me with a Ph.D. in computer vision, a machinist, and an electrician.
Success Beyond Expectations
With Jay's guidance and the help of my peers, we somehow made it work. I worked every day of the week, even taking home my CRT monitor and Dell Workstation on the weekends in the back seat of my Mustang GT. I learned about voxels, Kalman Filters, window filters, linked lists, doubly linked lists, and radar technology.
I was able to apply my software experience and skills and my aptitude for rapid on-the-job learning to create a software system that integrated real-time radar data with a 3D visualization system. I integrated that system into a military vehicle and implemented a curb detection algorithm and a vehicle following algorithm. I was able to demonstrate the system to the Army General at demonstration day in Pennsylvania. I was proud of my work, and I was proud of my team.
The DEMO III program successfully participated in a Battle Lab Warfighting Experiment conducted by the Mounted Maneuver Battlespace Laboratory at Ft. Knox, KY. Troops from the 1/16th CAV robotically operated two XUV's for seven days and nights. The XUV was autonomously maneuvered on roads and cross-country routes. These routes frequently passed through tough obstacles such as trees, brush, water, mud holes, and other difficult terrain. The XUV routinely adjusted its course to successfully negotiate these obstacles with little supervision from the soldiers. The DEMO III program continued to refine its capabilities to detect and maneuver around obstacles while increasing speed in FY01. The program conducted a military exercise at Indiantown Gap, PA in October 2001 using four XUV's. Starting in FY 01, the JRP will combine its funding of DEMO III with funding from the Army. The Army Research Laboratory will continue to manage the program from Aberdeen Proving Ground, MD.
NIST helped develop the mobility controller for the experimental UGVs used in the experiments. The Demo III XUV successfully navigated many kiloments of difficult off-road terrain with only high-level mission commands provided by an operator from a remote location. The Demo III team including the ARL, General Dynamics Robot Systems (GDRS), a nd NIST demonstrated an XUV for Secretary White on May 30, 2002. The XUV was controlled by an implementation of RCS that was co-developed by NIST and GDRS.
Law School
Around that time, I was incredibly burnt out. I had been working seven days a week for one and a half years straight. I was feeling pressure to be more, to move higher, and to develop a sense of higher purpose. I considered going back to school for a Master's or Ph.D. in engineering. I considered the tradeoffs of specializing too early in my career. I decided to generalize to open up more possibilities. I decided to go to law school.
The first time I took a practice LSAT, I scored a 151. I studied for six months and took the LSAT again, scoring a 171. I was accepted to several law schools. I decided on Ave Maria Law for the unique combination of a full scholarship and a focus on ethics, with a stellar staff of professors and advisors on the Supreme Court of the United States. While there, I helped found the intellectual property law society, and I was the president of the society for one year. I was also a member of the patent law moot court team and the patent clinic. I graduated with a full academic scholarship. However, after law school, my interest in law never materialized into a career. I decided to return to my roots in software engineering.
China and Teaching Law
After law school, I was offered a position teaching law at a university in China. I accepted the position and moved to Yantai China, where I spent a year teaching law in English to undergrads. I taught classes on American Law, American perspectives on international law. In my free time, I built a PC and learned how to build software in a metaverse called Second Life. I built a virtual robotic sentry, designed to patrol virtual land in search of intruders, and track, even shoot them. I was inspired by Star Wars films and the robots of the Clone Wars. That led me to build an integration between the virtual world of Second Life and the real world of the internet. I created a website to monitor the detections of the virtual sentry and see a map of intruders in real time.
After a year teaching in China, I realized this was not my calling, and I returned to the US. I decided to pursue a career in web development.
RateGenius / FinanceGenius
I was offered a job as the sole software engineer at rateGenius. It was an online auto refinancing platform that had recently lost its entire software team to a new startup. I was hired to restore the systems to working order, build new features, and hire a team of engineers. I was able to do that, and rateGenius grew into two business lines: consumer auto refinancing and a B2B auto refinancing platform, or Loan Operating System (LOS).
I started out by fixing a laundry list of issues facing RateGenius, the consumer facing auto refinancing platform. The biggest issue at the time was that the company was $30k behind on their bill at the colocation datacenter. We were not allowed to physically access the servers until we paid the bill. In addition our MySQL database server was nearing 80% of disk capacity, and struggling to keep up with replication.
SliceDB - One Piece at a Time
I was able to fix the issues, and keep it running, but I knew it wouldn't last much longer. I was able to convince the CEO to move to AWS. I wrote a custom program to reconstruct the relations of the database tables (The original design did not use foreign keys), and I had to find a way to programmatically migrate the data from the old database to the new database. I create a tool to help me, and called it SliceDB. I open sourced it here:
https://github.com/bpanahij/sliceDB
Using SliceDB, I took a page from Johnny Cash's book, and I migrated the data one slice at a time. The Database was 80 Gigabytes. SliceDB allowed me to grab any record in any table and export every related table needed for that record to function in a replica system on AWS. Surprise, surprise, the co-location facility had a limit on the data we could transfer, and rather than stop us, they just charged us for the overage!!! I believe the bill for transferring 80 GB of data was around $25,000!!! My boss laughed when he found out. He and I went to discuss it with them. We were able to negotiate it down to the actual cost from the provider, which was a significantly smaller sum... but still expensive. However, now that our primary platform was unshackled from physical hardware, we could properly scale our systems for best performance. The rest was up and to the right.
Creating a Testing System
With SliceDB I could export a single user and every record needed to recreate that user in a new database. It was a powerful tool. I used it to create a testing system. I could export a user, and then import that user into a new system after scrubbing PI. It allowed me to create a system that could be used to test new features and bug fixes.
In Web Speed is Your Friend
After migrating the entire DB to AWS, and spinning up a new stack on EC2, I was able to start testing new features, and I had the ability to create a beta/testing system where I could try out those new features on a subset of users. Within a few months the six seconds to interactive on the RateGenius website was under a second. I also found a bug in our snail-mail marketing system that was sending out mailers to people outside the band of credit scores we wanted to target. I was able to fix that bug, and within a few months the company went from losing money to profitability.
I was the lead (and only) engineer on consumer platform, and the LOS. I had done something amazing! My boss, Brian Jones convinced the boss to let me hire some engineers. I hired two quickly. I implemented a daily stand-up, after the CEO Chris Brown mentioned his nephew had read a book about Agile and Scrum.
Ruffling Feathers
When I told the CEO about the marketing bug, he was furious. His suspicion was that the disgruntled former engineers had intentionally left a bug. The marketing manager was also furious, and accused me of lying. I had implemented git to keep track of changes, and I was able to show the exact commit where I found a less than sign, and changed it to a greater than. After that, the CEO (who was not tech savvy!) was conflicted.
Chris and the board hired a consultant to audit the codebase. The consultant was a CTO of an answer site in the Bay Area. He was a friend of the Board. After two weeks of digging around, he found something unexpected. I had done an incredible job of fixing the codebase. He told the board and the CEO to give me a big raise, and a promotion to CTO. They declined, and told him to "Not tell Johnson". He told me anyway.
He told me to go to Silicon Valley, where I would make a killing. He said that companies out there treat their talend differently. They respect engineers, and they pay really well. I was excited. I had been dreaming of San Francisco since I first visited in 1989, again in 1994, and then again in 2003. Every time I visited I felt like I was in heaven: a sweet air-conditioned dream world where everyone was smart, and everyone was building something new and exciting.
I spoke with my boss, Brian Jones (How similar our names are) and he set out to convince them to give me a raise and consider me for Head of Engineering. Eventually he succeeded, just as the board had found a candidate for CTO. Brian gave me the option to take the CTO position myself.
I had started interviewing for positions all over the US. When I read the resume of their CTO candidate, I was impressed. I decided that maybe this was a good time to make a career move. We hired the CTO, and I helped bring him up to speed on everything. When after a few months he felt comfortable, I left to pursue a career in San Francisco.
Moving to San Francisco
In 2012, I had the opportunity to join the founding team of a new startup, in San Francisco! A two-person startup called Billy's Billing, a Danish company making a move in San Francisco.
With a stellar recommendation the Silicon Valley CTO, I was hired to help Billy's to build a US presence. I was the first US employee and was responsible for collaborating with the CTO on a number of projects and features he was currently juggling. We were working in office at Rocketspace (a co-working space / incubator in San Francisco), alongside many other startups.
One of those startups was called WeblishPal. The CEO and Founder was Barb Tassa, a hard-working Canadian entrepreneur. She and I hit it off immediately, and we started dating. We were married in 2014, and now we have two children, and made our home in San Francisco.
After just six months with Billy's Billing, I was offered a position at Trulia. I had my girl, and a shiny new job at hot internet startup. I was living the dream.
Trulia - The Best Job Ever
I was hired as a Software Engineer and started immediately working on a new revenue line: Real Estate Agents wanted to advertise and capture leads on Trulia.com. I helped build the realtor lead generation platform, the Agent zip-code based impression advertising purchase flow, and built a new bulling system to handle the complex subscription pricing models, which changed with the number of impressions. This revenue stream would become responsible for 90+% of Trulia's revenue.
Zillow - Acquired and Retained
In 2015, while I was on vacation in Portugal with my wife, I received an email that Zillow had acquired Trulia, and I was being offered a retention package to stay on board for at least a year.
I excitedly accepted this offer and returned from vacation to continue to work at Zillow, where I stayed for another year and a half. I was able to work on a number of projects, including the project to integrate the Trulia lead generation platform into the Zillow platform. I was also able to work on several company-wide initiatives around code quality, CI/CD, and adopting newer technologies.
Side Hustles - How to get better
I realized to become a better engineer, I would need to not only perform well at work, but to stay up to date, I'd have to have some side hustles. I started a few side hustles, including a platform to help international students, helping a homeless ex-military veteran learn to code, teaching a coding class, and competing in several hackathons.
Teaching a Homeless Veteran to Code
I had been inspired by a story out of New York. A professional engineer was teaching a homeless man to code in hopes of transforming his life. I was volunteering at a local homeless training facility, and so I pitched the idea to Marc Roth, the founder of The Learning Shelter. He loved the idea, and we were able to find a homeless veteran who was interested in learning to code.
I reached out to my network and was able to raise some money to buy him a laptop, and I started teaching him to code.
Side Hustle - PassportEDU
My wife had an idea for a platform to facilitate international students to find and apply to admissions at US Universities. We rented out a space in the Twitter building and spent our nights and weekends building a new platform. We traveled to visit universities and pitched our platform to admissions officers.
We were able to get around twelve universities to sign up and pay a few hundred a month to use our platform. That was an incredible learning experience as I made all the technical decisions and built the platform from scratch. We gave up on PassportEDU when it became apparent that the long sales cycles of most Universities would make this a long journey.
Side Hustle - Teaching Beginners How to Code
I decided the best way to learn to be a better leader was to teach others. I started a meetup group called
Learn to Code (for beginners of all kinds).
My meetup group and coding lessons were popular. The initial session had over 40 in attendance. My students gave me some incredible feedback, and I learned how to mentor junior engineers.
Side Hustle - Hackathons
It was around that time that Barb was learning to code, and we took the opportunity to attend a few hackathons. We entered several, including Launch, Tech Crunch, and Angel Hack. We won prizes at several of them, including a $3500 Drone at Launch.
Launch
We built something called Respondl, it was a platform that let customers on a website chat with a real person. We set up a micro-payments system to pay the person on the other end of the chat, and we used RingCentral to connect the users in real-time through programmable telephony.
Angel Hack
In another Hackathon we built a system that helped write better sales emails by looking up User information available from social media, using a platform called Arc. We won a prize for that too.
Tech Crunch
Finally, we competed at Tech Crunch, with an AI theme, where IBM Watson, Amazon Alexa, among others we're hosting. We built a grocery list app that used Amazon Alexa to add items to a list, and then made that list available via SMS. We won a prize for that one as well.
Lead Engineer Earnest
In early 2016, I was offered a lead engineer position at Earnest, a financial technology startup in San Francisco. My experience at Zillow, but also the success at Hackathons and PassportEDU gave me tons to brag about. I was hired as an Engineering Lead to build out a new team of engineers to support the Earnest internal tooling and platform. I hired four engineers, and we built a new platform to support the Earnest loan origination system.
By the end of 2016, Earnest laid off many of the engineering and product teams. I put myself on Hired.com, and was interviewing at 16 different companies, and even had a few offers within weeks.
Boomerang at Zillow
When I met a former coworker for lunch, and happened to see a former manager at Zillow, Tim Correa. Tim was a natural leader, and one of the kindest most empathetic people I've ever met. I was offered a position back at Zillow.
After some candid discussions about specific challenges at Zillow, I was hired as a Senior Software Engineer with the specific task of leading an effort to build a new platform to replace the aging Trulia lead generation platform. I was able to put together a small team of engineers, and we built a new platform from scratch, slowly replacing the old platform from the inside out. The new platform was designed to overcome limitations of the old platform and to support new features and products.
That was a success, and it led to my next opportunity: forming a nine-engineer team in charge of building a robust set of features for the new Realtor CRM. It was an exciting time, and we introduced, or played a major role in introducing, several new technologies and products to Zillow Premier Agents.
Aerbits
In 2022, after nearly a decade working at Trulia and Zillow, I decided to leave and start my own company. I had been teaching myself about AI and Machine Learning, and I was inspired to create a new product that would leverage those powerful new technologies to solve a real and pressing problem. The tragic illegal dumping epidemic in the US was a personal pain of mine; it was at my doorstep in the southeastern side of San Francisco.
Inspiration Close to Home
I was tired of fed up with trash, walking around, over, and through piles of trash. That's when I decided to create Aerbits, a company dedicated to eradicating illegal dumping by using AI and Machine Learning to identify and report illegal dumping in real time, persistently, and accurately. I spent one and a half years in parallel, building, testing, iterating, selling, presenting, and pitching Aerbits. I was able to get some news coverage and also verbal commitments from several cities to do a pilot. However, I was unable to secure funding or revenue fast enough to support my lifestyle, and I decided to return to work as a software engineer.
So Here we Are
Today, I'm in the market for a new job. I'm looking for a company that is doing something meaningful and is using AI and Machine Learning to solve real problems. I'm looking for a company that is building a culture of action and has a vision for a future where we can all thrive