Skip to content
Author Micah Cambre

programming journey

2019 opened with a lot of chatter to the state of web design and development.

I’m a front-end developer. This is the label I’ve allowed myself to be since the mid-2010s but it was a struggle to get that far. I previously referred to myself as a front-end coder, front-end designer, web designer, and webmaster. I still consider myself a web designer in the sense that I design code that produces websites. But this label doesn’t apply to me in 2019.

I’ve always struggled with wanting to be a good web designer, essentially a graphic designer for the web. I never solely followed that path, with countless attempts producing designs that were amateurish. It’s always been easier for me to iterate off other people’s work rather than come up with my own ideas, even as a musician or audio engineer. Remixing and updating someone else’s code, music, or recording feels more natural for me because it’s the creative realm with immediate feedback. But my beginnings into a web career started more technically.

In my freshman year of college, I enrolled in and quickly dropped Computer Science 101. It was not interesting to me. I struggled to enjoy it, found the homework to be tedious, and couldn’t care less to give it much effort. Computer science was too technical and not visual enough. The internet’s maturity, however, has brought me back full circle to the necessity for the basics of computer science via Javascript.

Web development has gone through a paradigm shift. In the 2010s, Node.js introduced Javascript to the server and it replaced aged languages like Perl, Java, and PHP. Javascript is now more than just basic interaction of DOM manipulation or API calls.

What is front-end developement today?

As long as JS continues being a fundamental role for web development, I believe an understanding of Computer Science basics is mandatory. Staying stuck in the middle between the creative and the technical limits me in job prospects, so much so that I don’t qualify for many available, and many of which are senior level, front-end developer jobs. And all of this has left me drifting professionally, in between a noticeable distance from my creative desire to my technical knowledge.

Code is a commodity

jQuery is the most important library to boost Javascript’s role in the history of the internet. Using jQuery, I cheated; it was a way for me to ignore the inevitable reality of a web development career focused around JS. The abundance of jQuery everywhere let me ignore thinking about JS outside of basic DOM manipulation. Most of the time, I outsourced coding problems to jQuery plugins, tutorials and tips I browsed to find.

Just as jQuery plugins delayed my need to level up, WordPress plugins furthered my procrastination. WordPress’ theme architecture, at a basic level, mirrors static HTML, sprinkled with PHP in minimal template files. The real work in a WordPress theme is scaffolding a layout with HTML and styling it using CSS, using pre-built WordPress plugins (mostly mixed with jQuery) for most interactivity. Along with a mature WordPress community came a rich ecosystem of turnkey themes and opinionated plugins; I only had to moderately create or modify the front-end or PHP.

For too many businesses, CSS is Bootstrap. Bootstrap, like jQuery, takes work out of truly learning basics of CSS. I’ve worked for many companies that quickly needed to iterate and develop what’s known as an minimal viable product (MVP) and they forced these types of frameworks into the product or cycle. To a degree, Bootstrap, and to a larger degree an increasing amount of other front-end libraries and frameworks can be considered to have immutable CSS, where most CSS is abstracted into individual classes for iterations of most rules and values. Among other things, this relieves the developer from having to think about a global namespace issue that CSS provides by default. CSS becomes like most other languages where you treat given CSS classes as methods to extend the markup without much thought into the cascade. I think this is a mistake.

At the same time at the growth of WordPress, jQuery, and Bootstrap (among many others like them), Node Package Manager (NPM), a package manager for Node.js, also grew exponentially. In 2013, NPM was used by over a million developers. In 2019, NPM was used by over 11 million users. Why is this significant? NPM gives developers a way to efficiently import JS libraries and frameworks into projects more easily than going to a bunch of project sites to download each package individually. This process makes efficient the ability to add plugins and packages to projects and it’s all circled around a project’s ability to use Javascript.

My front-end knowledge for putting together puzzles out of HTML, CSS and JS pieces was commoditized to these various systems, libraries and frameworks. This was problematic for me at a slow but increasing pace. That said, my affection for web design on a creative level trumped the need to become more proficient with learning programming fundamentals. But this shifting paradigm quickly moved me out of contention for more jobs as time went on.

The moving paradigm

