I recently had the pleasure of onboarding another senior developer to my team in TimeLog. As part of the onboarding, we naturally need to get all developers to start registering time. It's not always an easy sell. However, I crafted an introduction email that I share below for others to be inspired by or to … Continue reading The Developer Onboarding Time Tracking Pitch
Category: Uncategorized
Export NuGet Package Licenses to CSV with PowerShell
I needed a way to export all the licenses of the NuGet packages used in a .NET solution with a lot of projects, so naturally I did a search for it - surely others have faced the same problem as I. And there was. Unfortunately, the various solutions didn't quite suit my needs. I needed … Continue reading Export NuGet Package Licenses to CSV with PowerShell
Pushing Developer Growth with an Engineering Career Ladder
I have just completed building the first version of our Engineering Career Ladder together with our Head of R&D at TimeLog. The ladder will serve as a tool for developers (and QA) as well as the technical leadership to grow each developer and in effect all teams. So why build a career ladder in the … Continue reading Pushing Developer Growth with an Engineering Career Ladder
Cleaning up indices in ElasticSearch through Powershell
If you, like TimeLog, are running an Elastic cluster gathering all kinds of data point for analysis of user behavior, server health and performance logs, audit logs for GDPR requirements or other logs you will at some point have to make a decision on whether to keep increasing the storage to accommodate the data points … Continue reading Cleaning up indices in ElasticSearch through Powershell
Single-Tenant API Conventions to the Rescue
TimeLog is special. In many ways. However for this blog post, it's the way our product is built. TimeLog started out over 18 years ago and at that time many applications were built to service one customer only. And to scale companies just copied the whole thing (code and database) to the next customer and … Continue reading Single-Tenant API Conventions to the Rescue
Venturing into Scaling a Monolith
At TimeLog, we are rapidly moving into a situation where we need to discuss how we will keep up customer growth, both in terms of new and existing ones. TimeLog is a single-tenant web application, so we scaling both horizontally and vertically. However, our monolith of an application requires us to scale for peaks. It … Continue reading Venturing into Scaling a Monolith
Finding places to optimize your SQL like a pro
Recently, I had the chance to sit down with a former colleague of mine that is now working full time as a Microsoft SQL database administrator and have a few certifications under his belt. The reason for the meet up was to help me dive deeper into some specific slow pages in our app. This … Continue reading Finding places to optimize your SQL like a pro
Running Jekyll on Ubuntu on Windows
Last year, I moved my site to use Jekyll and hosted it on Github pages. It works really well, but it took me several attempts to actually run the compilation and serving on my Windows machine. It sounds like a simple task, after all entering development mode in Windows 10 and installling the Linux subsystem … Continue reading Running Jekyll on Ubuntu on Windows
Entity Framework Adventures – Concurrency Troubles
I’m building a new project to automate various DevOps tasks, I decided to go for Entity Framework as handling the database. I have a standard SSDT project for the actual database structure, but in the service-project the code part of it is through an EDMX file. Out of the box, the T4 template generates data … Continue reading Entity Framework Adventures – Concurrency Troubles
Proposed SCRUM Retrospective Agenda
As a working ScrumMaster at TimeLog, I have tried to come up with an agenda for each of meetings in a Scrum cycle. At the moment, I find the retrospective meeting the hardest to keep a good pace in order to not exceed 2 hours and make sure that the team covers the most important … Continue reading Proposed SCRUM Retrospective Agenda