I’m Alexander from Antwerp, Belgium. Currently I’m working as a frontend developer on an eCommerce platform named Avail (React). There’s no one else on my team doing frontend and I like it that way because I’m learning and implementing new tools/conventions/… each week or two and I wouldn’t be able to do so if more people joined the frontend.
The current stack of Avail is:
- SASS (SCSS with BEM convention)
- Git (Bitbucket, not my choice but I like it, and I’m currently writing commit messages in AngularJS convention because I want to try out the automatic changelog generation)
- Material UI with styling on top (this is getting implemented, coming from Semantic UI)
- Lingui for translations
- Jest & Enzyme for tests (not a lot of tests yet so far…)
- Semver for changelog and branching
- JSDoc for documenting the code (I use the docs generator of the JSDoc)
- ESLint & Stylelint
- For myself: VSCode (with about 15-20 plugins), Inconsolata/Fira Code font, Dracula/Solarized theme, Vim (I used to work in terminal only, then switched to VSCode with Vim plugin), iTerm2, Sizzy (responsive browser testing), Bear (for notes with MD support), PixelSnap (for measuring on screen and screenshotting), Slack, Sketch (don’t use this often), I’m a very big fan of keybindings.
What I want to add to the stack/project:
- Looking for better (immutable) options than Redux
- More tests
- Continuous deployment and feature flags
Right now I’m learning a couple of things:
- Improving website’s speed by syncing state with Redux store/local storage better to be shared across multiple pages/components and reducing API requests.
- Improving website’s performance by mounting/loading components/images when they get in or near the viewport and not before.
- Writing better tests for React with Jest (and Enzyme or React testing library)
- Designing (designer not present anymore), there’s one page I facelifted/improved (product detail page). My team was satisfied with the result and I’m now creating a new page. I just code the design straight away, no Sketch or Photoshop. I start by typing out the structure/layout/user scenarios and then sketch it on a piece of paper, then code that and style it. I do have a team that guides it with me in the right direction and helps me, all output belongs to the whole team, not an individual.
- I want to look into continuous deployment and feature flags (have just read The Phoenix Project).
Avail (full-time job) and self-education is taking up most of my time. I’m writing down ideas for small JS packages I could develop to practice my newly-learned stuff, but I haven’t made any yet or even started working on any so far.
The biggest challenge for me currently (on Avail) is finding a right balance between providing (for myself) maintainable/working/tested code, rapidly adding new features to the website, and implementing newly-learned stuff. I always want to provide the best code/work but sometimes it’s hard to make a balance. Should I provide and make the team happy with a new feature and don’t write tests making the code more error-prone and crossing fingers or should I spend time educating myself in tests and writing them and not releasing/implementing new features? I try to guess the pressure of the team wanting new features and base myself upon that. What I really would like is to get to the point where I’ve like catched up with all the best practices etc and only having to learn new stuff coming out instead of catching up (I do believe I’m slowly but surely getting there though).
I’ve just got two lil kitties and loving them:
Thanks for reading!