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.