@xngwng
Co-founder Moesif.com (API analytics). Previous Microsoft & Zynga. CS from MIT.
My company Moesif (https://www.moesif.com) provides the most advanced API analytics platform for API providers and API users.
But I am still an engineer at heart, and love participate in developer communities and contribute whenever I can.
https://techcrunch.com/2019/01/04/moesif-raises-3-5m-seed-round-to-provide-insight-into-api-usage/
Nothing here yet.
There is no real best path. More what you are interested in doing, and market demand. Some general recommendations: Focus on core problem solving skills instead of superficial tech. Go deep first before go wide. Try to master a smaller set of technologies/languages, before jump onto the latest shiny object. If you really mastered one language, you'll master another language much easier. Or else, just knowing how to do "hello world" in 10 different languages doesn't make you good at any. In terms of jobs to apply for, I think it might be a boost for careers to get a job at one of the big tech companies if you can. It really helpful get the training that comes from big software companies than other industries. A lot of hiring manager like brand names on resumes. Most important, your personal interest matters a lot. If you really enjoy something, you'll get better at it faster, and work will feel less like work.
When hiring for startups which element is more important? Raw smarts (who seems have raw smart, core problem solving skills) Experience (already worked on large/scalable production system, or tech stack that the project uses). To elaborate, I see a lot of startups (even FB, or snapchat) where their first set of employees are recent college grads from top schools (but very little experience), but then I heard VCs say founder should try to hire people who already have a lot of experience. I wonder from your perspective, is it more important that someone is raw smart and are moldable, or already have tons of experience?
Ranking priority must have associated required action for it to be effective. Or else, what does high vs critical mean? P0: Drop everything else and fix it now. P1: This should get fixed by next release (should block the release if not fixed.). P2: Fix if have time. (do not block release if not fixed.) P3: Nice to have or probably won't fix.
definitely validate the access of the token on the server side, and let the server API decide to provide information or not. If token valid, let it succeed, if not valid, return 401 errror on the api. make react router dumb. on the page where the information suppose to be protected, call your backend API to loaded the information on "componentDidLoad" or something, if succeeded, display the information, if get 401 error, you can use react reouter middleware or something to kick people autoatically out to another page that says login required. Although you can keep some state on the client side, like "if user logged in, i.e user have a token or not", if user don't have a token, you can use react router to automatically direct user to a login page to obtain a token. But all VALIDATION must be done on the server side api.
That is my point. I love Gatsby.js, it already can generate static website from a variety of sources. Most developers like to write content in markdown (as you mentioned), and probably check into git, and Gatsbyjs already can generated pages directly from your repo. Why cosmicjs? I can see advantages of headless API driven CMS (like CosmicJS or Contentful , after all I love APIs, lol. :)), where like an Ecommerce website, where there is a lot of content with frequent changes (made by non-technical people), and of course you wouldn't want to regenerate all the static pages when you change a description or something for a item for sale. But I just feel using it for documentation feels overkill and expensive.