Senior Software Engineer at sprd.net AG, TeamShirts
– ← Back to cvIn recognition of my contributions I was promoted to senior software engineer at TeamShirts.
In the following I’d like to highlight some developments and contributions.
TL;DR
Additionally to my frontend focused work this role introduced a stronger focus on team support and consulting. I found particular joy in mentoring junior developers. The DevOps related work I got involved in previously continued and expanded in scope. I also spent some time investigating and improving site reliability and performance. Occasionally I would deal with security related issues as well.
Team support and consulting
An aspect of my work that I feel strongly about is supporting the team.
I found joy in solving problems with my peers and enabling them to progress with their tasks. It felt rewarding to be helpful to the team and exposed me to a broader spectrum of problems than my immediate tasks alone.
I’m convinced that some of my best work with the most immediate and lasting effect was in collaboration and consulting with my peers.
In addition to team internal collaboration I was regularly part of cross department efforts such as:
- extending a restrictive pricing model across several services
- consistently migrating and updating data across different setups and data centers
- updates to and communication regarding changing APIs
- the default person to contact at our team for some technical issues
On several occasions I supported team development by:
- sharing recent findings and developments
- documenting current features and shortcomings
- holding internal talks
- initiating and documenting meetings to discuss development topics
In this role I was also frequently involved in hiring, onboarding and the mentoring of junior developers. I found particular joy in mentoring - in the process of thinking through something together and in how questions often allowed me to restructure my thoughts and see the status quo differently. Bluntly: There seem to be few things like a fresh pair of eyes to find improvements to the status quo - it’s a joy and a privilege to support people in this.
DevOps related
I was frequently involved with diagnosing and fixing production issues. In addition to that I was also given agency and resources to improve the status quo.
In scope of my work regarding this topic I made the following contributions:
- Introduced logging for NodeJS services
- Defined and documented information to log and discussed this with the team.
- Wrote code to integrate logging into several projects
- Integrated with distributed tracing
- Introduced Prometheus metrics
- Consulted with developers to add logging and monitoring to the teams PHP codebase
- Evaluation of reliability and performance constraints
- Monitored and fixed runtime issues such as memory-leaks, out-of-memory and connectivity issues.
- Improvements to build and deployment pipelines
- Adjustments to CDN configuration
- Improvements to asset delivery to reduce traffic and increase reliability
- Accommodations for A/B tests and changing services
- Implemented and verified database backups
Site reliability and performance
Supporting software in production means to me that I have an interest in continually seeking improvements to it. The use of monitoring technologies was frequently helpful here.
Where possible I like to measure a problem first to confirm that it indeed happens as suspected. This protects the investment of my time and is a helpful support when discussing problem priority. In addition this approach makes it possible to measure improvements and notice regressions.
Initiatives related to this topic include:
- Improvements to cache handling for a GraphQL API
- Improvements to Web Vitals and similar metrics across different pages and services
- Aggregation of field data to identify problem areas
- Adjustments to existing solutions to alleviate issues
- Identification and improvement of bottlenecks in site rendering performance
- Documentation and communication of developments with the team
- Improvements to asset handling
Security related
I’ve been interested in some aspects of IT security privately. Every now and then I would use some unstructured time between tasks to check for suspected security issues.
The majority of my hunches didn’t reveal any problems, but I was happy to try and make some checks that potential mistakes were not made.
For example I checked the names of product drafts for possible script injections:
Over the years I was happy to identify different security issues and aid in understanding and fixing them. Issues included broken authorization schemes, cross-site scripting, outdated software and bad certificates.
In addition to my personal interests this job also allowed me to collaborate with both internal and external pentesters to discover and fix security issues.