The early 2010s showed glimpses into a JS-everything future. Job ads needed significant jQuery programming from scratch, even moderate Javascript skills. Along with that saw the rise of the frameworks like Backbone.js and Angular.js. For most of 2013, I was on a temp job for a large enterprise company that chose a Javascript framework called Angular.js, which at the time seemed intriguing. But I also had no idea how this framework abandoned the tradition of a light client-side scripting on top of server-side scripting as well as progressive enhancement.

It really started hitting me in 2014 when job ads increasingly wanted devs familiar with principles from the MVC world for more rich web apps. It was baffling and stressful to watch the “I’m qualified” pool of jobs decrease. Despite that, I was still determined not to learn back-end programming. My mind circles around HTML and CSS plus some JS, visual layouts and User Interfaces, small animations and transitions that are now the role of CSS. Reliance on JS for everything was growing out of control.

The next few years, I accepted roles allowing some static templating or moderate scripting, each new role requiring more JS than the previous but still within my capability. And that leads me to today.

JS is the future

2019 web development starts with a framework or a library, primarily React.js. The modern web ecosystem is Javascript built on top of Javascript, or in other words, full-stack Javascript. We’re surrounded by opinionated frameworks and libraries that promise the world. This ecosystem requires knowledge of both Object Oriented Programming and Functional Programming, two philosophies to which I’ve only had minimal exposure. For me, this goes beyond learning just the language and syntax of JS.

Back-end development of the 2000s is now front-end development within the modern JS stacks. Yesterday’s back-end developer using Perl, PHP and Java are today’s front-end developer using JS across the full-stack. Today’s younger front-end developer increasingly comes from a JS bootcamp or transitioning from a back-end heavy education into the front-end. Staying in the web industry also means moving into new spaces like Machine Learning, AI, and big data. For those of us comfortable primarily with HTML and CSS, these jobs, if these jobs aren’t outsourced by CSS frameworks they are going to agencies or designer roles. Front-end jobs are often centered around back-end Javascript on the front-end.

Perl and Java slowly phased out starting over a decade ago. WordPress’ PHP back-end likely faces a similar fate. WordPress is slowly replacing chunks of its system with modern JS like React. WordPress is a slow moving ship but there will be noticeable pain in the forced transition continuing this year into the next decade considering that WordPress drives about one third of all websites. I wouldn’t be surprised to see other similar software environments like Drupal have to pivot to more JS everywhere.

And I’m playing catch up to get into this reality, struggling to learn what I avoided for so long. I move further from creativity and more into technical everything. This is where the front-end developer jobs are, this is how to stay employed as a developer. If I want to re-enter a freelance career where I can build and support my own product, I have to embrace a full-stack skill set based around JS. Or partner up with someone who already has this. This is a slow moving process that I’m not sure where I’ll end up.

The rest of this year will be spent with services like, FreeCodeCamp, Wes Bos courses, and other resources to consume and practice.

javascript frustration

I’ve been taking a deep dive into Javascript and React. Progress is slow, frustration is high. I’m still wondering where this will all end up. Didn’t I major in music? Hmm…

15 years and counting

March 1st marked an important milestone, my 15th year living in Los Angeles. This is the longest I’ve settled in one place in my life. However, in the years I’ve been here, I moved six times. I almost evenly split my childhood/adolescence/young adult and adulthood between Texas and California respectively.

Funny thing is, I don’t really consider much of my time in LA as settled down. So much felt transitional in my mind, despite having lived in one place for more than eight years. I still think of Texas as home when I return, but California is just as much a part of my life in this way.

Maybe it’s time I shake things up again soon, as I enter a new decade in my life very soon…

Some days, I just don’t want to go to the gym. I don’t have to lift weights or use a treadmill to get my heart rate up, and these exercises were a challenge!

react progress bar

Why do I find React.js progress bar examples that never involve the HTML progress element? It’s always nested <div>s. Progress elements have broad support for almost five years now.

friends list

friends list

As I transition back onto my personal website, I want to find a way to have a personal friends list to connect with here: a list of trusted connections that will receive exclusive blog posts. It’s a challenge I haven’t yet solved but I have some ideas. But let’s step back for a moment so I can explain better.

Many years ago, in the age of Friendster becoming a social network, I installed a web forum called phpBB here for a couple of reasons:

  1. Give people a central place to socialize
  2. Keep track of birthdays

