Skip to content

Notes After Working For A Year

Published:Suggest Edit

What I learned over the first year’s working experience.

Many of the comparisons in this blog are based on the gap between the teams of my peer’s and mine. If I didn’t know how ridiculous the average team was, I would take my team’s professionalism for granted.

Technology

Not everyone has the privilege to create new services using their favorite languages and tools. We are lucky to have the freedom to choose our technologies and programming languages in the team. Thanks to the team greatly adopting micro services, I only need to focus on my part and not worry about different programming languages, coding styles, tools, etc. other people use.

The technologies we use are new and maintained. We are stuck with Jenkins but it is no big deal. At least we are not dozens of teams in other departments working on the same legacy PHP mono repository. The slightly difficult-to-use CI/CD is nothing.

Team

Team members are super friendly. They are happy to offer help to anyone, newcomer or not. I am never afraid to report troubles and problems in the public channel because I know I will get assistance and solution rather than criticism.

My manager and upper managers are really nice people. They are practical and familiar to technology because they were engineers before being managers. I have seen how dumb decisions non-technical and ignorant managers can make. I am so glad that managers in my department are also good programmers.

Projects

I am grateful that I got the chances to build new projects and learn new things. Not every new graduates can have such good environment to grow.

There are many new graduates that spend a year only writing documentation, adding tests, doing paper work and handling simple basic tickets.

Atlassian

I can’t imagine that Atlassian’s product would be such a pain to use. Confluence is like a graveyard for thousands of documents that are either potentially valuable or pointless. The search function is just better than nothing.

I tried to develop tools for Confluence. They provided API references and libraries to interact with it but one critical feature is missing: convert Confluence XML to Markdown. I love to have Markdown or text sources of my documents. Because they can later be converted to any other formats if I want.

The best I can do is to write documents in Markdown and put it on Confluence using a script. This way I can have the full control over the contents I wrote. Otherwise anything I put on Confluence will never be converted back to the source.

I could whine about Confluence all day long. So I’ll stop there. As for Bitbucket. It is simply not comparable to Github.

What can I do. I can only learn to get used to them.

Take-away

Software engineering job is not just about coding.

I only cared about my code before working. Now I review other people’s code and ask others to review mine. I think about Git workflow because the commits can get messy if there are several people using it.

Formatting and linting have never been so valuable.

I appreciate automated CICD.

Compilable programming languages such as Go are wonderful, especially used with Kubernetes.

Error handling and logging are critical to monitoring. I now think about how the error messages will help the on-called person in troubleshooting.

I try to squeeze every bit of resources out of it and optimize the code for better QPS. It is truly rewarding to see better results from the stress tests.

It is a pleasure working in the team.


Previous Post
Clair Obscur Expedition 33
Next Post
Setting Up A New Mac