Hello! My name is Josh Nichols, and I am a professional software engineer, self-proclaimed whimsey engineer, hobby hobbyist, husband, father, and noun. My pronouns are he/him.
I currently work at GitHub as a Staff Software Engineer. GitHub is one of the largest online communities of developers in the world, with millions of people sharing and building their ideas and solving problems from around the world. There, I work with colleagues across GitHub Engineering and spread across the globe. Together, we solve hard problems in the developer experience and site reliability space, and enable the 1500+ engineers to collaborate on our large codebases serving high traffic, with lots of concurrent development.
I am affectionately referred to as Pickles; there’s a whole story there with someone rhyming my last name, and it kind of stuck. Ironically, I do not like pickles. When I needed a domain name, the word "technical" felt like a good adjective to go with it. Now I go by the Internet alias technicalpickles or techpickles online.
Depending on the current year and how math works, I have at least 16 years of experience in software engineering. In addition to software development, I’ve done work in adjacent roles like customer support, IT support, system administration, devops, and site reliability engineering.
I have been a huge user and often contributor to open source software all these years. In addition to being an individual contributing to a project, I’ve also been the project lead on the Gentoo Linux distribution. I lead a team of several contributors in my “spare time” working on Gentoo’s Java support (yes, we built all our Java from source).
Remote online collaboration may be something new to much of the world, but I have been remotely working for 8+ years, and remotely collaborating online for even longer. I was living in Boston, and decided to move to Savannah 10 years ago for a job opportunity, but when it was time to change jobs, I found myself not wanting to give up lifestyle I found here. When the pandemic is over, I know I’ll still prefer remote work and collaboration for the flexibility it gives me.
In addition to all that, I've built and led local tech communities, including the Boston Ruby Group and Tech SAV. I am a big advocate for online communities, but I still appreciate a local community because it’s another opportunity to bring people together that might not have met otherwise.
I have been a computer nerd as long as I can remember, before I could have even known what that meant, or even Known If That Was A Thing.
I still remember my first experiences with a computer in elementary school, using an Apple IIe (or Apple IIgs if I was lucky) during elementary school to play games like Number Crunchers and Oregon Trail. My parents saved up to buy my first computer, and I was eager to take it apart and put it back together to learn everything about how they worked. (Mom, Dad, if you are reading this, I have learned a lot since that time I broke the computer, and have even already had the chance to teach your grandson Alexander that lesson about treating computers carefully.)
Later on as a freshman in college, I wrote my first program to solve a problem I had: I had all these electronic music live sets and wanted a way to browse and share them with my friends back home. I went beyond what was taught in classes to learn Perl, and figured out how CGI worked for serving web pages and generating playlist files to be able to play in WinAmp or XMMS.
I studied Computer Science and Psychology at Rensselaer Polytechnic Institute, earning a Dual Bachelor of Science. Most people think it’s an odd combination, but the thing that clicked for me was thinking in terms of human factors. Software is built by humans, to be used by humans to solve human problems, after all.
There is nothing more rewarding than taking an idea from its concept to a finished product people can use to solve their problems daily. Building something from my imagination with varying amounts of thinking and typing at a computer is extremely satisfying for me.
I describe software engineering as a series of ever-evolving logic puzzles. I am always excited to discover, unlock, and learn them.
My goal for pickles.dev
I built this platform to be a repository of what I’m thinking about and doing. It’s also acting as my publicly accessible external brain. In the past, I’ve done online searches and ended up on my own blog posts, so this time around, I’m embracing that.
Topic-wise, I’ll be sharing:
- invaluable insights into our rapidly changing industry
- essential tools and resources to support the curious minds
- some open source projects for those interested in remote collaborations
- online communities I’m part of, what makes them interesting, and things I learn from them
- really, anything that has caught my interest lately (spoiler alert: I get interested in a lot of things pretty often)!
Come hang online with me, and say hi.