I thought it would be neat to give people I know a central place to have conversations and talk about things. I can’t find the number now but I believe I had close to 50 people sign up and that was helpful for me. It was effectively a contact list. Some people left their birth dates, others left more information. I could use this to keep track and personalize my greetings to people, mainly for #2 above.

I actually like the idea of a friends list and I think we see various forms of them online. Most apps or sites describe this as your social media connections, using terms like Followers, Following, or Friends. But why am I highlighting this?


When I know my writing goes into a tunnel, such as private messaging, direct messaging or custom publishing to the various friends lists or followers, I can let my guard down a little and be more personal.

Facebook message composer

See this image above? Look at the bottom right side where it says “Friends”.

Facebook profiles can be closed from the broader ecosystem as well as the internet. The form above provides some form of nuanced privacy control when broadcasting your writings. Outside of Facebook collecting and selling everyone’s data, this is a form of encapsulation that allowed me to be more vulnerable than I am on the broader internet. It’s a convenient but effective mirage.

Social participation

If we’re connected online, it’s possible you’ve noticed my participation in social media dwindled starting in 2017. I’ve had a complicated relationship with these various sites since the late 2000s and had my ups and downs. I grew envious when I saw more people I know sign up and almost exclusively use these services.

I blogged a lot in early to mid-2000s with all kinds of random posts. My writings began at the end of college and this was the outlet to all those who weren’t in the same place as I was. I moved from Colorado to Texas to California and traveled at least a couple times a year, or more, in most of that decade. So keeping up with people was not easy and this was a place I could send people.

But that envy of MySpace and later Facebook took its toll. It effectively silenced me in the early 2010s. I lost the motivation to write here into the void. But I’m now apart of what’s being labeled as the old guard of the web, looking back at a time in the first millennial decade where the web was a playground for anyone who cared. And I believe more than ever that this type of connection should not be solely enclosed by walled gardens of social media sites who prey on me.


So what’s this leading to? More blog posts here. Right now they’ll be public, open to the whole world, syndicated to social sites at times, and available for you to leave comments and participate if you want. Maybe you’ll just read or skim, that’s fine too.

Ultimately, I would like to recreate a friends list here. I want to create a tunnel for people who care and want more than sometimes-bland, often-technical public blog posts. When you “add” me, when you “follow” me, when we make a trusted connection that shares a common secret between each other, I can make more personal statements and know these words are going to people who I want them to see.

But I haven’t figured this part out yet. Maybe it’s making encrypted posts that my trusted connections can view. Maybe it’s something else that I haven’t thought of. I want it to be something you can sign up for, you can click, you can follow, and I can approve, similar to what we’re already used to.

Privacy might be increasingly difficult, maybe it’s mostly dead online, but that doesn’t mean I can’t try to take it back in small ways. Ways that’ll benefit both of us.

Let’s see how long it takes for me to come up with a way to have a personal friends list for Once this happens, you can have your own site/profile/blog and do the same.

Photo by rawpixel on Unsplash

blockquote pizzazz

Trying to be more creative and updated my blockquotes to heavily stand out. It’s my freakin’ blog, I might as well try new crazy styles!

the new web development

Quoted The New Web Development | Matt Wilcox, Web Developer & Tinkerer by Matt Wilcox (Matt Wilcox, Web Developer & Tinkerer)

The modern web developer is more a software engineer than what I would call a web developer. The app-ification of the web isn’t a case of writing some HTML, authoring a CSS file, and using a new jQuery-like library to get that sweet interaction.

You are going to need to know how to program; like a real programmer. You are going to need to know some very different approaches to how you build, deploy, and maintain things. You’re going to need to question the value of some of your strongest held best practices.

And you’re going to need to get to grips with tooling. So much tooling. Because the new web development has matured enough to be dangerous to ignore, but not enough to be simple and entirely stable.

Matt’s summary of his transition closely aligns what I’ve been going through. Even though I saw the writing on the wall with Javascript, I couldn’t motivate myself to travel down this path because it was a repeat of what I left behind in Computer Science 101 in college. I just wasn’t interested at the time and this felt like more of the same.

It’s clear now that a programmer path for the web requires skills that I don’t have and must continue to learn. I have to cross the line to the left brain from the safety of the right brain.

I think I’ll write a post about my journey and struggles.


Bookmarked Kap – Capture your screen (Kap)

An open-source screen recorder built with web technology

