My name is Sean Omlor. I am a web developer creeping up on twenty years of professional experience.

I first started programming BASIC1 in the mid-80s when I was around 9 years old on our family Texas Instrument TI-99.

Within a few years, I upgraded us to an 80286 PC that I built from parts. It had one 5.25", one 3.5" floppy drive, a 20 megabyte IDE hard drive2, a 2400 baud modem that changed my life and of course a turbo button.

I continued building Frankenstein PCs from parts I saved up for or convinced my parents to buy me. To their chagrin, I'm not sure I ever closed a computer case in the 90s.3

In secondary school, I formally studied BASIC and Pascal on a terminal connected to a monstrous DEC VAX in the closet with an entire 256k of RAM for the classroom to share.

I wrote software for the school Apple IIe to help me study Spanish and which was later adopted by my Spanish teacher for use with other students. I wrote code for my TI-81 to help work through math problems and which also ended up widely circulated among my peers and used by at least one of my math teachers.

After high school, I majored in computer science as the obvious thing. These were pre-Java days, and my classes were all in C. Programming in C bummed me out.

In retrospect, I realize that my interest in programming did not include manual memory management.4 I just wanted to create useful software.

My young mind concluded, "well if I'm not a scientist, I must be an artist." I switched schools and to an art major with a focus on 3D computer modeling and animation.5

Fatefully, part of my curriculum included HTML, CSS, and JavaScript, three Not-Serious Technologies™ that computer science degrees would certainly never bother with at the time.

So I learned web development in art school.

After graduating, I got a job doing 3D modeling at an industrial design firm in Germany.6 It was fun, and I loved Germany, but I couldn't hack German winters, so I moved to San Francisco after one year.

In early 2002, in Oakland, California, I got my first job as a "web designer," the popular term then. I've been doing web development ever since.

In the beginning, there was HTML.

In the beginning, there was also <table>. Tables inside tables, I heard you like tables? Browsers did not widely support CSS, so inline styles were standard. JavaScript was for sprinkles and definitely not a "real programming language".

I strung together Perl7 for backends and shelled out an infinity of Bash. The Internet was duct taped together with shell scripts.8

In 2007 I went freelance and lightly dipped into the digital nomad thing.9 I curated a roster of mostly small business clients needing steady web development work. I was an early adopter of WordPress and accidentally became a Wordpress guru. The stack is looking a bit more modern now: HTML, CSS, jQuery, and the oft-maligned PHP.

A few years into my freelancing run, I began studying Ruby10. I started building custom sites for clients with Ruby, Sinatra, and Ruby on Rails. This web development thing was becoming more and more fun.

In 2012, on a whim, I applied to App Academy of San Francisco. The concept of free tuition until being placed in a full-time dev role seemed attractive. I got accepted and moved back to San Francisco again.

There's some controversy around the boot camp thing. For me, App Academy was an incredibly valuable experience. I feel like I got the crash-course in foundational Computer Science I wanted when I first chose it as a major.

After App Academy, I did a Ruby on Rails tour of duty at several startups11, eventually earning my "Senior Rails Developer" merit badge.

As I gained more experience with production Rails systems, my few, specific frustrations12 began corroding to gloom with each untenable wreckage I wrestled, ultimately crumbling into a broader disillusionment with object-oriented programming itself.

In early 2015 I began my journey into functional programming, studying Clojure, Elixir13, and Haskell.

Just one year later, I took a full-time role leading the development of a complex backend in Elixir for an AI startup.

I've been shipping Elixir to production ever since, over three years now. I continue to feel impressed and grateful for this fantastic language, ecosystem and community.

What does the future hold?

  1. Beginner's BASIC book cover

    This was my jam right here. ↩︎

  2. I remember wondering how in the world I would ever use this much disk space. ↩︎

  3. Something like this. ↩︎

  4. Fast-forward, I am enjoying Rust's approach to manual memory management. ↩︎

  5. Using mainly 3DS Max and Maya. ↩︎

  6. hanover

    Hanover, Germany, which many Germans assure me is a boring city, but as a know-nothing American, I found it charming. ↩︎

  7. Anyone remember cgi-bin? ↩︎

  8. And maybe still. See Kubernetes with nearly 50,000 lines of shell. ↩︎

  9. zancudo, costa rica

    Playa Zancudo, Costa Rica, where I lived for one year. ↩︎

  10. the well grounded rubyist

    My first of many Ruby books. ↩︎

  11. See work experience for more details. ↩︎

  12. For example, the lack of primitives for safe concurrency leading to convoluted solutions for async tasks. ↩︎

  13. My first of many Elixir books. ↩︎

  14. Also Erlang! ↩︎

  15. Also ClojureScript, TypeScript and Reason! ↩︎