13 years in the industry; Mostly in startups and R&D departments. Spent the last 3 working on my own projects / research following an acquisition. In that time, I authored the Serpent.AI framework, released a handful of Python packages and worked on a few curios (e.g. custom style transfer implementations, auto-painting application with NumPy and OpenCL). I'm a pretty collected, friendly person; Competent and professional. I prefer working in smaller teams / companies (more hats to wear, closer to product) with insightful and good-natured colleagues.
12 years in the industry; Mostly in startups and R&D departments. Spent the last 2 working on my own projects / research following an acquisition. In that time, I authored the Serpent.AI framework (streamed it on Twitch), released a handful of Python packages and worked on a few curios (e.g. custom style transfer implementations, auto-painting application with NumPy and OpenCL).
I was planning to return to the working world in the later half of 2020 but with the COVID 19 situation, I figure it's wise to start considering it now. I'm a pretty collected, friendly person; Competent and professional. I prefer working in smaller teams / companies (more hats to wear, closer to product) with insightful and good-natured colleagues. I'm alright with freelance too if you don't have payroll in Canada.
12 years in the industry; Mostly in startups and R&D departments. Spent the last 2 working on my own projects / research following an acquisition. In that time, I authored the Serpent.AI framework (streamed it on Twitch), released a handful of Python packages and worked on a few curios (e.g. custom style transfer implementations, auto-painting application with NumPy and OpenCL).
I was planning to return to the working world in the later half of 2020 but with the COVID 19 situation, I figure it's wise to start considering it now. I'm a pretty collected, friendly person; Competent and professional. I prefer working in smaller teams / companies (more hats to wear, closer to product) with insightful and good-natured colleagues. I'm alright with freelance too if you don't have payroll in Canada.
12 years in the industry; Mostly in startups and R&D departments. Spent the last 2 working on my own projects / research following an acquisition. In that time, I authored the Serpent.AI framework (streamed it on Twitch), released a handful of Python packages and worked on a few curios (e.g. custom style transfer implementations, auto-painting application with NumPy and OpenCL).
I was planning to return to the working world in the later half of 2020 but with the COVID 19 situation, I figure it's wise to start considering it now. I'm a pretty collected, friendly person; Competent and professional. I prefer working in smaller teams / companies (more hats to wear, closer to product) with insightful and good-natured colleagues. I'm alright with freelance too if you don't have payroll in Canada.
Programming has always been a second-class citizen on Twitch and has quite the fabled history. It started with people uniting under specific games when nothing other than gaming was allowed. A "Game Programming" category was eventually added as a special exception. Then Twitch launched Creative as the first non-gaming category. There was initial hype, Game Programming slowly died as a result and Programming was eventually made a sub-community of Creative (i.e. not visible in the directory). Then IRL launched, proceeding to lobotomize Creative and therefore what was left of Programming. When IRL got out of hand, Twitch broke it down in multiple categories and for a glorious 14ish days, there was a full-blown Programming category visible in the directory. It was too good to be true though and the recently launched and anemic Science & Technology (as part of the IRL break-up) needed to be saved from the embarrassment it was so they deleted Programming and told people to stream there instead. We are back to people thinking there is no programming content on Twitch.
Sad because it's a solid category with a lot of good content that no one can find. Never understood Twitch's stubbornness in not exploring it as decent vertical to develop.
Another resource worth checking out even if the formatting is a little jarring is https://github.com/bnb/awesome-developer-streams. There is a lot of overlap but it lists what people do on their channels.
Start messing around in OBS (https://obsproject.com) and get as comfortable as you can using it. You can compose scenes, transition between them, set up your audio and video encoding and preview everything without streaming. You can make local recordings test things like volume levels and audio sync. It's fantastic software and it's how you will operate your stream.
For programming, things are as simple as they come: Have a main scene that does display capture and perhaps overlay a camera. You can add more bells and whistles if you want; the tools are pretty intuitive. I recommend also making scenes for "Starting Soon", "BRB" and "Stream Over". Having a browser in guest/incognito mode is a good idea. Be mindful of stuff like API keys, secrets, passwords and personal information.
Once you are ready to make the leap, you can link your Twitch account to OBS and when you press "Start Streaming" you'll be live shortly on your channel.
Before you do though, you'll want to spend a little time in your Twitch dashboard to set up stuff like titles, categories, tags etc.
There is a lot more to it that you'll figure out along the line. Live streaming is an iterative process and a skill / hobby that you perfect over time. Have fun!
I have done it for about 1.5 years straight, 24+ hours a week. Currently on an extended break to recharge my batteries but I'm definitely going back. It's slightly addictive and you come to miss it. The best part is you eventually end up knowing the other programming streamers which builds a sense of community.
In my personal experience, the productivity hit is overstated. It's absolutely harder to focus because of chat and the discussions that come with it, yes, but at the same time you have a camera pointed at your face and your screen is shown to the world. Whatever you normally do to distract yourself and procrastinate... I can guarantee you don't.
You also build a resistance to interruptions over time, which is an amazing skill for a programmer to have. I didn't believe it to be possible, but it eventually became so easy to pause what I was doing, interact with chat for a few minutes and instantly resume where I left off after.
To go even further, it's a great way to put in consistent work and keep motivation up for large, long-term projects. I have built the entirety of the Serpent.AI Framework (https://github.com/SerpentAI/SerpentAI) while live on my Twitch channel and I'm not sure I would have ever shipped it otherwise. The interactive nature of live streaming can give you that nice push on days you don't quite feel like it.
Streaming programming is not for everyone but I still recommend to give it a try. The experience is hard to put into words. I've had a blast and got to know great people.
My goal with Serpent.AI is to lower the barriers to entry when it comes to using games as sandboxes for code experiments. It unlocks your entire existing game library (Steam, DRM-Free etc.) to be used as potential game agent environments and it does so natively! No Docker containers, No VNC. It is simple enough for beginners & hobbyists to dabble in, but also powerful enough to drive serious machine learning and AI research. The framework provides structure and conventions so you can focus on your experiment exclusively. It also doesn't try to dictate how you solve your problems. Your game agent is your canvas!
My goal with Serpent.AI is to lower the barriers to entry when it comes to using games as sandboxes for code experiments. It unlocks your entire existing game library (Steam, DRM-Free etc.) to be used as potential game agent environments and it does so natively! No Docker containers, No VNC. It is simple enough for beginners & hobbyists to dabble in, but also powerful enough to drive serious machine learning and AI research. The framework provides structure and conventions so you can focus on your experiment exclusively. It also doesn't try to dictate how you solve your problems. Your game agent is your canvas!
This has been my main side-project / hobby for the last few months. I am building a framework to facilitate the creation of agents that can interact with games.
You can think of it as a minimal, one-man OpenAI Universe. The main difference is that you can set it up to interact with native games you own. No VM + VNC setup or depending on available games/environments like Universe! It takes less than 10 minutes to write a plugin to add support for any Steam game.
The framework provides 2 major features: First, it sets up the game agent loop for you. Frames are captured and fed to your agent, you process them the way you want (can be anything from pure computer vision to reinforcement learning) and are able to send actions back to the game. Second, it ships with multiple blackbox implementations of algorithms that are compatible with the architecture of the framework. This second part is a total WIP.
On stream right now, I set up an experiment in The Binding of Isaac: Rebirth to see if we can learn to defeat bosses in game using the DQN family of algorithms. The current version uses 2 DDQNs each using Prioritized Experience Replay. 1 controls the movement and the other is in charge of the shooting. This is already v11 so there are a lot of iterations and chat has been great for discussing possible improvements.
Really nice and can see why you needed the performance for this project. Funny that you mention Super Hexagon because it's the game I'm using for my POCs!
Thank you so much for sharing this! I'm working on something similar right now (a framework to build game agents using computer vision tools) and I just went from capturing at 10-15fps with ImageGrabber, to 15-25fps with FFMpeg and finally 70-80 fps with this technique. Insane!
Remote: Yes, open to on-site as offices reopen
Willing to relocate: No
Technologies: Python, Web (Backend & Frontend), Data (ETL, Processing, Search, Dashboards), Image Processing, Computer Vision, Machine Learning, Reinforcement Learning, GUI (Qt)
Résumé/CV: https://github.com/SerpentAI
Email: On my Github page
13 years in the industry; Mostly in startups and R&D departments. Spent the last 3 working on my own projects / research following an acquisition. In that time, I authored the Serpent.AI framework, released a handful of Python packages and worked on a few curios (e.g. custom style transfer implementations, auto-painting application with NumPy and OpenCL). I'm a pretty collected, friendly person; Competent and professional. I prefer working in smaller teams / companies (more hats to wear, closer to product) with insightful and good-natured colleagues.