What is your specialty/area of expertise?
Frontend development, especially ReactJS.
What inspired you to get into frontend development?
What is your team working on at Trail?
Trail is an app for hospitality and leisure businesses that tracks the completion of daily tasks across sites. It allows teams to easily enter data, making it easier to comply with health audits. Right now we’re working on improving the experience of reviewing and parsing all this data in our app. It’s a fun time because we are really prioritizing performance when handling all this data of everything ever done by anyone ever in our app, so we are fostering a lot of space and process to plan and reflect and research on performance.
What do you love most about working on a productivity-focused product?
Well, I like that we’ve made a product that is designed well for the teams on the ground at sites. I’ve worked in places where the people who would be dominant in the real-life economic relationships we were facilitating, the ones buying the product, got all the attention when it came to design and implementation. I love that our product is actually nice for teams to use - it’s easy enough to use offline for periods and it’s cute. Getting that “on the ground” buy-in is critical for the implementation of this task management system to work.
Any specific languages or frameworks you prefer using? Why?
I love React and Redux, but it’s not really about React and Redux - I love that the combination facilitates selectors. The selector pattern is simply pure functions that you memoize and compose. Keeping data parsing logic up to date across software is so much easier with composable pure functions. All I want in my life is composable pure functions, shared across encapsulated modules.
Do you work remotely? If so, what tips do you have for remote work/life balance?
Yes, I do! I work remotely for a company in Britain. However, even when I lived in Britain myself I worked remotely. The adjustment was rough. I think accepting that the adjustment to remote work is rough is probably step #1 to adjusting. Be compassionate with yourself and pay attention to what’s working and not working for you, understanding that it’s hard to go from an environment where you see humans in person all day and have built-in state changes from home to work, to one where you’re isolated and can easily let your work and home bleed together in a bad way. Enforcing my own routine has helped a lot: morning yoga or meditation, making sure I eat lunch, having alarms set at the end of the day to force myself to stop working. I try to work in a different space from where I’m going to relax after work. Drinking on my couch watching Netflix is a convenient way to force a state change from work to personal time, but it sort of sucks in an accumulative way to do that every day, so I try to go for a walk or get involved in some sports after work. Get thee outside.
What technology and trends are you most excited about?
I used to feel more strongly about certain libraries being THE solution for whatever was at hand, but libraries change out so fast in JS land, suddenly switching owners or developing opinions about your build structure or compilation process. That desire to always be the shiniest library, even when it’s not needed and just breaks upgrading is frustrating. I think moves towards functional programming patterns in js excite me the most. In terms of actual libraries, react-virtuoso has been amazing for building out an enormous list with bidirectional infinite scroll lately. It’s just so easy with that library, it’s eliminated so many headaches and made a lot of nice-to-haves possible in a short span of time.
Do you have any advice for people looking to transition into frontend development?
Don’t psych yourself out before you start. It seems like a lot to learn code because it is, and that’s ok because you will keep learning over years and years at work. Your learnings will scaffold. The loudest, most confident people learning alongside you or mentoring you aren’t automatically right or smarter than you. Once you’ve learned some basics for building an app, the real fun begins. You get to start looking up different ways to structure projects, different ways to design the relationship between actions and content. You can ponder how to represent the differences between state generated from user interactions and state coming back from the server. The better you design your app, the less you trip over it later as well. Making a codebase that consistently works for you as you change it is an ongoing process. It sounds dull, but it’s really creative.