Code with Kristian • I make videos and write about software development and programming tools
What I Use: Tim Roberts
What does Tim Roberts use?
What I Use is a series on the Byteconf blog exploring how people in the software industry do their best work.
Who are you?
I'm Tim Roberts, who in the late 90s/early 00s was one of those kids that couldn't get C to compile so took the "easy" route of web development. I tell my bosses that I'm a Software Engineer but really I just like to talk to the computer, see how its day's going, and ask it to help me with some things Product wants. Usually the computer is helpful but I'm bald for a reason...

How do you describe what you do?
Imagine that instead of a computer it was a factory of tiny Oompa Loompas and I'm the factory boss. Each worker is really good at following instructions but each one talks a slightly different language. One might speak Spanish while another French. My entire job is translating instructions for my worker from English into its language(s). Hopefully, if I do my job right, I don't lose too much in translation.
What do you use to write code?
Usually I use VS Code because _why not?_ It's lightyears ahead of Notepad++ and who doesn't like a pretty GUI? If I'm inside of a VM/SSH'd into a box, I beat my head against a wall trying to remember the `vi` commands that I need to use to edit some config. In my mind, _where_ you code is far less important than _if_ you code. Write your code on parchment and deliver it via carrier pigeon for all your users care.
Are there any open-source libraries or frameworks that you'll always use in a project?
My go-tos for any type of project are Ramda, RxJS, and Jest. With those three things, it's beyond easy to get a prototype up or validate an idea. Then, depending on the project, it's either React/Redux/Webpack/et al for UI work or Koa if it's a server. What I've found is that it's way easier to add complexity/modules to my projects than it is to remove that complexity later. The less packages I use at the beginning, the easier it is for me to just get the job done without mucking about in documentation.
What hardware do you use?
For work, it's a MacBook Pro 15" with the touchbar. It's great and beyond what I would ever actually need in a laptop. My personal computer is a box that I build with an i7-7x Kaby Lake processor, 16g RAM, a few SSDs/m.2's, and dual-boot Ubuntu Desktop and Windows 10. Slowly upgrading the graphics cards to get better performance but realistically I rarely top out that box unless I'm doing something stupid like machine learning in JavaScript.
What do you wish was different about your workflow?
I wish I could tell my computer what I needed to do and it would walk me through the steps on how to get there. So instead of me taking a JIRA ticket and it saying "Build a login page" and then me having to figure out what that _means_ in Worker speak, my computer would tell me in English what I needed to tell my worker and I could figure out how to code each step. If I didn't get a step, it would break it down further and further until it was writing boilerplate code for me to fill out. It's a pipe dream but wouldn't that be cool?!
Where can people find you online?
If reading crappy code is your thing, my GitHub: https://github.com/beardedtim/
If reading crappy essays is your thing, my Medium: https://medium.com/@beardedtim
If reading crappy tweets is your thing, my Twitter: https://twitter.com/cirsca