Erin Fox

Transcript from Friday December 10th, 2021

# Q: Hello! So I have an associates degree in website development, can I get a remote job in react, if so what should I study to make myself more valuable? – 匚卄卂几

You definitely can get a remote job that uses React. Many jobs now-a-days are remote first and use React! I would study JavaScript fundamentals and then dive into tutorials, etc on React.

# Q: Hi @erinfox I'm not familiar with your work, how would you describe your day-to-day at convertkit (which I'm also not famliar with)? – (d,f,g)=> {}

For the past year and a half I've been a full-stack engineer at ConvertKit. Our product is a Creator Marketing Platform that helps creators earn a living online. Whether thats digital commerce or email campaigns. I am on the builder squad so I work on the email editor. It's a lot of fun. Oh and I am remote! (I focus on react and rails lately)

# Q: We’ve struggled a bit with RN in a monorepo environment. Any experiences with working with monorepos and the tooling around RN regarding that? We tried rush and quickly changed to lerna, which we are using now… – Rintsi

Ah yes, I only have experience with micoservices with RN. The smaller repos worked well for us when launching the app. I would look into Infinite Red and their blog posts. They should have more information on monoreps

# Q: What about the big issue when working with React and other backend API which is the interface. There is no way to integrate typing and signature in the IDE. Is there some way to achieve this? – shadoweny

I only have experience with Node for the BE with React Native, and at the time it was my first job! So I am not as familiar with architecting it.

# Q: What's the biggest challenge you've faced working on an email editor? – (d,f,g)=> {}

Oh my goodness. So many! Honestly.... tables 😂 We write react components for our web version (email editor and landing pages) and then we have to make sure it looks good within emails. ESP are wild. We use Litmus A LOT to check our components and write a lot of tables. It's not the most fun... but we got to do it.

# Q: What's your thoughts on TailwindCSS? – op

I LOVE TAILWIND. We use it at ConvertKit and the developer experience of it is fantastic. There is a bit of a learning curve to get it rolling, but once you get it its fast and fun. (But I would learn basic CSS first!)

# Q: How important are complex algorithms on your day to day basis working full stack with react? Is it necessary learning some of them in detail before applying? – honeypot

There are definitely some complex functions and algos happening in our code, but I would not say I write them everyday. It's good to go over them when applying for jobs, but I would ask the hiring manager for the job you are applying for to know what to expect before learning something you won't need to do right away.

# Q: Hi Erin! How do you deal with prefernce differences between developers on your team? For example, one developer likes arrow functions and another doesn't? Thanks 🙂 – Louis

Great question! We all have our favorite ways of writing functions and editors. We try to keep things uniformed and the way we keep it that way is through code reviews. All PRs are reviewed and approved by 2 other engineers. That when we give feedback and come up with solutions as a team.

# Q: Javascript or typescript, and whay? – mazin

I have been avoiding Typescript.... so I have to say JS alll the way. (for now 😂)

# Q: What is your ideal stack for a react native app? IE. Component library? state management? Querying? expo? testing? Styling? Etc – AriK

oooo love this question. Let's see..... RN, Storybook, Tailwind, GraphQL/Apollo, JS Testing Library, and expo is sooooo nice too

# Q: I'm curious how much control over visual design someone working at a larger company with an already established product has. How much visual design is left to do? Do you have someone telling you exactly what something should look like or is that something you decide? – Jooooo

At ConvertKit, we get a lot of say on designs when we are coding a new project. Most issues come from sticking with the design system or pushing back on what the designer wants to form a compromise. Usually larger companies have small teams with room to have the communication. Overall, it depends on the company and the way your workflows are. Some are loose with it and others are more uniformed.

# Q: What is your thoughts on remote work? Do you prefer it to working in the office? Does it affect your teams communication and productivity? – KNDRK

I actually hated remote work at first. I was 1 of 2 remote workers on a team of about 20, and the rest were all in the office. It took working at ConvertKit and learning how to do remote the right way to fully fall in love with remote work. I love the flexibility. I am not sure I can go back to in office!

# Q: Hi! what’s your favourite thing about working with RN and your most hated thing about working with it? – simon

I love mobile anything. I believe it's the future for about... everything. That's what I love about RN. It's scrappy and the fact that any JS/React engineer can hope over to write mobile code?!?! That's amazing. I dont like..... that not enough people use it

# Q: I would like some general advice regarding how to migrate from react web to react native. I have been working with react web for the past 5 years and will start at a new work in a couple of months are they run their app I react native. What to consider? Pros and cons (in general), resources to learn that you prefer? – vhlongon

Ah! Congrats! You're about to expand your knowledge so much. I learn RN first, and then moved to Web. The biggest struggle for me was syntax (no more divs, now it'll be Views). I think you will be able to make the mobile switch easily. There's a lot of patterns with both React & RN. The RN docs are fantastic. They were not this good when I started out. There's also a GREAT Frontend Master's course for RN.

# Q: For a rn app you are building alone, why use graphql + apollo over something like Rest + react query? – AriK

It depends on the size of your app. I have a silly little cat app I made with Expo that does not use GQL/Apollo since it just a small thing. But I can see using that combo for more enterprise apps.

# Q: What's your view on React with Rails backend...I tried it once but user authentication and managing session was a pain...Do you think express is better? – Lateef Azeez

At ConvertKit we use React and Rails. We use Devise for authentication. It's a magical mystery box that comes with a lot. I would look into that to see if it could help. I haven't tried express with that mix before.

# Q: What process does your team follow to determine what is added to the component library? – kelseyblake

We try to follow our design system components as much as we can. We have a "frontend" slack channel where we talk about components and if it is reusable enough to add to our component library.

# Q: From your experience what are the pros and cons of using expo or a react native barebones project? Which use cases those 2 approaches fit in general? – vhlongon

Both projects I've worked on started off with Expo, then ejecting it so we can go the next level. Also depends on the project!

# Q: You mentioned GraphQL and Apollo. What do you use for authorization? – Rintsi

I think Apollo has authentication and authorization that help with your app control access. I would check out there docs as I am not as familiar with it.

# Q: Do you think crypto will be essential for any developer in 2022? because it's been a while that I've seen crypto coding abilities in every new job required skills. as a react developer who hates typescript and crypto? what do you suggest me to do? force myself to learn them? – alixsep

My advice is to do work you are excited about. If that's react, great! If that's crypto, great! The skills you get from them will help you out throughout your career.

# Q: Who would be more desirable, especially in a company like ConvertKit, an expert nodejs developer or another front end? – Weismann

Hmm I would have to create my own option and say a Rails expert 😂

# Q: I'm looking to create a typescript react component library, but there seems to be few resources on best design practices for components. Have any resources or things to keep in mind? Its difficult to use bigger library source repos like Bootstrap/MaterialUI as they seem a bit otu of reach for an individual dev. – msrobinson

Oooo good question. I would look at tailwind for inspo, and think about using Storybook for the library. "Best practices" is a hard question since everyone has their own thoughts on what is "best"

# Q: Preferred state manager (s) nowadays? And any significant difference from web to RN? – vhlongon

I still like React Hooks! I still think they are so fun to write and with useContext and useReducer.... :chefs-kiss:

# Q: Followup (kind of). What are your thoughts on typescript vs javascript for creating front-end apps. Does static compile-time checking outweight run time errors, or does the dynamic development process outweigh the overhead of type creation? – msrobinson

I have zero experience with typescript so have to lean towards JS all the way.

# Q: Thoughts on Svelte? – Level

Haven't used it, but it sounds great! Anything about improving UI sounds worth a try

# Q: Have you used styled components ? I understand you like tailwind, but do you see any downside of using it? Particularly for me was that lack of ergonomics to work with dynamic values (create dynamic styles base and props, etc). – vhlongon

I've used style components before and think they get the job done. We try our best to keep everything with tailwind, but there are times I have sticky css situations where style components would be helpful. It's hard to commit to one and they both have positive and negatives. (Not the best answer haha sorry!)

# Q: How have u solved problems around folder architecture and structure considering scale – ayo

I thought I was good at folder structure and then I started learning rails and it's a hot mess! It's much easier to organize your own projects than huge a monorepo. Lately, I'm all about DDD (domain driven design) and try to map everything out folder-wise first.

# Q: I’ve worked 7 years as a full remote. What do you find to be the most challenging thing in the way of working full remote in terms of team dynamics? – Rintsi

I think the hardest part is getting lonely. I love my team but sometimes I need some face-to-face interactions. I'm an introvert, so it feels against the rules to say that! But learning how to balance remote work and in-person things is hard for me.

# Q: Favorite programming paradigm? Object Oriented, Procedural/Imperative, Functional? and why – msrobinson

Functional! It's madness, but I like it.

# Q: What would be your suggestion to someone who want to learn Rails (currently on Nodejs)? – Lee

I hate when people says this, but read the docs. The rails docs are great. I have trouble finding (updated) Rails tutorials or post. If anyone has some, let me know!

# Q: Working with RN, do you find you ever have to dive over to the native side to adjust components that don’t quite do what you need or do you stick more on the JS side of the tracks? – simon

Totally. I think that's part of the beauty with RN. It has the flexibility to create "native" components. Sticking on the JS side is the goal, but in the end, you might have to dive deep. But then you get to learn so much more!

# Q: Is your email editor open source? – teut

It's not 😦 that would be real cool if it was though. Maybe one day

# Q: Hi Erin! How do you approach version control inside your team? i.e. what platform you guys prefer, branch organization, workflows, commits messages or something you specially want to highlight – MilDeBuñuelo

Sorry! Missed this one. Hmmm we do most of our communication on GitHub and when we need to update our design repo version we deploy it pretty quick. We aren't the best at keeping up with versioning, and it's something we and I need to learn more about to keep up to date. Always something to improve with!