Like most developers, I loved playing video games. I beat Zelda with my brother on the old NES and the hours of entertainment made games a centerpiece for life. One day, my neighbor and now co-worker Frank got on my Dad’s computer and made it say “Hello Gant.” Say no more, I was hooked. From there I bumbled around the digital world until landing firmly as a (mostly) competent developer.
When I got my first tech job, it paid double what I was making at Taco Bell. Yes, Taco Bell. I found that doing creative, exciting, and often childish things with computers spoke to me in a way that turned this D student into a Comp. Sci graduate with overflowing job opportunities. I had found my life’s work.
OK, fine! YOU WIN! I’ll clean up my desk! Quite seriously, I cleaned up for this.
Here’s my office, where the magic happens.
My setup looks deceivingly simple. I work directly on a Hackintosh so I can boot into Windows/OSX with the same 64G of ram and Core i7. This is where I can do the majority of my development. Switching between the two is fun for gaming and GPU accelerated machine learning.
I have a simple hard-drive power array on the front of my tower that allows me to pick which hard-drives are powered on.
The 3rd monitor, the iMac on the right side is my old 2012 32GB development machine, which is useful for simple things like dashboards/messages or accessing old files. This is a graceful ramp-down that’s been happening for the past year or so.
I can switch between the two computers quickly with a simple USB switch. But most of the time I simply use “Logitech Options” to slide my control between the two seamlessly. I even have the monitor on the left wired up to an HDMI switch so I can quickly display/work with a Raspberry Pi; all while sharing the same mouse/keyboard.
My keyboard is loud as hell. My headphones are comfortable, and my microphone works amazing, even if it is just a USB Blue Yeti. I love getting stuff done, and my setup enables me to kick butt.
Another thing about a person’s setup is that they say you can tell a lot from a person’s home screen. Here’s mine. It basically says I love Twitter and coffee… right? Maybe something more, you tell me.
That’s a dangerous question. I’ll say this, I absolutely LOVED Ruby. The language was clean, elegant, and full of community.
Depending on what your needs are, so I’ll do 5 repos for 5 reasons.
For translating React state between two different apps, I love my React State Museum. It easily gives you the ability to research days' worth of state managers in hours.
For checking up your work in any language, some people try some interesting QA material, like minus one. Me? I like to throw the whole kitchen sink at it. There are a lot of Chaos testing libraries out there, but one universal group of nasty inputs can be found in the list of naughty strings.
Next, I don’t know how I could do React Native dev without this awesome tool. It’s open-source, and super friendly. I HIGHLY recommend you watch the Chain React video on it.
One of the most diverse and fun repos I know is Vincent’s face-API. What a cool way to identify faces, check recognition, and even sentiment analysis. This is such an amazing library, with tons of things you could make. I used it to make a website that can identify if a person is Nic Cage or not.
“A little nonsense now and then is relished by the wisest men.” My 5th pick? Cloud to Butt. Yup. Install this on your friend’s machine, your machine, and enjoy life at random moments.
I’m amazed and in awe with Machine Learning. Demos of applied examples of ML at conference booths are just amazing. I strongly believe the AI revolution is on its way. And not a bad one, the great AI revolution that enables a higher quality of life for all. That is, as long as it’s applied that way. Developers today will be influencing the fate of us all in the next 10 years.
Watch my remote talk to the folks in the Netherlands for more awesome examples that inspire me.
I’ve got some exciting new projects coming out soon with Machine Learning, you should definitely follow me on Twitter if you want sneak peeks. Research includes IoT, mobile, and even magic! It’s going to be a very interesting year.
Always keep “messing around” and always keep “production” in your thoughts. The tricks is that they never go away, it’s just that the proportion slides over time. It’s essential that you think about the long term questions whenever you start a project. Some people are amazing at this, get them involved!
Others are always creatives. I’m a big advocate of the “Red Team” system. Sometimes you’ve been doing the same thing for too long. Having childlike creativity is important.
How do I balance these? Lots of open sources.
Open source is public enough to make you professional, but it’s also dynamic enough that you can iterate. I love finding ways to make each project replete with open source. It gives a spirit or condemns efforts to optimize my workflow.
I am learning Machine Learning, and it is EPIC! I’ve been certified by the classic Stanford course, Google, and even the new Deeplearning.ai course. I even started a new Twitter/Subreddit for sharing cool things I find. Feel free to contribute! twitter.com/FunMachineLearn and reddit.com/r/FunMachineLearning
If you’re wondering why I’m excited about Machine Learning, then check out this blog post.
I’d have to say, when I first started React Native, there was little to help me. So I made a boilerplate management API named Ignite. Now, years later, Ignite is nearing 10,000 stars, and 100 contributors.
The project was my baby, and I think it’s an open-source success story that it’s maintained by others now. There’s no single point of failure, and the tech keeps moving forward. That’s the sign of a success in open source when it belongs to the people.
Why things are the way they are. Beginner devs are learning tons of great tech, being told what frameworks to use, and are able to cover an amazing amount of ground in little to no time. But a lot of it feels like memorizing gibberish to them.
Few beginners know when they’re shoving the wrong tool into a product, or why they’re even why they are so dependent on a language that isn’t the ideal fit. Lots of “why” is in the history of “how”, and a beginner just doesn’t have the time or energy to know how tech got the way it is.
Right now we’re trying to figure out how to grow and maintain our open source initiatives. Earlier, I discussed how Ignite succeeded as an open source project, but every time we start a new open source project it requires a lot of setup, and then a strong tie to continuous integration. The world of CI/CD is changing along with us, and tools are either getting deprecated or surpassed every day.
Our CTO Jamon Holmgren has been doing a fantastic job at recontextualizing the workflow and helping our entire team reach that next level, both internally and externally.
Read about it here: shift.infinite.red/avoid-nightmares-nsfw-js-ab7b176978b1