Wednesday, November 24, 2021

Things I've Learnt After Being A Software Engineer For 6 Months

I started my role as a Software Engineer 1 at 99designs in early April 2021. As I write this we're in mid November 2021. 6 months have passed in the blink of an eye. Thinking about this makes me reflect on what I've achieved over this time.

Coming out of a 2 year stint at a coding bootcamp was a big jump. I feel like I've landed and I'm slowly starting to jog towards my goals. I had a bit of an idea of what to expect in the role by talking to other junior engineers prior to my start date. There's still been a bunch of things both technically and working style wise that have surprised me. This surprise was often met with the thought of:

I can't believe I've never heard about this

proceeded by a Google search and reading through the entry on Wikipedia.

Here is my list of things I've learnt after 6 months as a junior software engineer:

  1. What a tech lead and product manager is

  2. How a business can use many different programming languages

  3. What micro services are

  4. What protocol buffers and remote procedure calls are

  5. Bug fixes are great for learning code bases

  6. You need to have a good database GUI, TablePlus is excellent

  7. It takes a long time to understand code bases

  8. ORMs are often not the preferred way to talk to databases, sometimes raw SQL is what's needed

  9. Organisations can have firm policies on how to ask for help, often need to just figure things out yourself even if its just a quick terminal command

  10. Code is shipped slowly and methodically, you don't want to break a production service by inadvertently shipping a bug

  11. Graphs are an amazing way to visualise infrastructure and to map out a problem, been using Miro a lot for this

  12. Zoom is not a great way to pair program, tools like Tuple are making things much better

  13. Writing CSS and designing things is really not part of my job, the components already exist and you kind of reuse what's already been written

  14. Static typing saves so much time when it comes to autocomplete in your editor, writing Go with the control+spacebar shortcut is a huge win

  15. GraphQL with Apollo is pretty cool, whilst I still miss using fetch and REST APIs I can understand why GraphQL is the preferred choice for big applications

  16. Good companies want you to learn, you should have some work time every couple of weeks for professional development

  17. Writing is a huge skill, both in terms of communicating on Slack as well as writing Request for Comments (RFCs), within my squad at 99designs it's also important to be as thorough in PR descriptions, I now use the "what" and "why" headings as a template when writing these up

  18. An RFC is often required to get input from the team before proceeding with a code implementation