Pros
Disclosure: I am writing this review now that I have left Datawire for a new opportunity after almost four years at the company. I am a big believer in the fair-shake review so this covers both positive and negatives. If you want the tl;dr: It's a good company, with typical small start up challenges. The people are good, the tech is good, the career growth opportunities are good. If you asked if I would join again then the answer is "Yes". I am fundamentally a better engineer and person after working at Datawire. The team is small and everyone is very friendly. The problems are interesting and the technology worked on is cutting edge. There is a strong culture of learning and experimentation that the team embraces from engineering all the way up to the CEO. When I joined in 2015 I was just another backend and platform developer and now I can say I have spoken at multiple large tech conferences, tried my hand at leadership, and become a subject matter expert on Kubernetes, cloud infrastructure, and a number of other less notable things. You will grow if you join this company. Management is really committed to a culture of improvement and it shows in their actions. They’re really big on developing people. Failure is embraced as a means to grow and move forward. Hours and scheduling is flexible… the team is spread out globally so if you want to work very early or very late hours there’s probably someone else online to bounce ideas off of. Nobody really blinks an eye at the need to take care of personal or family matters either. Tech stack is mostly Python and Go... if you like Python and Go then great but if you dislike either then you may want to factor that into your decision.
Cons
Most of this is not negative in the traditional "bad" sense just things to be aware of... If you want (or need) stable and well defined goals they do not always exist and sometimes it is not clear where product direction is headed. Planning feels haphazard and rushed at times. It's a startup so expect startup problems when it comes to not always knowing where the wind is blowing. There’s a bit of not-invented-here philosophy in the engineering organization and it can be frustrating if your mindset is oriented towards solving a problem and moving onto another problem rather than deeply exploring the problem space for a creative and (possibly) better solution. This is not necessarily a negative, but it was a source of frustration for me personally so know thyself and know what you are getting into. When you do build or suggest something "new" there's a deep vein of scepticism in the dept that the "new" thing is actually useful or better... there was a team in-joke that "Complexity is never removed just shifted." ... the problem is that at times it feels less like a joke and more like a team philosophy but it is quite reductionist and leads to deep analysis paralysis. Since the organization is young everyone is learning… including management. This is not a bad thing really, but just understand that there may be moments of confusion because even the upper-echelons are getting a feel for running and coordinating a business across marketing, sales, and engineering. Culturally, most folks work from home and it is hard to develop a sense of camaraderie with your team when you only interact with them in person once or twice a week and usually only at their computer. If you want to be friends with your coworkers rather than just professional acquaintances then it can be hard. The company despite having a strong WFH and remote work culture has not necessarily developed the systems necessary to be 100% effective with a remote staff.