The rapid pace at which technology is evolving has increased the need for full-stack engineers all over the country.
As a matter of fact, “full-stack engineer” was listed as the fourth fastest-growing job on LinkedIn’s 2020 Emerging Jobs Report with hiring growth of over 35 percent since 2015. Furthermore, industry experts are predicting that the need for full-stack engineers will only increase as companies in all industries continue to migrate to a virtual-work environment due to the ongoing uncertainty of the coronavirus pandemic.
Built In San Francisco caught up with engineers across the city to gain some insight into what the role of full-stack engineer specifically entails at each of their companies (some of which are even hiring right now) and an interesting project they’re currently working on that’s put their skills to the test.
Opendoor is a real estate company that provides people a simple way to buy, sell or trade-in a home. At the company, full-stack developers are expected to work across the stack on all parts of the assigned project, from design to implementation and launch, Full-Stack Software Engineer Eli Badgio said.
What role does a full-stack developer typically play at your company?
At Opendoor, full stack-developers are expected to own projects end to end, across the stack from design all the way to implementation. As part of the partnerships team, I am always working across the stack because we have ownership over an internal back-end service, an external facing GraphQL API consumed by our partners, and a suite of internal and external dashboard web apps.
Several months back we launched a new feature allowing partners to listen to key events regarding any of their customers currently in the Opendoor process via webhook. There were three broad areas of work involved here: adding a new data model for partner application webhooks, adding a new interface in our Developer Dashboard for engineers at partner companies to manage their webhook endpoints, and building out infrastructure for processing our internal Kafka topics on customers' state changes and forwarding these events via webhook to the relevant listeners.
As a full-stack engineer, I was able to work across the stack on all parts of this project, allowing our team to design, implement and launch this new feature to our partners in the span of just a couple of sprints.
It’s been even more rewarding knowing that we are building something our customers will use and love from the moment we launch.”
What’s an interesting project you’re currently working on?
Recently, I have been working on a project aimed at giving our homebuying customers the ability to shop for new construction homes in our mobile and web apps alongside the existing Opendoor homes and MLS listings.
This project involves a considerable amount of cross-team collaboration across multiple surface areas and the entire development stack. In order to get these new home listings in front of our customers, we’ve had to enhance our data infrastructure by adding an entirely new data pipeline for consuming new construction home listings; modifying our buyer app to handle the presentation of a new listing type that has an unusual community plus model listing format; and finally, creating new data models for tracking and managing tour requests scheduled with new construction pre-list homes.
Although this project has been a very fast-paced and challenging one, it’s been highly rewarding having the chance to work end to end on a project that has complexity not only from the engineering side but also from the product and operations side. And, it’s been even more rewarding knowing that we are building something our customers will use and love from the moment we launch.
At food retail company Instacart, full-stack engineering is all about ownership. Each project presents an opportunity for full-stack engineers to take on as much (or as little) responsibility and ownership as they would like, Senior Software Engineer Austin Pivarnik said.
What role does a full-stack developer typically play at your company?
Beyond coding, full-stack developers play an ownership role. I always tell interviewees and new hires that the role at Instacart is what you make it. Each project presents an opportunity for you to take on as much (or as little) responsibility and ownership as you would like. As part of the emerging products team at Instacart, I’ve had the opportunity to not only ship interesting features but also fly to our retailer partners to lead cross-company engineering on-sites, demonstrations for their technical leadership and end-to-end test product launches.
Additionally, full-stack developers at Instacart have a wide breadth of technical knowledge across the stack with an “inner T” of depth into a particular focus area. I feel there’s a common misconception that full-stack developers are expected to code an entire feature from end to end on their own. In reality, full-stack engineers at Instacart often alternate between front-end and back-end features on a per-project basis, as the depth of knowledge and personal interest align. In this way, they often make meaningful observations on our stack and workflows and where they may be able to be improved. This valuable insight guides our architectural direction.
Full-stack engineers at Instacart often alternate between front-end and back-end features on a per-project basis.”
What’s an interesting project you’re currently working on?
One feature we’ve just wrapped up is “Certified Delivery,” which allows a customer to verify their identity upon delivery with their smartphone. This feature gives both shoppers and customers an easier way to confirm the delivery of high-value items. This feature required close cross-functional coordination with our fulfillment team, orchestrating cross-service remote procedure calls (RPC) and push notifications between our shopper and customer applications at the time of delivery.
It’s rewarding to try out features you’ve built in the wild. I still get excited each time I go to my local Publix and see the “online pickup” section of their deli filled with sub sandwiches labeled “Instacart.” Behind that short string of text was a many-months-long project of integrating Instacart with Publix’s order management system, as well as Instacart’s first foray into customizable prepared food options.
Benchling is a SaaS-based platform built specifically for life sciences and research and development. Software Engineer Lily Zhang said that she enjoys the fact that full-stack engineers at Benchling have many opportunities to collaborate with people outside of just their specific team and function.
What role does a full-stack developer typically play at your company?
Benchling is a very ambitious company, and we often have more projects we want to tackle than we have engineers to tackle them. Therefore, it’s important that our engineers are product-focused. Being full stack empowers them to implement an entire feature end to end, whether it’s designing the data models or building out a complex UI.
With the capability management project, the work wasn’t always evenly distributed across the stack. Because my teammates and I all work across the stack, we were able to be flexible sprint to sprint and focus on the areas that required the most attention. This helped push us across the finish line faster than if we each only worked on one piece.
Working across the stack also gave us the opportunity to collaborate with coworkers outside of our team and function, whether that’s with the project manager or designer to answer front-end UX questions, or with other engineers to brainstorm solutions for a back-end interface for other teams. I’ve really appreciated the opportunity to do full-stack development at Benchling and it has helped me to become a stronger engineer.
It’s important that our engineers are product-focused. Being full stack empowers them to implement an entire feature end to end.”
What’s an interesting project you’re currently working on?
The Benchling platform consists of many different applications. Currently, once an application is enabled for a customer, all users have access to it. Since joining Benchling in June, I have been working on the capability management project, which gives customer administrators fine-grained control over which users and user groups have access to each application. This is critical for both complying with regulatory standards and driving enterprise adoption.
I have faced a few challenges working on this project. First, the project started months before I joined, so I had to rapidly gain context on decisions that were made before I was around. This was made trickier by the fact that this project touches every single application in our product, so it additionally required a breadth of understanding. Finally, I had very little front-end development experience, so that was another axis along which I had to learn quickly.
However, the challenges were worth it. I feel much more confident in my full-stack development skills, and I’ve gotten to work with some really amazing and smart engineers along the way (shoutout to Ben, Rachel, and Steven!). Also, this project has finally landed in the hands of our first customer, Genentech, and we plan on rolling it out to more customers in the coming months. There’s nothing more rewarding than knowing that real people are using something that I’ve worked hard on, and I’m excited to continue working on projects like this in the future.
Grammarly offers a digital writing assistant that helps 30 million people daily write more clearly and effectively. At Grammarly, it’s important for full-stack engineers to be adaptable in order to jump into any part of the stack so that customers can be quickly supported, Full-Stack Software Engineer Kendal Cockrel said.
What role does a full-stack developer typically play at your company?
There are quite a few full-stack engineers at Grammarly, and like every other developer, we work closely with other engineers to ship the latest features. However, full-stack engineers have the added bonus of flexibility. With this flexibility comes the need to be adaptable — to be able to go where needed so that as a team we can continue to move quickly and support our customers.
This means that on one project, a full-stack developer may be responsible for writing specs and building out a new scalable web service. On their next, they might be tasked with working with a designer to bring an elegant, user-friendly UI to life. Depending on size and scope, they may also see an entire feature end to end, doing everything from designing the database schema to rendering that data on a new webpage they’ve built themselves. No matter the project, full-stack engineers at Grammarly are excited to work on a full spectrum of projects. While we mainly build services in Java, React and TypeScript, we quickly adapt to different languages and scenarios to make sure we’re always delivering a high-quality product to our users.
No matter the project, full-stack engineers at Grammarly are excited to work on a full spectrum of projects.”
What’s an interesting project you’re currently working on?
Currently, I’m working on expanding Grammarly’s business website. We want to give the site a refresh and allow for marketing content to be added and updated without requiring engineering to make those changes. It’s one of those projects that has both a server-side and client-side component, which is the bread and butter of full-stack development. Most of the front-end work will be done in React and TypeScript. React is what got me excited to dive more deeply into front-end work in the first place, so I’m excited to be working with it again after doing mostly Java development in the last few weeks.
One of the challenges is working with our existing content management system and dabbling into unfamiliar code. Some of its legacy code is written in — gasp — PHP. Still, it’s another opportunity to learn by doing, which is something I’m a big fan of. And of course, there’s also the added bonus of empowering our marketing team to be able to showcase all of the exciting features we’re building for Grammarly Business. Allowing them to be able to do this easily, without needing help from engineers, is a reward of its own!
Adtech company Liftoff+Vungle partners with mobile app developers to monetize their apps through innovative in-app ad experiences. As a full-stack developer, Kevin Chiang said that his responsibility encompasses everything from UI styling and logic to developing servers and databases for website functionality.
What role does a full-stack developer typically play at your company?
The San Francisco-based applications team is responsible for managing our advertiser self-serve and admin platforms. As a full-stack developer, my responsibility encompasses everything from implementing UI styling and logic to developing servers and databases for website functionality.
A recent project that our team has built is the campaign multi-bidding feature. On the front end, we’ve created editable tables for our users to easily view and edit campaign bids. On the back end, we’ve built multi-bidding API endpoints, which are responsible for updating the bid values in our database. Most of our team members work across the stack, and we’ve been able to take advantage of this skill set on multiple projects.
Most of our team members work across the stack, and we’ve been able to take advantage of this skill set on multiple projects.”
What’s an interesting project you’re currently working on?
I am currently working on Liftoff+Vungle’s advertiser API, which allows customers to review their campaign data as well as edit various settings within Liftoff+Vungle’s ad network. This project is essential to supporting our customers when generating competitive pricing models and bids in order to scale their campaigns. It’s especially rewarding that we are able to provide this tool and be a trusted guide for our customers to advertise with us.
Marketing technology company Sendoso is a sending platform that helps companies engage with their buyers and customers. Software Engineer Ana Medrano Fernandez said that on most projects, one full-stack engineer will take on most of the responsibilities and the others provide support with different tasks as needed.
What role does a full stack developer typically play at your company?
Sendoso is a fast-growing startup with ambitious goals, so we are moving quickly. Having full-stack engineers gives us many utility players who can tackle the challenges at hand. For members of the team, this translates to being able to own large parts of projects and having exposure to different parts of the codebase.
Engineers build and maintain code, but at Sendoso we can really own our work. A recent example is how our team all worked together to allow our customers to set expiration dates on the digital gifts they send and to communicate those dates more effectively with the gift recipients. One engineer took on most of the responsibilities — working on data migrations, updating models, running jobs to update existing data, etc. — and the rest of the team provided support with different tasks as needed. I worked on updating the email copy to clearly communicate the new expiration dates.
It’s exciting to have full ownership over our projects and the trust of the rest of the company to influence the product we’re building.
Having full-stack engineers gives us many utility players who can tackle the challenges at hand.”
What’s an interesting project you’re currently working on?
Currently, we are working on a really exciting redesign that will impact the customer UI. While this project focuses on the front-end user interaction with Sendoso, it requires changes throughout the code stack. For example, building a new filtering functionality required introducing new relationships into the database and updating API responses in addition to the front-end changes. Because we are working on a redesign in parallel with supporting the existing workflow, our work might inadvertently cause regressions to our existing functionality. To protect against this, tests are critical to establishing confidence in our changes as we work. Testing in itself is a challenge — sometimes building a good test can be just as hard as building the task it’s trying to test.
As a full-stack developer, I design the model and its relationships, API routes and responses, and the front-end functionality that our users ultimately interact with. A big challenge is balancing the trade-offs across the code’s performance, complexity and development speed. The most rewarding part is when you get the balance just right.