Xavi Smith

Experienced Professional | Transitioning from Tech to Education

Author: Xavi Smith

  • 2019: My Not So Year in Review

    It’s that time where everyone reflects on the past year. I love it. I’ve been writing my yearly retrospective since 2013. But this year, I don’t want to.

    2019 has been a year full of transitions, some more difficult than others. Don’t get me wrong, there’s been plenty to celebrate. I have a new job at BuySellAds that I love, I successfully fundraised more than $10k for Bokeh, and Kelly and I made a cross-country move back to California.

    Frankly though, much of this year is too personal for me to talk about publicly. I mean, y’all know I like to be real here, but some things I don’t wish to share.

    2019 was the year my fake self died. 2020 will be the year my true self rises from the ashes. I’m a Phoenix baby, and nothing will stop me from taking flight.

    I wish you all the best in 2020, dear reader. May the force be with you, always.

  • Building a Lifestyle Business

    Andrew Wilkinson talks about being In-N-Out Burger instead of becoming McDonalds. It’s quite encouraging to read something like this from someone who’s had so much success in our industry. Here’s my favorite part of the article:

    Meanwhile, there are thousands of internet businesses out there, quietly making tens, and even hundreds of millions of dollars, who have taken the same path as In-N-Out. They don’t need to be first, second, or even tenth, in their space, and have instead chosen to focus on a small percent of a massive market. They answer to customers, not investors, and focus on making their employees, customers, and themselves happy.

  • The New Web Ahead Website

    Have you listened to The Web Ahead? If you work on the web, and you haven’t, you’re monumentally missing out. The Web Ahead is a great show where Jen Simmons talks to some of the smartest people in our industry, and sparks conversations about web technologies like no one else can.

    The new website for the show is absolutely beautiful. She’s done such an amazing job. Designing websites for podcasts has become a bit stagnant, with most1 resorting to a cookie-cutter episode title, description, audio player, and show notes. Jen breaks the mold with a beautiful audio player, a more in-depth description of topics, and a transcript that actually looks good.

    Take a look at the website, listen to the show, and subscribe. You’ll do your ears a favor.


    1. Including me, unfortunately. I’m working on this though. I’ll have something new to show you very soon.
  • People Still Read Blogs

    Justin Jackson:

    Yes, Google’s changes over the past 2 years have affected how people discover content. But I don’t think people have moved on to dicking around in apps and snacking on bite-sized social content.”

    People are still reading.

    Justin’s response to Marco’s post is great and I agree with him. The way people are finding content may be different, but I think quality writing is still very much appreciated.

    The end of Marco’s post, leaves a question in my mind that if answered, would’ve made the article a lot better.

    If we want it to get better, we need to start pushing back against the trend, modernizing blogs, and building what we want to come next.

    How do we push back on this so-called trend? And what’s involved in modernizing blogs”?

    Justin is on the right track when talking about email. In my opinion, the times of having millions of people engaged with your content is over. For the modern blog to be successful, nurturing your core audience and finding new ways for them to receive your content, are crucial.

    The pageviews may be shrinking, but the opportunity for great content creators is far from over.

  • 2014: Year in Review

    In an effort to keep up a good habit, it’s time to do a little reflection on last year, and set new goals for 2015. I can’t believe how quickly 2014 went by. I feel as if every year seems to go by quicker than the last. Still, I was able to accomplish three out of five goals this past year, which I’m quite proud of.

    Here were my goals for 2014:

    1. Lose Weight
    2. Learn Rails
    3. Collaborate with Friends
    4. Mentor a Student
    5. Take Work-cations

    I did really well! I lost 10 lbs in 2014 and managed to keep them off. This is still an area I need to work on and will be putting more effort into this year.

    2014 was the year I built the CMS powering Goodstuff. Together with Will Duffy, we built this awesome system that makes creating new shows and posting episodes a breeze. With Will’s help, I’ve become more competent with Rails. I can handle my own when it comes to generating new migrations, creating new controllers, and I even learned how to integrate Stripe payments into a Rails app!

    Last year, I complained that if I could work from anywhere, why wasn’t I? This was fixed by flying to Guatemala and staying a total of six weeks! It was an absolute blast, I rode the bus everywhere, got to see old friends and make new ones, went 5 days without water1, and even spent 3 days on the beach. I did all of it, quite cheaply. I’d definitely recommend it.

    What do I want to accomplish in 2015? Here are my goals for this year:

    1. Lose Weight
      This stupid goal is on the list every year. But slowly, I’m making progress, and it needs to continue. I signed up for the gym in January,2 and thanks to my lovely fianceé, we’ve been going regularly.
    2. Learn a Javascript Framework
      I’d like to eventually become a designer who’s also a full-stack developer, and this is what I see as the next step in my development knowlege. There’s a lot of talk about Angular, Backbone, Ember, etc., and I’d like to know what’s going on here. I’ve heard you can create some really awesome applications with these, which is where I see my career heading as a whole.
    3. Sell More CMS Licenses
      Last year, I built a podcasting CMS. I also licensed it to three networks: the one I co-founded, Goodstuff FM, Relay FM, and Broken Buggy. I’d like to license this CMS to more networks who are in need of a powerful, yet simple system to manage their shows. This might involve creating some type of marketing site, but also might mean that I develop this into a SaaS.

    4. Better Sleeping Habits
      Sleep is so important. They say that when you miss out on sleep, you don’t ever recuperate it. That’s depressing. Either way, I’ve got to get better about getting to sleep earlier and waking up earlier. It’s not so difficult, and interestingly, I always feel refreshed when I do.

    5. Design and Build a Piece of Furniture
      When I was little, I’d work with my Dad building furniture for our house. My Dad has always interested in carpentry. We built my desk together, my bed, their bed, and many others. This year, I’d like to design and build something for my home. Admittingly, I’ll most likely need his help, but for once, maybe I can retain some of the knowlege he imparts.

    Those are my goals for this year. What are yours?


    1. I know, I know. You must be thinking, that’s horrible.” But it was actually quite interesting. We ended up buying water (the kind you get in those five gallon jugs) and using that to cook and shower. Although a slight incovenince, it was a fun part of the experience.
    2. Just like everyone does. And the gyms totally take advantage of this. They run this special for all of us New Years Resolutioners”. They figure they’ll make tons of money of these chumps who’ll sign up and never go.
  • Freelancing and Premium Beef

    Andy Adams:

    Price changes aren’t easy, but if you’re ever going to break out of being a commodity freelancer, you’re going to have to be nervous. You’ll have to say goodbye to clients you love who can’t afford you any more. That hurts.

    But you’re running a a business, not a friend-for-hire service. Clients will understand.

    If you’re unsure about the way you’re pricing yourself, Andy offers some great advice.

  • Working Remotely Can Be the Dream

    Mark Nichols:

    During the hardest times, working remotely can feel like a punishment. For what, though? Your defection from the norm? Your overconfidence, maybe — your inability to do something that seems so easy? You suddenly have all these questions and insecurities keeping you up at night. What’s happening?

    Mark’s experience has not been mine in the slightest. I’ve had the fortune of working with companies that really understand remote working. Without that, you’re left with the insecurities Mark has experienced: feeling out of the loop and alone.

    I used to think that a company had to be completely remote for it to work. However, I currently work somewhere where only some of us are remote, and it’s been great. But it’s because online communication and collaboration has been engrained in the company culture even when you’re working at the office.

    My recommendation is this: if you’re feeling out of the loop and alone, you should address those concerns with your supervisor. If things don’t get better, you might need to find a company who wants to put the effort into remote working.

  • Speeding Up My New Mac Setup

    Past-Me has been a jerk many times. Past-Tim doesn’t think about Future-Tim, saving him time, money, and sometimes even heartache. Setting up a new Mac can be a huge pain, and thankfully Past-Me finally did something nice for Future-Me.

    I left great documentation and resources that helped me get this new machine setup in about thirty minutes. That’s unheard of. But as with everything, there are still some holes that need patching, so I thought I’d write something up, to document the process even better for next time. After all, Past-Tim is now me.

    Important Caveat: I don’t setup new Macs from a backup; I like to start fresh. If you like starting your new Mac from a Time Machine backup, you don’t need most — if not all — of this.

    Step one: clone dotfiles repo

    # First we clone the repo
    $ git clone git@github.com:smithtimmytim/dotfiles.git ~/.dotfiles
    
    # Then we run the install script
    $ cd .dotfiles
    $ script/bootstrap

    Having dotfiles version controlled is awesome, and this is the first machine I setup with them. The repo comes with a list of packages and apps to be installed. When I run the install script that comes with dotfiles, it installs Homebrew, sets up sensible macOS defaults, and much more. My vital apps like 1Password, Dropbox, Alfred, Hyper, etc, are all installed. Also, because I use mas — which you can install via Homebrew — all of my favorite Mac App Store apps are installed too.

    You may be asking yourself, how is this possible? In part to dotfiles, but the Brewfile is where the magic happens. If you’re familiar with a Gemfile — a Brewfile is that, but for Homebrew. It contains a list of the packages and apps I want installed. You can look at my Brewfile here, and you can read more about the whole concept on GitHub.

    Also, once you clone dotfiles you might notice that you can’t see it. That’s because files that begin with a period are hidden by default. Make those files visible by entering the following command into the terminal:

    $ defaults write com.apple.finder AppleShowAllFiles YES

    Step two: install ruby versions and gems

    $ rbenv install 2.3.0
    $ rbenv install 2.3.1

    I use rbenv to manage my Ruby versions. I don’t have to manually set this up, because it’s already been done for me with dotfiles. At the time of this writing, I’m using Ruby 2.3.0 and 2.3.1.

    Now, let’s install the gems I need in each Ruby version:

    $ gem install bundler jekyll rails

    Step three: clone atom-config repo

    # First, quit Atom.
    # Then remove the current Atom config
    $ rm -rf ~/.atom
    
    # Now clone the Atom config from GitHub
    $ git clone git@github.com:smithtimmytim/atom-config.git ~/.atom

    My text editor of choice is Atom. Which still kind of surprises me since I stuck to Sublime Text for so long. Atom is regularly updated, and has a very vibrant community. People continuously make all sorts of plugins for it.

    I’ve seen a lot of people have their Atom config inside their dotfiles repo, but I felt like having it as its separate thing and that’s worked for me. atom-config comes with all the obvious things you’d think would come with a config. I also use package-sync to get all of my different packages downloaded and installed in no time.

    To me, the ease in which I can version control my preferences is a big reason to use Atom. I did check in my Sublime config, but it wasn’t as easy to maintain, and it felt dumb to check in all the packages I was using instead of having a simple list of them. It’s a nit pick, but it’s the type of thing that makes or breaks a developer workflow.

    Step Four: Create new SSH and GPG Keys

    You’ll need an SSH and GPG key for lots of things, but I primarily use mine for GitHub. Creating a new SSH key is pretty easy. Here’s some documentation on how to do that.

    Now, for the GPG key. This isn’t as simple, and honestly I don’t know how this works. I did some research on whether you’re supposed to create a new GPG key when you move machines or whether you’re supposed to migrate them, and was still confused. If you know more information about this, I’d love to hear from you on Twitter.

    Anyway, first you need to download the GPG command line tools to create new keys. I download GnuPG for OS X. Once you’ve done that, you can follow the steps from the GitHub documentation to create your new key and add it to GitHub.

    You might be wondering, what the hell is GPG? Well, that’s quite the hefty answer. I found this page to be very informative.

    Step Five: Login to 1Password App

    I’m shocked at how amazing the setup for this has become. Kelly and I are using 1Password Families, so setting up the app on a new machine is now as easy as scanning a QR code, inputting my master password, and… that’s it. I’m still baffled at how easy it was.

    At this point, 1Password is the gate to everything else. Once I have 1Password installed and setup, I now have access to all of my software license codes, website logins, and a whole lot more.

    Step Six: Login to Dropbox App

    I run most of my system through Dropbox. I pay for the Pro plan which get’s me a terabyte of space. I think the only things I don’t have on Dropbox are the sites and projects I work on, because all of that is on GitHub. Doing things this way is pretty convenient, and helps me take all my important files to the new computer.

    However, the initial setup of this is not fun. Because Dropbox on the Mac currently downloads all of your files locally, when you first do this, it can take days to sync. This isn’t ideal because some files are more important than others at the beginning. I want to have my Alfred preferences, or my Keyboard Maestro macros first. But to do that, I have to go through the nightmare of setting up selective sync and then redoing it once the right files have downloaded. Eventually — who the hell knows when — Dropbox will launch Project Infinite for everyone. That’ll solve this problem and more.

    All this being said, it doesn’t mean you shouldn’t have a backup! I use Time Machine to keep backups just in case things get wonky. Dropbox has lost files of mine before, so I like to have a plan b. The Sweet Setup’s advice on this topic is wise.

    Conclusion

    In summary, this setup process is pretty awesome. Automating things like this saves so much time, and gets me coding quicker. I’m loving my new Mac, and a large part of it, is that setting it up was headache free. If you decide to use this, I’d love to hear about it! If you need help, don’t hesitate to get in touch.

    Enjoy your new Mac!

  • Star Wars: The Last Jedi

    As what’s become tradition with films we’re really looking forward to, Kelly and I with some friends and my cousin went to watch Star Wars: The Last Jedi on opening night. Here are some thoughts on the movie, careful for spoilers.

    Spoilers Ahead!

    If you haven’t watched the movie, this is a good time to turn back. You’ve been warned.

    • I can’t remember the last time that I was so genuinely surprised by a film, much less this many times. The Last Jedi is filled with—what were to me—jaw-dropping moments.
    • I’m really pleased with the character arches for most of the characters. I’d say that Finn’s arch wasn’t all that entertaining and Phasma still didn’t get enough in this movie. And it doesn’t look like Phasma will be back.
    • All the mystery around Rey’s parents had me thinking it was going to be a huge reveal. But it wasn’t. And the greater point that they were trying to make with that is a smart one. As Charlie Schneider of Emergency Awesome put it in his video, the statement made is that anyone can be special, anyone can be force sensitive. You don’t have to be a Skywalker. This feels like a smart direction to take Star Wars in.
    • I’m unhappy with what was done with Supreme Leader Snoke. I still don’t know who he is, how he was in the position that he was in, how he learned to yield the Force, etc. The character feels useless on its own, and only serves as vessel for Kylo Ren’s arch.
    • I thought Kylo Ren was going to turn back to the light after killing Snoke. His ascension to being the true villain—not only someone who’s strings are being pulled—felt right. Adam Driver again does an amazing job with this character.
    • Kylo Ren not killing his mother gives room for redemption. I don’t blame him for Han’s death, I blame Harrison Ford for wanting out.
    • As I write this, I’m listening to John Williams’ excellent score for this film. His masterful blending of themes he wrote decades ago with new ones is awe-inspiring.
    • I love Luke exposing the Jedi for their mistakes. For years, I’ve felt that the Jedi George Lucas created were deeply flawed as a group, yet it was never acknowledged. Luke talking about Jedi not owning the force or the fact that their hubris allowed for Sidious to take over, will take the Jedi in a new exciting direction in future movies.
    • I nearly lost it when Yoda showed up.

    There’s much more to say, but I promised to keep this brief 😜. We’ll be talking about The Last Jedi on Retake this upcoming week. Subscribe so you don’t miss it!

  • The Cost of a Centralized Web

    DHH on Signal v. Noise:

    Writing for us is not a business, in any direct sense of the word. We write because we have something to say, not to make money off page views, advertisements, or subscriptions. If some readers end up signing up for Basecamp, that’s great. But if they just like to read and not buy, that’s also great.

    Beyond that, though, we’ve grown ever more aware of the problems with centralizing the internet. Traditional blogs might have swung out of favor, as we all discovered the benefits of social media and aggregating platforms, but we think they’re about to swing back in style, as we all discover the real costs and problems brought by such centralization. […]

    With the new take, we’re also trying to bring more of a classic SvN style back to the site. Not just big, marque pieces, but lots of smaller observations, quotes, links, and other posts as well. In fact, the intention is to lessen our dependency on Twitter too, and simply turn Signal v Noise into the independent home for all our thoughts and ideas – big or small.

    I never understood the move to Medium. Even though at the time they supported using a custom domain, their URL structure and lack of design flexibility were deal breakers for me from the get-go.

    But I think David touches on something significant here. These platforms that have taken over the web (Facebook, Twitter, Instagram, even YouTube) have proven to be far from benign. I don’t think I ever stopped to consider what the price of free was, but a quick look at the dumpster fire that social media has become quickly shows the cost. Not only has our privacy been invaded, and our data sold to the highest bidder—these platforms” have become the breeding ground for racism, misogyny, harassment, and every other vile thing in our society.

    And okay, I’m sure reasonable people work at these companies. But for the most part, the people who are leading strategic decisions are people in moral bankruptcy who care more about pleasing venture capitalists and raking in their excessive bonuses, than about the real-life consequences of their technology decisions.

    It’s crazy that all of this is the result of a centralized web, but it’s therefore critical to be part of the movement to decentralize it. And that all starts by writing on your own damn site.