A little about Me
Welcome to my little slice of the internet pie. My name is Josh Stephens and I was originally an ops engineer. I went to college to learn about networking, computers operating systems, and hardware. Over the course of time I tinkered with building software and decided become a full time developer. Below is a recount of my tale as I progressed. You will also find quick helpful articles on my new discoveries as a software developer. Everything from language specific stuff to data structures and algorithms to operating systems. If it can go beep and boop then chances are I will write something about it.
A kid and his electronics
As a kid I always enjoyed tinkering, from woodworking to messing electronics. Some of my fondest memories was (according to my dad) was feeding the vcr peanut butter and jelly sandwiches. I mean they eat vhs tapes so why not right? During my high school adventure I happened to discover that my school had an electricity and electronics course that ended with computer hardware. After taking those classes I was hooked.
There and back again, a college tale
Most teen's hate going to college. I was different. I wanted to zip through it and get started with my career. The funny thing was I had to argue and debate with my family to let me go to my college of choice. That was mostly due to my college being a business college. Think more along the lines of a trade school. All my technical classes had to use approved microsoft course ware. It was fun and I was able to graduate in a year and a half with an associates degree.
Lights, Camera, Gamble
I hit it big. After my college debut it was time to show my skills off. This was my start of what would later be my obsession Unix!!! I was brought in at 20 years of age which meant I could only work on any system not connected to gaming. That didn't stop me though. My first project was migration of NT to Windows 2003.
This project would surely push my skills and knowledge to the limits. It was also a success. The only issue was the 300 workstations that had their DNS pointed to the outside world and that nasty
The Trust between this workstation and the primary domain has failed.
Shortly after that I was asked if I wanted to be the full maintainer of an AIX system. This machine was the brain of the whole casino and it was now under this wet behind the ears windows kid's control. That didn't stop me though. I poured through the documentation learning everything I could, until I learned about shell scripting. My life had changed.
I started to automate everything I could. Each morning when I came, I had the gaming system print out a quick summary report on its health, disk space, memory, swap oh my. Taking this a step forward I learned vbscript so that I could automate the the gathering of windows resource information and placing it inside of an excel file. This neted me an average of 2 hours a day to do anything other than this boring task that had now been automated.
On the Road Again
My wife decided she wanted to become a lawyer, when I said ok what does that ential, her anwser was to move. Where did we move you ask? Why Detroit thats where. This led me to search for a new company since I was moving and remote work was not a thing yet. Enter Dynamic Edge, a spunky young consulting firm.
This job was a big step in my career. I was around many talented engineers. We like to discuss shop all the while battling inside of quake 3 arena.
I learned many cool things while at DE. The biggest being customer support. I learned from this company how to interact with customer, respond to them in a timely manner. Most of all treat them like family. I also learned many new unix techniques and learned that windows was not my thing.
Lets step back and touch a little more on one thing and that is talking with customers. At one point DE decided to build a Nashville office and I was one of the first people to come down and help build up our client base. I got to put on my sales person hat and learn how to swing a golf club and sale our services all in one go.
However all good things must end. Around 2009 I had people approaching me about other opportunities. Most of them I blew off because I wasn't looking. However one did. It was the convergance of a phone and networking company and I was going to get to head that up.
Ring, Ring, Ring
Enter Globalink Solutions. Here I was at a new company that was supposed to be a joint venture. It was also in an interesting field that I knew very little about, except this is where networking's root came from, the mighty phone system / pbx.
Here I learned a great many things about phone systems, pbx's, telco, and dealing with dreaded service providers. Something that I soon grew to regreat. This industry was a tough one. Customer Service in this industry was horrible. The providers knew you needed them and there wasn't much you could do.
Sadly I didn't last long in this industry. I enjoyed helping people and clearly this industry was not. If you are a phone person I am sorry for being brutally honest. But I came to resent this industry and decided the phone industry was not for me.
Ah the sounds of sirens, the rush to help save lives
After my stint in the phone industry I wanted to do something with meaning. Something where I am helping people even if it is indirectly. This is where Nashville hospital comes in. It was a goverment ran hospital with read tape that could circle the earth countless times. However that didn't bother me.
Working for a hospital was really fun and interesting. I got to witness the an entire industry move and change. Especially around ICD 9 to ICD 10 codes. I was on the unix team but I still had to manage a few windows servers. We had AIX, RHEL, and even an HP-UX machine. We had databases, sql server, oracle, and even a tiny db called mumps (such a funny name).
My role was simple, maintain all these systems. Well I carried my duties out but something started to emerge. It was that itch to build again. The urge to automate the boring tasks so that I can get on with my day. It started with building scripts to automate the setup of printers to help our small group of pc support people. The word started to spread that I could do some development.
Enter my role as unofficial developer / systems engineer. First I started by writing my favorite tool. A simple dashboard that operated like a queue. It was designed solely for tracking where people where in the registration desk. It was so simple but the impact was powerful. It was reducing wait times by 20 to 30 minutes on average per person.
Did we stop there? Of course not. Next was HIM (Health Information Management) asking we could build a card catalog so that their team wouldn't have to search through hundreds of disks to locate information. So I took it on. This one was an interesting project because I had to build it into phases. I first had to use a vbscript to walk the cd structure and pull all the files off the disk and then upload them to a site. Then I built them a frontend interface so they could easily search and locate what they needed. While I never ventured to find how much time we saved, I did enrich the ones that used it and they were thankful for it.
With all this development goodness you would think I would never leave. Well unfortunately there is one downside to working in an environment that never stops. That downside is on call, and burn out. After about 3 years I was burning out. It especially came out when our team had to move a whole datacenter. It was time to find something else.
The battle for Small Businesses
I love small businesses. The personal interactions. The direct affect of helping a family out versus the giant corporations. So when I had a chance to work for the company that was the voice for small business it was a no brainer.
I was the systems architect. I would build systems that interact. I would design the automation that would help shutdown our datacenters during power outages. I even got learn aobut networking and firewalls. Things where pretty good except having to deal with windows servers. We had very little linux at NFIB and what we did have was so old Red Hat wouldn't touch it with a 10 foot pole.
It was about this time that devops and cloud was coming on the scene. Finally I got a real name for what I have been doing all along. Development and ops tasks combined. Making the job of everyone around simpler. Some of the coolest things I did was at NFIB.
The biggest thing was that I learned about python. Little did I know how much I would love this awesome language. For now it served a purpose. I could automate the shutdown of windows and linux servers with one language. You see, we had this issue with our location where the power just refused to stay up. No matter how much I yelled or threatened the power it just wouldn't listen. We needed a way to shut down our servers in stages. This is where the python script shined. You could give it a flag and it knew which servers to shutdown based on the level you gave it. Worked great as we found out when a support person accidentally ran level 3 and we started getting calls about web sites not working.
I also learned that I might have some programming chops. Some of the developers would ask for help around scripting issues and I becamne the go to person. However I still felt even with the devops term, I wanted to be a developer. It became apparent at this time. I noticed that development was all I wanted to do. All day every day. The only way I was going to do that was by finding someone that was going to give me a shot.
State Boards, and CPA's
NASBA, your gateway to all things cpa. I came to nasba after nfib with a goal in mind. They are a php shop and I know php. So I might be able to move over to development at the right time. Until then I will remain on the operations side.
Nasba was interesting, not because of the tech, but because of the individuals. We had a security guy that would hear things and have us go implement those things without stopping to wonder if those really affected us in any ways. However it was a chance to learn how to deal with difficult people.
To help with security, we started to introduce puppet. This was my first foray into configuration management. I must say it was awesome. I loved how I could treat my systems as code, any changes to files would be overwritten, it gave me a sense of security knowing that any changes done would be corrected.
While blissfully doing my job, I started talking about development work with a Senior developer at the time. He poked and proded asking questions like why development? and what did I enjoy about development that I wasn't getting from operations. Little did I know this was going to be my big break.
The battle of a life time
Addiction is a thing that often seems to not be taken seriously in our country. Alcohol, to drugs, things and spiral out of control if not kept in check. Your phsycial and spritual side can all play a part in this. Addiction is something that runs in my family.
It wasn't long after me confessing my enjoyment of development to the Senior at Nasba before I got my knock of opportunity. The senior at Nasba had moved on to Sperahealth where he became CTO. He knew I wanted to be a developer and knew my passion for fighting addiction. So what better person could he find then me.
It was my first developer job, that had two of my favorite tech; flask and python. I became the backend developer for Spera. I was creating the API that would help combat addiction. I remember starting out like a worried wort. Wondering if I had made a mistake. Would I be able to meet expectations.
I built my first api. Then my second, soon I was moving right along. I even got to try my hand at a new tech called React. I not only was now responsible for the backend but I was soon responsible for the dashboard that would talk with this backend. I was soon even building chat systems and even deploying software via jenkins and building run jobs. My favorite thing was reduction and refactoring code. As much as I disagreed with the security guy at Nasba I did learn quite a few things.
Time was moving fast. a day became a week. a week soon became a month. a month became a year. We where closing clients. Not big clients, but clients none the less. It was about to be my second year with Spera. I got a email about meeting up for coffee with the owners. My heart was racing. I was worried that I did something wrong.
I walked into the coffee shop nervously. I didn't know what to expect. The owner asked if I would like some coffee to which I said yes. I take my coffee after it was done and we sat down. We first started talking about all we accomplished. My confusion started to sit in. Was I in trouble, was I getting promoted? I soon found out. They uttered the words that I no one wants to hear. We have to let you go. I sat their quiet for a minute. Trying to figure out what happened.
One of the owners pipes up. Unfortunately we can't afford to keep you on anymore. We have lost funding and the big client that we are holding out for is not getting back to us. We can keep you on until Aug 7, 2018 but after that you will need to work somewhere else. I was panicing. Would I be able to go anywhere else? Was I good enough? Will I have to go back to ops, something that I just didn't want to do.
Lets build a bright future
I did the only thing I knew to do. I reached out to a few people I trust. While sitting in the meeting with the owners of Spera I started messaging a few people. I am not sure what happened but I started getting instructions that I followed. I posted into the nash dev python channel. At first I got a few people that said
man that sucks. Then it hit. One person, then two then three people said send me your resume. It came in a fury. I was in tears for joy. A community had rallied around a person down on their luck. Something that I will never, ever forget.
I started interviewing with a few places. Things progressed rapidly. So much so that I needed to keep a full schedule of times and dates and places that I had to be. One the the places that reached out is Built technologies. I had heard about built. They were talked about around town. They were one of the places to be. So I sent my resume to an individual that has been like another mentor to me.
It was about this time that I got a call back from another place. They wanted to hire me. I was happy that I was able to find something new in less than a week. However I questioned if I was going to accept something that I wasn't truly satisifed with. Just then I got the call. The directory of engineering reached out. I told him what had happened and I told him I wanted to work for built if I ever got the opportunity. He asked, if I can make some calls would you be able to do a full day interview. Happily I said yes. I was excited. Too excited to tell you the truth.
The next day I had my interview with everyone. It went really well. I was really excited. However I had to make the call for the previous company. I hadn't recieved anything from built but I couldn't let them hang any longer. I reached out on a limb and told the previous company that I appreciate everything but I think I am going to keep looking. Then no sooner than 30 minutes after I got the call. I was extended an offer and as they say the rest is history.
If you read up to this point I want to say thanks. I am not a good story teller but I wanted to finally write down my story. I wanted it in all its glory with little to no editing. I wanted it unfiltered. If you are on a journey from ops to developer or developer to ops I hope my story gives you confidence that you can do it. However don't do it alone. Find a mentor. I know I did, well I found quite a few, and they helped me along this Journey.
To call those people out for the help I want to say thanks to
- Devyn Cunningham for taking a chance on me.
- Bill Israel for helping me get back on my feet and giving me great advice.
- Jason Myers for opening a door for me and showing me another side to development.
- Scot Clausing for getting those interviews together in one day and making it happen.
- To the whole python dev community. They lifted my spirits and carried me through this rough time.