Worklog 100918

Done

  • Read through PR feedback from senior contractor
  • Changed up how our routing works
  • Worked on refactoring our folder structure
  • Worked on refactoring our state architecture to use Redux
  • Finished watching React Testing for Beginners course from Scott Tolinski on Level Up Tutorials

Today I Learned ????????

Today I learned about the Promise.all syntax, and how to avoid making code synchronous with async/await when it could be asynchronous.

Worklog 091018

I did that thing again where I went a bit without writing a worklog. Man it’s tough to stay consistent sometimes. It’s easy to fall into not prioritizing things even though you know they’re really helpful (like these worklogs).

What I’ve done

Trinity

I started organizing Notion for our company. I signed us up a couple of months ago and have been slowly adding a few things here and there. I’m trying to find a good organization that will work for the team and ensure that everyone (no matter if it’s their first day or their 1000th) can find out anything they need to know about the company.

I sat in on a call with a new vendor this morning.

I also worked on our company positioning statement.

This afternoon, I worked on setting up custom exception logging with Sentry. We now have nicer errors when something goes wrong with any API calls. ????

Other

This morning I got all my tasks and appointments organized for the week, shipped some small changes for a freelance project, and made my FitLog for today.

What I’m working on

Trinity

I’m continuing to work on interviewing high-level execs so I can refine our positioning statement.

Other

Tonight I’ll be working on a freelance project with Rails. I’m working on building out a 2m+ record searchable database with Rails and Elasticsearch. That’s a first for me, so I’ll write about how it goes this month!

Today I Learned

Sentry’s Raven.js is actually on its way out, it seems. It still gets support and bug fixes, but new features are being added to the npm packages.

https://github.com/getsentry/sentry-javascript

Interesting Links

Here’s a few links to things I’ve read, watched, or listened to:

Worklog 082018

Taking off Wednesday thru Sunday – really looking forward to some vacation! Well, vacation from my day job. I’ll probably still do some DevLifts open source work ????????

What I’ve done

Today I got a lot of smaller UI components hooked up to the API at work – so we’re getting really close to launch.

Today I Learned

React’s setState accepts a callback!

Interesting Links

Here’s a few links to things I’ve read, watched, or listened to:

Worklog 080918

What I’ve done

Today I fought with an issue all day where I was trying to pass some class functions from a Container component down to a dumb component via the Context API, but I couldn’t use the functions that call this.setState because you can’t call setState in a render. I still haven’t come up with a great solution — I ended up just converting the dumb component to a smart component.

This isn’t the architecture I came up with — all the data should live in the feature Container and get passed down. I need to write more in-depth on this issue at some point — maybe someone has a solution.

This morning I also paired with Kurt Kemple, a maintainer of GatsbyJS, and got a walkthrough of how Gatsby works (and how I can make my first commits to the project ????). Looking forward to it!

Today I Learned

destructuring nested objects!

Interesting Links

Here’s a few links to things I’ve read, watched, or listened to:

Worklog 080318

What I’ve done

Today I mostly worked on refactoring — but I did start implementing a new state management architecture. Inspired by this post I found on Medium, this is what I came up with:

For each feature, we’ll have a container that is responsible for retrieving data from our store as well as storing data into it. It may also have some local state that will be needed feature-wide. We’ll then create a Context using React’s new Context API (new in 16.3) and use that to pass data down to whatever components we need to.

This way, we get the benefits of Redux to share state that’s needed across the whole app, as well as less of the Redux boilerplate that comes along with shoving everything into Redux. Using the Context API, our dumb components can easily grab whatever props they need without prop drilling.

This setup feels great to me. Tyler, my frontend colleague, felt good about it too. I’ll post an update in the future after it’s implemented to share how it’s working for us.

I also set up Continuous Integration with CodeShip today.

What I’m working on

