A Day in the Life...

Can you tell us a bit about your team and the kind of work you do?

I do project development, typically as a front-end developer. These days I've shifted into more of a Tech Lead role, which involves providing technical oversight to ongoing projects and mentoring junior team members. I typically work with anywhere from one to three other developers, depending on a given project’s scope.

What are the most common tools that you use to do your job?

We use a range of tools, including Vim for text editing; ack-grep for searching through code; GitLab for code reviews; and Rocket.Chat for internal conversations and collaboration.

Additionally, and unique to my situation–since I’m the only team member based outside of New York City–FaceTime and Zoom are essential for me. Also, the built-in macOS screenshot tool is really useful for showing other developers what's on my screen quickly.

Which languages do developers commonly code in?

JavaScript, PHP, and Perl are the big ones, as well as HTML/CSS. We use Sass to streamline front-end development and, occasionally, other languages like Bash and Python.

What is the development process like?

On the front-end, we'll typically start with the build system from a recent project and update it as needed. We then analyze the creative (e.g., conceptual designs) to identify common components and rationalize inconsistencies. This process is called “Block Discovery.”

After that, we implement basic styles like typography and layout. Then, we implement “blocks,” or independent units, using a CSS methodology known as Block Element Modifier (BEM). Next, we integrate the blocks into prototype templates, which are then connected to RubyApps, our enterprise-class software platform and content management system that renders real content.

What is code review like?

We use GitLab for code reviews. Typically, developers create merge requests and send them to that team’s Tech Lead (or another developer on the team), depending on who is available.

How is code deployed?

Code is deployed via a collection of shell, Perl, and Makefile scripts that have been developed and evolved over time. We've recently started using a continuous deployment tool to make the process more consistent and allow non-developers to click a button and deploy a site once code gets the go-ahead from a developer.

What is an average day-in-the-life like for you?

I generally split my time between actual coding, code review, and supporting and mentoring other developers. I'm also in the rotation of deployment engineers. Once a week I participate in a meeting with senior engineers to discuss current issues facing our engineering team and how we can address them.

What are some of the challenges you face as a remote employee?

By far the biggest challenge is that I don’t get to enjoy the direct company of my team members, with whom I’ve worked for several years. I have to be more deliberate about going outside, and I worry that I may miss out on important conversations that I would otherwise overhear and be able to chime in on.

It can also be a challenge mentoring other developers remotely and ensuring they’re not stuck on a problem. Sometimes it’s also tough to explain certain ideas over instant messaging, although we can usually hop on a video call in that case.

What makes RubensteinTech a special place for you to do your job?

My opinion and ideas actually matter. Many changes we've made to our processes and development style were a result of my observations and subsequent recommendations. Working here I’ve grown a lot as a developer. I get to work with an awesome team every day.

These are all reasons why I continued to stay with the company as a remote employee, particularly since I had to relocate for personal reasons.