Ever have that feeling you are forgetting something right as you leave work? You are probably thinking about your keys or your lunch box but I am talking about your SSL certificate. They don’t last forever, we know this when we setup SSL but that doesn’t stop it from sneaking up on us. It has happened to the big guys like Instagram and Google, at Teem recently, and of course for myself with my own home server.
Recently, I have seen several articles talking about RESTful API design. Of
course this is also a common topic of discussion for the engineers at Teem. I
want to use (and write) APIs that are easy to understand and explain and the
fastest way to complicate your API is nested routes. Just don’t do it! Do not
create nested routes in your API. Let’s keep our APIs simple and create one
endpoint per resource and if filters are needs, use GET parameters. This is
simpler to document and simpler to maintain and ultimately, easier to use.
When I first started this blog, I started with My Management Philosophy. In short,
be a multiplier for your team and reduce friction… Successful managers make other people better at their jobs, “multiplying” their productivity.
When I wrote this, I was focusing on the ideas as a guide. “Should I do X?
Does it multiply my team’s effort? Does it simplify their job?” Underlying
this is that good leadership requires empathy and trust.
About a year ago we set down to document the core values of the engineering at Teem. After a lot of discussion we narrowed it to three core ideas
- maximize positive impact
- be a good friend
I would add one more unofficial value: mentorship and continuous learning.
About the same time we also started thinking about how we describe/define an
engineers career path and we quickly realized that measuring progress is hard
and that measuring commitment to our core values is even harder.
Should you remove data from the database or simply mark it as deleted? At Teem we have a lot of data that we need to manage and often “physically” deleting the data from disk can be problematic. Either the users simply wants to undelete something or the deletion would cause problems for a log. The generic solution to this problem is to soft delete/archive the data by adding a deleted_at timestamp field to the table and then filter all queries to hide rows that have been marked as deleted.
Perhaps the one piece of ubiquitous technology that you will find at any new
tech company is
git. There are a couple of other technologies that you will
probably find, like AWS, but
git is the only one I expect to find everywhere. It is
also, surprisingly, many developers number one frienemy. I want to share some
of my favorite tips and tweaks that I have used over the years to make it all
friend and never my enemy.