I’m currently still working on the above, as well as continuing to research how to automatically keep Rails API docs up to date (and how to keep sample data automatically in sync with my json-server mock API — thoughts appreciated!

Today I Learned

Had a lunch and learn with my chief architect — learned all about Microsoft’s history of trying to force people into upgrade cycles so they could sell more software, and how they tried to kill the open web and create their own private web so they could create a cash-producing ecosystem where they would have gotten paid for Visual Studio to write web code, paid for web hosting to allow the page to live on MSN, and power to control who and what got to be discovered. Yikes. ????

I also learned more about metaprogramming, a concept I was only vaguely familiar with (and still need to do some further reading on), and we also discussed functional programming concepts in depth. I’ve been learning a lot about functional programming in JavaScript over the past year, so it was great to hear that I’m on the right track.

Lastly, I learned that you can rename variables as you destructure them from objects today! ????????

Interesting Links

Here’s a few links to things I’ve read, watched, or listened to:

Worklog 080118

Meetings, bug fixes, and working on a new feature. ????

What I’ve done

Last night, I did some research on automated documentation in the Rails ecosystem (looking for a way to auto-document the API). Also looked into Swagger and APIpie. GraphQL would be the best solution, as it’s inherently self-documenting, but that’s not possible right now.

Most of the morning was meetings for DevLifts and the Coding Academy. Then I fixed a bug in our routing that I thought I fixed yesterday. I also fixed a bug that was caused by a discrepancy between the Rails API and my mock json-server API.

The rest of the day was spent working on the new feature that I’m shipping August 15.

What I’m working on

Tomorrow I’ll be refactoring the screen I built for that new feature today. I’m also planning to research how to write a script that can automatically hit all Rails routes, get some sample JSON from the response, and update my db.json file that json-server reads (so my mock API can stay in sync with the Rails API). It’s important that they stay in sync.

Why worry about the mock API if you have a Rails API locally? I’m glad you asked! I personally want my codebase to be totally accessible even if no other parts of our environment are installed and/or accessible. One shouldn’t have to download Docker, our containers, 40GB database, Ruby, and the Rails app just to be productive in the frontend. Frontend engineers should be able to make commits to the frontend on day one, if they wanted to.

Blockers

There were some blockers on the API end, but my boss got them fixed right up for me within a couple of hours. ✨

Today I Learned

Interesting Links

Here’s a few links to things I’ve read, watched, or listened to:

Worklog 073118

Meetings and bug fixes, bug fixes and meetings.

What I’ve done

Last night I got the new feature I’m working on at work hooked up to more API endpoints.

I also learned how to use axios interceptors, and integrated this into my app so the JWT gets sent with every request by default. ✨

I also wrote a function to disable Sentry errors unless the app is in production, as I’m tired of getting emails from development mode.

I also played with Parcel’s --public-url CLI option to change the path of the assets in the build’s index.html output so it would be compatible with our production environment.

Last night, I also got a bunch of menial tasks knocked out for DevLifts. I’m learning that batching is pretty much a requirement for me to get anything done these days. Way too many things going on and too much stuff to hold in my head.

What I’m working on

I’m continuing to work on getting the new components for this feature built out and stateful.

Blockers

No blockers ✨✨

Today I Learned

Interesting Links

Here’s a few links to things I’ve read, watched, or listened to:

Worklog 073018

Happy Monday!

What I’ve done

Friday, I finished all the documentation for our new React environment I’ve set up at my day job. It was a new experience to think through how to best present documentation for lots of different types of people who may be looking at my repo (now or in the future). I’d love some feedback so I can learn to write better documentation.

Over the weekend, I watched some videos on testing Javascript and Redux with Jest, and I finally made a little headway on the Fit CLI project we’re getting off the ground at DevLifts!

What I’m working on

Today, I’ll mostly be working on building out components for the feature I’m supposed to ship within the next couple of weeks at Trinity. Most of the day will probably be spent pairing with the other frontend dev.

This evening, I’ll probably also work on a few things for DevLifts:

  • UX Review of our existing site (we’re getting ready to start a design system)
  • Set up payment re-try settings in Stripe (for failed membership charges)
  • Set up new MailChimp automation to get testimonials from members having a good experience and to notify me to reach out directly if someone is having a bad experience

And at some point today I have to get a quote out to a client for a new project.

Blockers

Right now, I mostly feel blocked just by the sheer amount of things going on. If I can get past my own mental fog, I’ll be golden.

Interesting Links

Here’s a few links to things I’ve read, watched, or listened to: