Shipping Telescope 1.5 — What I’ve Learned

Team Winter 2021 — Off to a Great Start

This week Telescope team has been able to release yet another iteration of the Telescope project. Some of the milestones that we achieved are a considerable progress in porting our front-end from Gatsby.js to Next.js, updating the global theme, global state management logic, cleaning up Eslint warnings. We made a deep dive into the ‘Pull Requests’ section under our repository, resolving over 20 items. But most importantly, we worked and collaborated together as a team.

Image for post
Image for post

It has been very insightful to learn about current team composition and project management approach. We are truly scrum. Our goals are not always known until we find some solution. We are open to changes and try to act proactively while learning on our previous experiences. We embrace the change. What could possibly be a better learning environment?

However, what is even more interesting is that we don’t have designated project managers, designers, quality assurance specialists, cloud team or a scrum master. Yet we complete all that work still. We run triage meetings, estimate tasks, test our code, do sprint planning and host release sessions. Each of us is bound to become an expert in certain fields in the project, help others set up the project to run on their local machine, do research on new tools and technologies that our project might benefit from. This truly is what software development actually looks like in real world. We get our hands dirty — and that’s great!

Lesson learned — don’t use GitHub UI. I kicked things off with breaking our production environment with my tiny documentation enhancement. It was so appealing to add those 2 lines of markdown through the GitHub UI. Not anymore. Stick to the general contribution norms: make an update locally, push to a remote branch, open pull request, let tests run, allow others to review and approve your change, then merge. Better safe than sorry.

I have spent a considerable amount of time setting up various parts of Telescope on my local machine. It was not very clear at first that we need to create a static front-end build for our SAML authentication to work, but now I’m aware. I have also reviewed all the warnings we used to get from Eslint, such as:

Image for post
Image for post

Asynchronous error handling with Express server and missing React Hooks dependencies were definitely among the most popular ones. I have learned more abut best error handling practises by studying Express documentation. It would’ve been great to update our Express to version 5 to utilize built-in error handling with async/await:

app.get('/user/:id', async function (req, res, next) {
var user = await getUserById(req.params.id)
res.send(user)
})

I have also learned that we should be careful with managing refs in clean up functions for useEffect hook. It is necessary to create a local copy of the reference and operate with it. Hopefully these warnings won’t bug us anymore with my quick fix.

I have also reviewed a number of other pull requests, such as updating the theme and porting login component to Next.js.

I am looking forward to working on some of the ideas we discussed during our release meeting today!

Enthusiastic Junior Software Developer striving for discoveries & curious about technology

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store