Isn’t every day you work at DockYard a DockYard Day? Not exactly.
At DockYard, we value the continued professional development of every one of our employees. Client-facing roles at DockYard work 32 hours per week, typically Monday through Thursday. Then, on Fridays (what we call DockYard Days), our team members can take time off from their client projects and focus on a professional development project.
To put it simply, work-life balance and the professional development of our employees are more important to us than the potential eight billable hours we could otherwise devote our teams to.
We want Fridays to be beneficial for DockYard, but the main purpose is to let our team work on their own professional development. Sometimes that means working on open-source projects, taking time to record and edit our monthly Elixir Roundtable, or a wide range of other options. DockYard Days also give us time to work on R&D efforts and give back to the Elixir community through Open Source contributions.
Many engineers who join DockYard come from product companies and startups where working more than 40 hours per week is the norm. Turnover in IT is higher than any other industry, especially through the Great Resignation.
We want to protect our team from burnout and ultimately create an atmosphere where our team members want to be part of DockYard long term.
Burnout has been especially pronounced during the COVID-19 pandemic: 81% of software engineers surveyed reported experiencing burnout due to the pandemic. This was even more evident among parents, especially single parents, who have to manage child care and a higher workload.
As a consulting company, well-rounded employees who can support a variety of technical projects give us the flexibility to handle whatever the next client project might require.
Over the years, employee work on DockYard Days has produced everything from Elixir plugins to a repo designed to take one of the most outdated programming languages to one of the most functional. They’ve also resulted in a healthy mentorship program within DockYard, and guilds for employees to collaborate on everything from DE&I to Agile methodologies.
Here are just a few ways DockYarders spend their DockYard Days:
The IntelliJ plugin for Elixir was a personal project of our Principal Engineer Elle Imhoff. She began working on the plugin before joining DockYard and continues to support it on DockYard Days. She wanted a tool that would do for Elixir what RubyMine did for Ruby and has completed over 90 releases of the plugin.
IntelliJ Elixir predates the Elixir Language Server (ElixirLS) by about two years, she said, and takes a different approach to ElixirLS, which relies on Microsoft’s Language Server Protocol. The different approach comes with some benefits, including continued integration with Markdown support for language-tagged code blocks.
This was a project born of curiosity from DockYard’s Principal Software Engineer Mike Binns. Many modern developers have probably never seen COBOL or realized that 95% of ATMs still rely on COBOL to process transactions.
In 2021, Mike wrote:
CobolToElixir has support for many of the basic building blocks of COBOL and plans for tackling some of the larger language constructs. Most importantly, it has a framework for testing that will run COBOL code, convert the code to Elixir and run it, and then compare the two outputs to ensure they are the same.
You can view the source code here.
In 2022, John wrote:
SvelteKit is a rewrite/rebrand of Svelte’s older application framework, Sapper. Aside from ease of development, and providing necessary application functions, like routing, SvelteKit also provides hot module reloading by default, server-side rendering, and filesystem routing, among other features.
Flame On library
Principal Software Engineer Mike Binns also developed the Flame On library, to help diagnose Elixir app performance issues with flame graphs.
Mike originally was going to write a blog post on how to use eFlame, created by Trevor Brown, but realized there was an opportunity to create a LiveView component for flame graphs with the ability to view them in the Phoenix LiveDashboard. The Flame On library grew from that idea.
We’re very fortunate at DockYard to have an amazing team that is generous with their time and eager to help others progress, whether on their Elixir journey, leadership skills, or other professional development areas. Mentorship programs run six months long and give mentees time on Fridays to meet with their mentor, go over their progress, and find ways to improve their targeted skills.
Not all client-facing roles are in engineering and we encourage cross training within departments. For example, employees in functional areas can gain more technical skills and engineers can also learn from our Client Partners about Scrum methodologies.
DockYard Days free up time to participate in department and company guilds. As a fully remote organization since 2016, maintaining a lively company culture within DockYard can be difficult.
We take pride in our culture and work at it every month to create a unique employee experience. As a global company, our Diversity, Equity, & Inclusion guild is key to ensuring we are inclusive and thoughtful of the varied perspectives of our team members throughout the world.
The DockYard Elixir Roundtable is our podcast available on all major platforms and services. The Roundtable is a group of DockYard engineers, team members, and guests discussing all things Elixir or Elixir adjacent. Topics range from database optimization, Nx and Machine Learning, LiveView, Phoenix, GraphQL, feature flags, and so much more! You can view the video versions through the DockYard YouTube channel.
DockYard Days are one of the ways we offer flexibility to our team in a fast-paced industry. We find value in giving our employees the opportunity to pursue their own development and interests, whether those are technical products, inter-department cooperation, or a host of other ways they can choose to spend their time.