While looking for an open source alternative to the useful tool called Gifox, for creating screen recording animations on macOS, this Stackexchange comment led me to Kap. While it doesn’t display the last recorded gifs, I was sold on the fact that it go beyond just animated GIFs because it offers WebM, MP4, and APNG. What a great tool and highly recommended.

If I hadn’t found Kap, I probably would have hooked up this solution using Quicktime, various apps, and Automator for a dirty but effective free alternative.

indiewebify this site

It’s fun to think I’m back here writing occasionally, but my personal interests to come back here are more broad. Getting back to a website where I control everything is empowering and the ultimate satisfaction. The kickstart to get this point was seeing the potential through a movement called Indieweb. Indieweb principles align with my personal interests as well as the reason I started writing online so many years ago. I’m also burnt out from the effect that social media has on privacy.

Here’s what I’ve already done to

  • A new look, simplified but intricate
  • New blog post formats called Kinds. They mimic what we know from other social media, such as Notes which are similar to Tweets, Articles which are standard blog posts, Reply posts which are the same as Replies anywhere, Photo posts which can be like Insta photos, Bookmarks, Quotes and more! You’ve probably seen multiple posts where I’m trying out the various kinds I’ve mentioned
  • When I make a new blog post here, I can check a box and it’ll create a new Tweet on Twitter. Not only that, but with various other methods, I can now see all the Twitter activity right here on each post. I could theoretically stop going to or Tweetdeck and use this website to participate in Twitter
  • What’s just as important is I have the ability to show other sites that use the same content I’ve posted here. I don’t want to write into the void of another app when I can write what I want here first and syndicate it where I want. Or I can go to Instagram, post a new photo and I can connect my site to grab everything I just posted on Instagram. In other words, I don’t need to just lose the things I’m posting into these other silos of social media
  • You know how you can check in to your location? You post on Facebook or Yelp or Foursquare and share where you are? I was never that interested in this feature but I have the same ability to inform of my location at time of post
  • For sites and apps that allow it, I can now use this site to log into those other sites or apps. The support for this feature is small at the time of writing but the potential is great
  • Performance optimization is an ongoing task, as I introduce more ways to load this site as quickly as possible. I have more work to do but my goal is for site loading to be better than the rest. In fact, I’ve got some pieces put together to make this site perform as good as apps on phones
  • If you look for a post that I’m talking about code, you’ll see that code is now highlighted with a specific color scheme so that it stands out. This will help me to write more technical posts and contribute back to the web community as I discover, learn and grow as a developer

There’s more to add above but I think that’s a good highlight. Now let’s see where I hope to be in the next year.

  • Add a little more color. This is as plain as it gets but I needed a baseline to build upon. This might be slower than I want but I hope to find ways to make the reading and interactive experience more visual
  • Turn into what’s called a Progressive Web App. You know how you can download apps in a store? I’m positive you’ve downloaded more than one app, possibly lots of apps, that are sitting on your phone being unused since you downloaded it. Appstore apps are usually pointless now when you can get the same thing using the web, inside a browser. It’s an exciting area to go into
  • Ever since I started posting, I’ve had to come to terms with what I share online being public forever. However, I’m also not willing to share everything for everyone. I’m going to explore ways to share things here that will not be publicly accessible, meaning they’ll probably be encrypted and require some kind of key to access. I think this topic deserves its own post sometime because privacy has become as precious as fine metals like gold; it’s harder to keep things to myself if I decide to share them online
  • I might get my hands dirty enhancing other themes to help other WordPress users connect with a lot of the above features. Maybe I’ll branch out to one of the frameworks/libraries du jour like React.js/Gatsby and get something up there too
  • I’ll continue contributing back to the Indieweb community in whatever ways and time I can make. I think the community still lacks enough turnkey systems to quickly get people up and running in ways that you feel connected on social media and I can increasingly see a path for this in WordPress and other ecosystems. It’s a long journey but one that’s worthwhile
  • More writing! I’m going to find a balance between some technical writing and personal writing here. Maybe I’ll divide the site up more so that the sections are more distinguished from each other. There’s a lot going on for me, less personally but definitely professionally, and I can’t wait to share more

I hope I look back at this and see that I’ve done even more than I wrote above. However, I’ll still be content if I get to even half of this. There’s so much in store for the year and the potential is endless so I hope I can make 2019 an productive year for my personal growth and continue Indiewebifying as much as I can.