Day in the life of
Software Engineering Manager – Ryan Vice
I start the day by going through emails and tasks in the to-do app I use. We’ve grown, so lately, this can end up taking half the day. Our company specializes in affordable, predictable custom software, and part of that is having most of our team out of India. This provides great value for our clients but makes my mornings crazy busy.
Most days, I meet with my partner in New Delhi and we talk through all the projects, sales pipeline, escalations, etc. Then, we live and die by Slack. I can have a number of questions from our dev team that need my attention – ranging from architectural questions to requirement questions or concerns about something they’ve seen on the client side that I might need to discuss with the client. Depending on the day, I might have to review some PRs in addition.
If all of this goes well and I’m lucky, I get to do some coding. These days I mostly work on architecture-level things. We create opinionated boilerplates for each technology stack we work in. This allows us to hit the ground running on projects and code features super fast, as the team is familiar with the approaches. So if I’m lucky, I’ll get to work on a new boilerplate. Currently, I’m working on one in Vue with vue-query and another in React with react-query. I feel the react-query approach will be huge and Vue is copying react (as usual :P). I also might get to help refactor some code, set up some automated testing flows in docker that enables us to make the applications more stable or other fun things like that.
If it’s Tuesday, then there’s a good chance I’ll spend half the day checking in with all of our clients to make sure we are meeting expectations, help remove friction points, brainstorm features, etc. Most days, I’ll have at least one ad-hoc call with a client to brainstorm product or architecture. I participate in many business and technology Slacks, so it’s very likely I’m either asking for help, giving it, or telling dad jokes in one of these channels.
The best part of managing software developers, no question, is the people; you’re working with incredibly smart and passionate individuals. It’s rewarding to see folks get excited about technology that you are excited about.
My job is super flexible these days; I’ve been working remotely for 3 years, and I love it. I’m able to own my entire day. Most remote firms will let you be extremely flexible with your schedule as long as you are pushing quality code.
I’ve been coding since I was around 12 or so, and it started as something I did for fun – I even code on vacation for fun. I wrote a boilerplate in the mornings in Costa Rica before the family would wake up a few years back. I get paid to do something that I actually love. I know a lot of folks say they love what they do for work, but let’s be real… how many of them are doing it by choice on vacation.
If you are in the right environment, software development can be very respectful and not as political as some professions. If you’ve got the skills, the politics will get out of your way. I realized that early on in my career, and that’s when I really went all in on leveling up my skills. If you are smart and get things done, you will have your choice of places to work, and you can find some great folks to hack on code with.
I love music, and you can listen to music all day while you work. If you have a big feature to code up, throw on some audio caffeine, like say Gojira or Run the Jewels, and just crank away. A good album will make your day fly by. I generally have a live concert playing on my iPad all day and just zone out and code.
I also appreciate that it’s very creative work; you can help design products that transform people’s work and personal lives. Plus, it’s easy to become an entrepreneur. Your learning how to build products – why not build your own?
One of the more considerable downsides is the paperwork. We’re notoriously bad at estimating, logging hours, providing updates, updating ticketing, etc. Another downside is that the greater the passion, the higher the tendency to keep improving the solution – even when it means losing focus on the finish line. Last, it’s a seller’s market; there are tons of great programming jobs out there, so you’ve got to work hard to get good folks and even harder to keep them.
It can be hard to get started in the US, especially without a degree. When you first graduate from school, it can be challenging to find jobs as your cost in the US will be high compared to offshore teams, especially ones like ours. But, if you do some internships (we’ve got an amazing intern right now), then you can graduate with some great projects under your belt. I also highly recommend doing OSS coding.
The hours can be intense. It depends on where you work, but software is notoriously unpredictable, and death marches are common. It’s not unusual to end up working 50-60 hours a week for a few weeks in a row. It’s hard. Programming is one of the harder professions to do well. There are the basic skills of writing logic, but taking code and turning it into a product that other folks can use and enjoy is REALLY hard, and trying to do that on a timeline or within a budget – voodoo magic hard.
Software Engineering Managers are responsible for managing the design and development of software applications. They manage the daily activities of team members working on a project.