How Mark Porter Moved From a Co-op to a Full-time Software Developer

February 10, 2021

When Mark first started his role at GBatteries, he didn't anticipate that it would turn into more than just a co-op role. We used this Q&A as a chance to learn a bit more about what remote work at GBatteries is like, and what has made Mark choose this to be his first full-time role out of university.

Why don’t you tell me how you ended up in software engineering?

I started out doing computer science at the University of Waterloo five years ago, because it was something I really enjoyed in high school. The idea was that I would end up in software engineering, although I didn’t know exactly what that looked like at the time. Through Waterloo’s co-op program, I began doing internships, where I gained some amazing experience.

My first placement was at the Department of National Defence. Then I went to a medium-sized company in my hometown of Fredericton, who develop enterprise software in the event management space. My third co-op was with a small Vancouver-based blockchain startup. This was followed by an internship at Plotly, developers of a great open source data visualization tool. Although all very different, each of these placements provided fantastic learning opportunities.

In August of 2020, I started my fifth and final co-op with GBatteries and now, I’m working here full-time as a full-stack software developer.

How did you hear about GBatteries and what led you here?

I found GBatteries through Waterloo’s job posting board. I saw the position and thought it sounded exciting. I had an interest in battery technology before, so I wanted to learn more.

Normally, I looked for jobs based on their location but since most companies had their teams working from home due to the COVID-19 pandemic, geography wasn’t an issue. The GBatteries job was listed as remote, so I could stay in New Brunswick and still work for a company based in Ottawa.

How is GBatteries different than where you were before?

My internship, and now my full-time role, are very different than anywhere else I’ve worked, for a number of reasons.

Firstly, the GBatteries core software team of three people is much smaller, which I like a lot. Also, because we’re building research software for an internal customer as opposed to external ones, the use case is very specific, and the requirements are completely customized. Finally, the fact that our software interfaces with firmware and hardware is new to me.

The scope of the technology stack that I get to work on is unlike any of my other internships. In prior roles, I mostly did front-end and web dev, which I’m still doing, but I get to work on a wider birth of things and that’s been really great.

The front end is predominantly React using Javascript, but with Typescript as well. I've also gotten to do backend web development, including a few Python applications, mostly built with Flask. I’m now much more familiar with Docker and containerization in general. On top of this, I'm starting to learn about other deployment tools like Docker-Compose and Kubernetes. All this to say I've learnt a lot about using a full web application stack with some of the most modern tooling and best practices.

Finally, I've also been able to work on applications that interface with firmware, which is a totally new realm for me. It's been really cool working on stuff at such a low level and getting to learn about the hardware systems that are being used.

Do you like working remotely?

I really enjoy working from home and in an ideal world, I would work remotely forever. I would like to go into the office once or twice a quarter, because I think that face-to-face interactions with people is important but the ability to live and work from anywhere is fantastic.

On that note, if you could work from anywhere, where would you choose?

I have some friends in BC, so that would definitely be on the list. It’s appealing because I’d still be in Canada, but the time zone change may be an issue. Mexico would also be really cool, and the Yucatan peninsula would fall in the same time zone making things easier.

What does a typical day look like for you and what are your main responsibilities?

My day-to-day involves working very closely with the other members of the software team on two alternating projects – working on bug fixes for the existing product and working on feature that have been requested by the research team.

We touch base with each other every morning to communicate what we did the day before and what the plan is for that day. Collectively, we divvy it up what’s required and decide what the priorities are. We’ll have a quick call to flesh out the detail when necessary, but we don’t have a lot of meetings which is great because it leaves time for developing.

Every day is different and my manager, Seran, is really great at giving me the type of work that I ask for. There is enough work that I can pick and choose what I want to do which is perfect!

I’ve been able to touch so many parts of the project. It’s super interesting to see your work in action right away.

What do you like best about your work at GBatteries?

At GBatteries, you’re not working on one small piece of the puzzle. So far, I’ve been able to touch so many parts of the project. It’s super interesting to see your work in action right away and how quickly what we’ve built impacts the research team’s work.

You started an internship with us, and four months later you transitioned into a full-time position. Tell me how that’s been.

There’s a lot of room to grow here and you can do it really fast, which is great. The ramp up time has been crazy, but I guess part of that is because I had a few years of experience coming in.

At other companies you only get to grow incrementally but here you can move at a rate that is almost a little too fast [laughter]. It’s tricky to explain exactly how it is, but at GBatteries you’re always on your toes.

Another one of the coolest things at GBatteries is that you can take on as much responsibility as you ask for. You get to contribute significantly, even in the early days as a co-op student.

Here, you’re never bored, always challenged, and that’s exactly why I chose to stay on full-time after my co-op ended.

Here, you’re never bored, always challenged, and that’s exactly why I chose to stay on full-time after my co-op ended.


Talk to me a little about GBatteries’ culture.

Due to the current circumstances, I’ve never met my colleagues in person. And with remote work, there’s not a lot of water cooler chat. That said, people have been really open, and I have a good rapport with the entire team.

We have a very inclusive environment and everyone is friendly when you have questions. I don’t know a whole lot about electrochemistry, batteries, or hardware, so it’s nice to be in an atmosphere where colleagues are willing to answer some basic questions without judgement. My co-workers have been very gracious with their answers and quite generous with their time, which I think is a key part of our culture. There’s a lot of effort invested to help people learn. I value this aspect of GBatteries the most.

Ours is an environment that you don’t necessarily get other places. Here people are excited to share what they are working on and are always happy to chat with you about it.

When it comes to my direct manager, Seran, this is ten times greater since I work so closely with him. He’s been willing to work through things with me when he could simply do it faster on his own. He is always willing to slow down the pace of the development to help me learn.

I also appreciate that our CEO, Kostya, makes jokes on our weekly “All Company” calls to get people smiling.

Why should someone looking at GBatteries as a potential employer join us and who would make for a great addition to the software team?

If you’re interested in challenging technical projects, working with really large amounts of data, and working with some pretty interesting use cases, then you should consider GBatteries.

Even as a software developer, there’s a lot of opportunity to learn about batteries, electrochemistry, and the battery testing process. For curious individuals, this is a bonus. Not a lot of software roles provide a chance to work on such exciting projects, so I’ve been trying to delve in and learn what I can.

In other places, you may be working on a compelling software problem but you’re not working on a very interesting product. At GBatteries, you get to do both – challenging work and exciting applications.

When it comes to valuable team member, we’re looking for someone who isn’t scared to make mistakes. We need people who can also be part of a team that doesn’t dwell when problems are encountered. We figure it out together and come up with a solution. We’re excited about what we’re building and want people who will be just as excited to be working alongside us.

At GBatteries, you get to do both – challenging work and exciting applications.

Tell me one non work-related thing about you.

I recently bought a wetsuit and am hoping to start surfing soon. The surfing in Atlantic Canada is incredible, although the water is a tad cold [laughter]. I think I’m the only member of the team based on the east coast and I don’t know for how long that will be, so I figured that I may as well start surfing while I’m here.


Interested in learning more or joining the software team? Check out our opportunities or get in touch.

Stay connected and get the latest

Thank you - we'll be in touch soon.
Oops! Something went wrong while submitting the form.