Hey Miguel, What Are You Working On These Days?
Posted byon under
People are always curious about what I do at work. Up until some months ago, I was employed by Rackspace and worked on OpenStack development, something that made total sense and required no additional explanation. But then, in November of 2015 I decided to leave Rackspace to join an unknown little startup called SDVI Corporation. I have been working with them since.
I am constantly asked what is this SDVI thing, so I decided to put it in writing. Now, in the spirit of full disclosure, this isn't a completely innocent idea. SDVI is growing and is hiring full-stack developers, so with this article I not only want to satisfy your curiosity, but also pitch the company to those of you who might find that what we do is interesting.
UPDATE: I'm leaving this article up, but note that as of October 2016 I have left SDVI. If you are interested in applying to one of their jobs, please contact them directly, I am not involved with this company anymore.
What Does SDVI Do?
SDVI offers services to companies in the broadcast media industry. Think the likes of Fox, Turner, Discovery, BBC, etc. Simply put, the goal of SDVI is to help these big media companies bring their video processing workflows to the cloud.
Media companies produce content or order it from third parties. These are the shows that will eventually end up on your TV screen, tablet, smartphone or other device. In the old days, these programs used to be stored on tapes, but as you can imagine, digital files have replaced tapes some number of years ago. Before these digitally stored programs reach an audience, however, they need to pass through a number of processes to get them ready. Each company defines what these processes are, but as examples, some of these can be editing, subtitling, format conversion, resizing for web delivery, etc.
How do they process these shows? They use a combination of in-house and commercially available software products, typically with a lot of steps that need to be carried out by humans. The broadcast software applications that exist on the market are desktop applications that in almost all cases exclusively run on Microsoft Windows. Some of these products offer the ability to automate processing of video files, but the APIs are inconsistent and incompatible from one software vendor to the next. To make matters worse, these APIs are not very well supported, since the applications are really designed to be used interactively. So as you see, companies wanting to create automated video workflows for their content have a bit of a problem.
This is where SDVI enters the picture. We have a growing collection of these not very flexible applications installed on our cloud servers, and we have developed adapters that expose their functionality as a set of nice, clean and consistent REST APIs. Instead of operating directly with these Windows applications, our users move their content to the cloud and then use our web portal to design their workflows, which we run in a fully automated way. Our most brave customers can also opt to bypass the portal and access our REST APIs directly for even greater flexibility. Thanks to SDVI, these Windows based applications are converted to modern, platform agnostic web services.
The SDVI Stack
One of the reasons I felt most attracted to join SDVI is that they are heavily invested in Python and my favorite web microframework, Flask. The backend services are all written in Python 3 and hosted on Ubuntu instances on the AWS cloud. Other important components of the backend stack include Docker, Postgres, SQLAlchemy, Celery and nginx.
Our web portal is an Angular.js single-page application. This application is still under heavy development, but it already has some exciting features, such as a HTML5 based video player for previewing content directly on the browser.
Obviously we use a lot of open source components besides the ones I mentioned above, and we try to give back to the community whenever we can. As part of our job, we contribute bug fixes and improvements to several open source projects. Just off the top of my mind, in these past few weeks I recall having sent code patches to Flask, mediainfo, homebrew, timecode.js and a couple of video.js plugins.
SDVI has been in full-scale operation for about a year and a half. Unlike most startups in this early stage, SDVI is funded by paying customers, not investors. We have contracts with two big networks in the US, Fox and Discovery. Both are already using our product and are very happy with it. We expect more early-adopter type customers to join this year.
We are currently a team of eleven. We all work remotely from our homes, SDVI does not have an office. I think if you are clever in the way you position your webcam during meetings, you could totally get away with working all day on your pajamas. As far as benefits go, what can be better than that? :-)
If you just wanted to know what I do, well, now you know.
Now, if you are a smart and motivated developer, and you think you might find working with a combination of web and video technologies an exciting opportunity, then maybe we should talk. If in addition to being smart and motivated, you think you can help our company become more diverse, then I'm particularly interested, as this is an area where we clearly need to improve (the most diverse thing we have right now is my foreign accent!).
Feel free to contact me if you have any questions or are interested in learning more. Or if you prefer, you can go the official route and send your stuff to firstname.lastname@example.org.
Become a Patron!
Hello, and thank you for visiting my blog! If you enjoyed this article, please consider supporting my work on this blog on Patreon!
#1 Martin Rennix said 2016-03-10T06:22:41Z
Hi Miguel, this sounds really interesting. I guess the question on everyone's lips is "but what about performance?!" Are you actually using Python for video format conversions, or do you offload to a "faster" language for the heavy lifting?
#2 Miguel Grinberg said 2016-03-14T06:28:05Z
@Martin: We write the service layer and adapters in Python. Video processing is done with available tools, as explained in the article.
#3 Otto Vincente said 2017-04-07T21:31:40Z
I have followed your blogs, Great !!!
And thanks tons
I am wondered i have a question.
What do you think about the future of python?
There are a lot of back-end languages which have high performance and light.
I hope you could mind or take time for replying on this question.
#4 Miguel Grinberg said 2017-04-07T23:11:05Z
@Otto: Not sure what to say. There's always going to be a place for Python, high performance isn't the only metric by which one can choose a language, so I'm not worried, Python still has a long life ahead.