Transitory periods are perfect times at which to reflect on where you’ve come from, where you are, and where you’re headed.
Learning the Web
In 7th and 8th grade, I got interested in web development. A friend named Matt Cotter created some awesome graphics and web sites. I immediately imagined making a site to host my writings and be the home for my online presence. At the time, I went by the pseudonym Aaxiler (uh-zay-ler). Matt taught me the basics of HTML while we rode the bus, and later gave me an intro to creating graphics. That’s what started it all.
In the beginning, I used FrontPage to learn what a web site was. I mashed up templates and construction gifs and fonts and colors and sizes and got a little website for my writings put together. I wonder if I still have these pages? They’d make your eyes bleed, but I had a lot of fun creating them. The WYSIWYG aspect really helped learn the basics. Table-based layouts were, of course, the way to go.
As I became more familiar with the web, I created other sites. Realm of Aaxiler was pretty important for me. It was the second incarnation of my writing and online profile. I played around with a pirated version of Photoshop and learned about graphic design. I used Macromedia’s Dreamweaver and Fireworks too. I would post journal entries called Chronicles with some regularity. I learned what it was like to maintain one large file for all these posts. I even hosted it for free on Angelfire. That was glorious. Netscape Navigator was one of the coolest browsers out there. IE sux!
In high school, I took a web design class, where we used FrontPage to kick so much ass. I didn’t learn a bunch of new stuff there, but it reinforced what I already knew. At some point, I pictured myself growing up to be a CGI programmer. CGI programming was the only thing I’d heard of that allowed people to make dynamic websites, like what I wanted for my writings. It also seemed a good way to create text-based, adventure game sites, which also interested me. To this day, I’ve not actually done any CGI programming, but it was a good goal to work toward anyway.
I kept on learning. I made sure my XHTML was compliant. I learned CSS. I looked into what kind of programming languages I could learn to make those dynamic sites I was so curious about. PHP won out because it was free. Free was very important. My time was free, but hosting or servers could be expensive. I could write PHP on my computer, use a free FTP client to upload the files to a cheap, little, web server, and run the site from there. That was a hell of a deal. I want to thank my parents for footing the bill for my programming!
Toward the end of high school, Realm of Aaxiler fell into disrepair. But, as I learned more about PHP, I built this new site called Scrawlpoint. I built it from the ground up before I knew of anything like web frameworks. HTML, PHP, CSS, and SQL all lived in the same files. I’d not yet heard of concepts like models, views, and controllers. Whatever, it got things done. I learned a lot. Around this time, creating websites clicked more with me.
This was all fueled by my love for writing and wanting a place to host it all. With how much I enjoyed working on these projects of mine, I knew I wanted to go to college for it. A computer science major was an obvious choice. The career outlook for this field also looked solid, which was a bonus.
The Ol’ College Degree
I went to The Ohio State University and majored in Computer & Information Science, with a minor in Business. My degree focused more on software, because I didn’t find hardware particularly interesting. During my time there, I made a few websites for other people, including a photographer, a professor, and a band. Even got paid a bit!
I worked on Scrawlpoint for the first couple years of college as well. I built some cool features, and convinced/harassed some friends to sign up for and use it too. Adding features to an existing site gave me experience with maintenance and enhancement. One doesn’t do this much as a student when code bases are small and ephemeral.
Over a few of my summers, I had software internships which gave me additional knowledge of web development, and software in general. It was awesome to get paid to code!
I was fortunate to do these internships. I knew others who would graduate without having this kind of practical experience, which seemed risky. Might you not like it? Theory is also different than practice. How do you find what niche of software you’re interested in?
These internships were instrumental in reaffirming my interest of and potential in the software field. The web still had a sweet spot in my heart, too.
Jumping into Industry
After graduating, I worked for Lockheed Martin in Colorado Springs as a Software Engineer. It was a good place to start, considering the state of the economy in 2009. I met some great friends here, and got exposure to large, legacy, embedded systems. Moving to Colorado and being near the mountains is one of the best things I’ve ever done.
The programs I worked on at LM didn’t involve web development. My passion lay there, however. After several years without developing for the web, I wanted to get back to it. It was an itch I had to scratch.
Lots had changed, including the software landscape, and my skill with software. I searched for what to teach myself, because I’d heard of web frameworks which would help out a lot. I knew what kind of spaghetti Scrawlpoint was, and was eager to see what newer practices could do for a site.
Re-Learning the Web
Ruby on Rails won out because of its maturity and the fantastic community. It’s easy to start with Rails, because of the quantity and quality of materials out there for beginners.
I worked on small, side projects. Web development is a daunting thing to learn, because there are so many facets to it. Discerning what magic is Ruby’s and which is Rails’ also takes some time. But you can learn things in chunks, which is how I eventually did it. Trying to learn everything at once melted my brain. Learning things modularly helped encapsulate knowledge. Kinda like OOP.
I got involved with a developer group in Colorado Springs called Springs.rb. This group of fantastic people was a force multiplier. If you’re new to the scene, I’d recommend participating in the community. You get to broaden your experiences, see what others are doing, and network. I recommend it even if you’re an experienced developer. If you’ve gained a lot from the community, it’s nice to give back and help it grow.
In 2012, I gave a talk on how to get started using vim. It was stressful to create the presentation, as well as to give it, but I found I like public speaking. Needing to know my stuff when I present helps me learn the topic better, which is itself addictive. In that way, it’s similar to writing.
I went on to organize Code and Coffee in Colorado Springs, after hearing about and attending one in Chicago. This weekly meeting helped keep up with other developers and maintain progress on my side projects. After I talked him into learning Rails, Chris Bachicha and I ended up doing C&C five days a week. That accountability and regularity really helped me keep on learning.
My First Web Developer Job
After a year and a half of teaching myself the web again, I started interviewing for developer positions. It was difficult to find a place that would look past the fact that I didn’t have professional experience as a web developer. My friend Scooter put me in touch with Spatial Networks. They were more interested in my potential and ability than my years of experience. This was refreshing! The personal recommendation carried a lot of weight, I’m sure. And a GitHub profile doesn’t hurt.
In July 2013, I started as a Software Engineer with SNI. I worked almost exclusively on Fulcrum, a platform for geospatial data collection. Some of the features I’m most proud to have worked on are webhooks and data shares. They were both technically interesting and challenging, and provided a lot of value for our paying users.
We rolled out a lot of other awesome features and improvements over the following two years. I didn’t have much familiarity with the geospatial industry, but there’s a lot of incredible stuff happening in that field. Location is important in many applications, so gaining experience here is certainly worthwhile.
The Fulcrum service is solid, and the team is wonderful. Getting to work remotely was also amazing. It’s here I discovered how much I enjoy working on server-side code. I also gained experience on the client-side, and deep respect for the people who make it look easy.
I’m grateful for all the opportunities, fond memories, and professional experience the Fulcrum team provided me. Working as a software engineer on the web has been a dream realized. I can’t express how thankful I am for them giving me that chance! Also looking forward to seeing what they do next.
Moving to Denver
Since my position with SNI was remote, I took advantage of the flexibility, in 2013, and moved to Denver. Several people I knew from Colorado Springs had also moved to Denver, and I’d gotten to experience it a bit through visiting. I could tell it had a lot of of opportunity in the social and professional arenas. The Ruby/Rails communities here are stellar. Tons of members, lots of activity, and great quality. I’ve lived in the area for about two years now, and it’s certainly been worthwhile. The tech scene is growing impressively, and there’s a lot of possibility in the area.
With the knowledge I gained with webhooks, I gave talks this year at both Denver.rb and Denver Startup Week. These were the first talks I’d given in a few years, but I found them rewarding. I enjoy the challenge of technical, public speaking.
The Path Ahead
Next Monday, I’ll start my new position at Cardfree. I’ll be a technical lead, which is very exciting. There’ll be a lot to learn, but I’m more eager than anxious. From my experience with mentoring and public speaking, I know I enjoy helping others learn and gain proficiency. Also invigorating is the opportunity to help influence the design, implementation, and roadmap for an application.
Additionally, over this past year, I’ve made progress toward my aspirations of
writing. Software has, naturally, tied into this. Most of my blog posts this
year have been written in and published through my
everything concept. There are lots of places to improve it,
which I will do over time, but it’s already been helpful. Getting back to the
basics of writing regularly has been fantastic.
It’s interesting to look back on how my passion for writing and software started, and compare that to where I am now. I’ve been very fortunate to do what I enjoy. And I’m stoked to think of what potential the future holds!
Writing and software are inextricably linked for me. I look forward to discussing both more in future posts. If you’re interested in writing, software, or both, I’d love to talk!