The availability of tech resources in 2021 is as diverse as New York City’s food, culture and the industries that lock it in as “the capital of the world.” So why shouldn’t an engineering team’s tech stack reflect the same?
For engineers at 11 of NYC’s growing companies, the opportunity to access and combine different technical applications within their tech stacks allows them to pursue new horizons and build groundbreaking products for the clients they serve.
However, even the most intricate and capable technology can only take you so far. In order for these companies to succeed, they have learned to embrace the unique capabilities and various backgrounds that each team member brings to the table – whether that’s culturally, personally, or from an eclectic professional background.
“We have a lot of team members who switched into tech after working in another professional field,” Dillon McRoberts, senior software engineer at Giant Machines, said. “I think it helps bring an interesting diversity of perspectives into our projects and workflows that we might not get with a group of people who all worked as software engineers for their entire professional career.”
Ocrolus is an intuitive, automated solution for analyzing financial documents like pay stubs, tax documents and mortgage forms, virtually eliminating error from the manual review process.
Give us a bit of insight into your tech stack. What are some of your favorite tech tools your team is using?
My team and I are building a real-time streaming data platform that utilizes Kafka as our data movement and access layer, and the garden.io build tool to make our CICD aspirations a reality. We are an AWS shop, using Kubernetes, Apache Debezium to produce CDC messages from Postgres Databases into Kafka, KStreams Java applications for streaming transformations, Python producers and consumers for micro batching transformations, and Snowflake for our analytical database.
What’s the most interesting or challenging project you’re working on right now, and what do you enjoy most about it?
My team and I are working on a small business benchmarking project to improve the way lenders evaluate potential borrowers. Ocrolus already provides capture and analyze products to small business lenders for bank statements, delivering 99+ percent accuracy and super quick turnaround times. Now, we’re going one step further to take advantage of the cash flow analytics we already calculate to benchmark a given business against its peers utilizing our unique network of data. I love that this product build presents interesting technical challenges with an opportunity to make a measurable improvement to our lenders’ ability to give the loans to the right businesses.
What’s something unique about your team?
Every few months, I plan a little virtual game over Google Hangouts during our usual data team meeting time. One week we all anonymously submitted fun facts about ourselves, and I learned so many crazy things about my coworkers. For the game, I read out each anonymously submitted fact, and the group had to guess who they thought submitted. It was really interesting to see what correct – and incorrect – preconceptions we had about each other!
Share Local Media is a full-service agency, program operator and SaaS technology platform that helps tech and e-commerce companies create personalized trigger-based direct mail, suitable for retargeting, abandoned cart and lifecycle marketing.
Give us a bit of insight into your tech stack. What are some of your favorite tech tools your team is using?
We use Ruby on Rails, React, Postgres and Redis – all running on AWS. Our goal is to deliver value to our customers. To that end, we tend to gravitate toward proven technologies to give us that solid foundation to build on.
I’ve been programming using Ruby on and off for over 15 years at this point. It’s a delightful language. Rails has a huge focus on convention over configuration, emphasizing developer productivity. This allows us to onboard new developers and help them be productive from day one.
Beyond the technologies themselves, one of my favorite parts is how everything comes together to provide a solid developer experience. Docker enables us to create new environments with a single command. Code deploys run through CI/CD, giving us confidence that our changes are not going to break anything. And our application metrics are all centralized within Datadog, giving us deep visibility into our systems.
What’s the most interesting or challenging project you’re working on right now, and what do you enjoy most about it?
We are bridging the physical and digital worlds. In the traditional agency model, four to eight-week lead times are not uncommon for direct mail campaigns. There are many steps in the process. We are building APIs around brick-and-mortar businesses and cutting those lead times down to days. This opens up a new world of possibilities for our clients.
You can retarget a website visitor and send them a postcard in the mail, which arrives a few days later. Marketing managers can also execute their mail campaigns alongside more traditional digital channels. We also provide granular reporting capabilities, which bring insights and transparency.
We are seeing an explosion in usage of our product. This presents us with lots of interesting challenges around scaling. As we were building the product, some of our initial assumptions were spot on, but others were way off the mark. Seeing how clients are using our product helps us refine what we are building.
What’s something unique about your team?
At the start of the pandemic, we closed our office and switched to remote work. For many of us, this was our first experience working from home for an extended period. As a leader, I give every credit to my team. Everyone has handled the past year exceptionally well and productivity has been through the roof.
The situation has also spurred a lot of thought around team culture, communication and process. Now that everyone is not in the same physical space, how do we work together and how do we encourage camaraderie? It led to a few changes in how we do things. One example is asynchronous standup to accommodate employees in different time zones. Another is a focus on documentation. This helps keep everyone on the same page and also provides resources when onboarding folks hired during the pandemic. On the social side, we have also engaged in remote wine tastings and other activities.
Coming out of this, you can feel a tighter sense of collaboration – something we continue to focus on as we grow a remote-first team.
EPAM Systems works across industries to design custom software solutions that address its clients’ most prominent challenges. With a global presence, this firm offers design, product and engineering expertise across fields like retail, healthcare and financial services.
Give us a bit of insight into your tech stack. What are some of your favorite tech tools your team is using?
Currently, I’m part of a team that supports and extends features of a marketing CMS system, with the core code of the CMS being written in Java. We utilize Apache FreeMarker as our template engine and a custom Backbone.js-based JavaScript framework. A ‘Go application’ is responsible for communication between clients requesting messages from our system and the CMS itself. We’ve also built automated regression test suites using Selenium WebDriver and use Karma to run unit tests for the front-end code.
We continually expand the system’s targeting and personalization capabilities and performance, so we regularly conduct load tests using JMeter and BlazeMeter. Jenkins jobs are created for tasks that are going to be repeated in the future to reduce manual involvement and we run tests, spin new instances, or get our pages’ status report using these jobs. The production deployment is performed through the Jenkins pipeline as well.
As a front-end developer, I like the JS framework we’ve built for this system – it suits our needs perfectly and makes it easy to create and add new components and decommission individual templates.
What’s the most interesting or challenging project you’re working on right now, and what do you enjoy most about it?
Our system is integrated with various internal systems to provide extensive personalization capabilities and perform A/B testing experiments. We’ve recently conducted a migration to the latest version of an internal A/B testing engine – one that had significant changes in the engine we didn’t anticipate in the original implementation. This project required cross-team collaboration to preserve all the functionality we provide to users. I provided an RFC, contributed to the front-end piece, and oversaw the migration process on all levels. It was an interesting experience and I liked the challenge of keeping all the moving parts in balance.
What’s something unique about your team?
My team meets weekly so everybody can share their ideas or concerns regarding any topic; it doesn’t necessarily have to relate to our current sprint goals. We use this hour to knowledge share, ask questions, and discuss new initiatives – some of which are implemented into our work later if the team decides it’s a good idea for the project. We have a working document where team members can add a topic for discussion. If there’s not enough time to discuss everything, the remaining items are moved to the next week’s agenda. Having this meeting has helped us bring to life great projects and optimizations in our work. It also serves to maintain a healthy team culture.
ActionIQ is a customer data platform built to help modern marketers transform personalized customer experiences by giving them access to 100 percent of their customer data across multiple sources.
Give us a bit of insight into your tech stack. What are some of your favorite tech tools your team is using?
Most of our services are written in Scala on the Finagle platform, and they talk to each other using thrift. For big data we execute with Spark and store the data in S3. We use a lot of other AWS products, including EC2, Lambda, Kinesis and RDS. My favorite tech tool at the moment is probably Terraform, because it lets us manage our infrastructure using a declarative style of programming, which is way better than the alternatives.
What’s the most interesting or challenging project you’re working on right now, and what do you enjoy most about it?
The most interesting project I am a part of is the one that never ends: scaling our system. The number of customers may double or triple in a given year, but because many of our newer customers are getting larger, the load on the system increases at an even steeper rate. Nearly every system has redlined at one time or another. Sometimes we have time to design a better component; sometimes we can only patch it.
What’s something unique about your team?
We have good communication with other teams and other parts of the company. For example, we have Thursday lunches, where people are randomly placed in groups with others from any organization in the company. This is a great way to get to know people you might not normally see, and helps to prevent tunnel vision. We also get weekly updates about what each team is working on in the all-hands doc.
Veeva is on a mission to reinvent healthcare marketing. The company, which acquired Crossix in 2019, helps life science organizations improve their marketing effectiveness through analytics and innovative planning, targeting, optimization and more. Fenley said that his team continuously pushes forward on newer technologies, which keeps everyone up-to-date and challenges them to constantly learn new things.
Give us a bit of insight into your tech stack. What are some of your favorite tech tools your team is using?
Our New York team uses Python as our primary language wherever possible. As we are a data-driven business, Python gives us rapid development capabilities no matter if it’s a REST API, business logic or big-data processing.
Much of our work is centered around process optimization, and our goal is to have systems that require minimal manual interaction and will self-heal. To achieve this, we work with tools such as Airflow running on Kubernetes.
All of our current development is abstracted via REST APIs, which for us means extensive use of Flask.
On the big-data processing side, we have started to move our ETL into PySpark to more efficiently process the high volume of data we receive and reprocess every day. One year of data in a single dataset for us could be upwards of 300 billion records.
Lastly, everything we build is designed to work in AWS. We work closely with AWS systems and their capabilities, leveraging managed services – for example, MWAA for Airflow and EKS for Kubernetes – to reduce the duration of development and allow simpler deployment by DevOps.
What’s the most interesting or challenging project you’re working on right now, and what do you enjoy most about it?
We are currently building out our own domain-specific ETL platform with the goal of scaling our data ingestion beyond what data engineering could set up manually. This scaling is a critical business objective as the adtech ecosystem reacts to the removal of cookies across different browsers and devices, resulting in us going from a handful of cookie-based feeds to hundreds or thousands of direct partner feeds.
The platform is a metadata-based system that enables us to abstract away the loading and transformation and utilize configurations derived from business logic to dictate how the pipeline is built. This helps us optimize much of our work, as currently we have a lot of product or partner-specific pipelines that could share most of their components.
Additionally, we are trying to tackle one of the biggest challenges in processing adtech data – namely, that there is very little standardization across the industry. We get to learn how to optimize many of our existing processes, both as a standalone process and as part of our abstract version. We are pushed to work with new tools all while keeping our existing processes live. It is a huge encouragement that our team was given the task and trust to build all of this from scratch.
What’s something unique about your team?
Perhaps the most unique part of working in our team is how much ownership each individual has of their work. We are not simply given tasks; we are given projects. We work on the design, planning and implementation of each feature. We are given a certain degree of freedom to decide the best way to develop a given feature, test it out, and then develop. We effectively own the work, no matter how large or small. This is something I have not experienced in my previous organizations. And yes, this means that each individual has to be proactive about their work, and sometimes that can be a challenge in itself. However, this encourages growth and pushes our team members to be the best versions of themselves.
On a growth note, we also really encourage training, and not just in a monetary sense. We want all of us to be aware of the latest technologies, how to be more efficient with code, make smarter design choices, and be able to eloquently describe our work to non-tech folks. All of our New York-based engineers completed an AWS associate-level certification within a year of joining the team.
Narmi partners with existing banks and credit unions to automate processes, grow their brands and support their employees. The API-enabled platform gives clients the ability to offer digital account openings, as well as mobile and online banking options.
Give us a bit of insight into your tech stack. What are some of your favorite tech tools your team is using?
Maintainability, extensibility and reliability are the name of the game here at Narmi. We choose languages with extensive toolsets, packages with a long history of support, and services that provide us with important information easily. We use React and React Native for our front ends, Python and Django for our back ends, and Ansible, Terraform, Docker, and AWS to give us full control (with sensible defaults) over our financial institutions’ infrastructure.
We also like to automate as much as possible, so we’ve chosen a highly customizable CI/CD tool called Concourse that lets us spin up and modify new pipelines quickly and easily. We observe and monitor our systems with Kibana, catch bugs with Sentry, and have built a variety of internal monitoring tools as well to ensure our clients’ systems are functioning, up, and keeping their finances safe.
What’s the most interesting or challenging project you’re working on right now, and what do you enjoy most about it?
Our financial institutions are excited about the prospect of not only using our modern banking experiences, but building their own. We’re currently working on the Narmi Application Framework – a combination of design system, open platform API, and App Builder interface that will allow financial institutions to build their own custom money management, personal finance, and account opening experiences. Right now, banking software is pretty much off-the-shelf; what you see is what you get. We’re seeing a hunger for banks and credit unions to differentiate themselves by offering unique experiences – custom graphs, billpay, paycheck advances, and account opening – that their members will love.
I’m loving this project because technically it’s very challenging, but also lets me flex my architecture and design muscles. As a member of the platform team, I get to think about how my contributions today are going to play out five years from now, and how the things I build today will lay the interfaces and foundation for thousands of experiences to come.
What’s something unique about your team?
We pride ourselves at providing engineers with a high degree of creativity and autonomy. If there’s a project I want to work on that will move the company forward, I’m empowered to sketch it, present it and build it. Some of our most impactful projects have come out of employee initiatives – account opening, onboarding automation, and our internal CI/CD architecture that lets us manage dozens of environments at once. We pride ourselves on having little red tape, and we’re looking for smart people who want to make a lasting contribution to a project that will impact the way millions of people interact with their finances.
IEX is best known for IEX Exchange, its stock exchange that is committed to transparency and serving all market participants. In 2019, the company introduced IEX Cloud, a financial data platform that aims to provide easy-to-use, affordable financial data for developers and investors.
Give us a bit of insight into your tech stack. What are some of your favorite tech tools your team is using?
We have a JavaScript monorepo leveraging React/Redux on the front end, and Node.JS/Express for the back end and data processing services. With the IEX Cloud codebase all in the same language, engineers have the ability to work on different parts of the stack so everybody has visibility and can help with all projects. Our system and services run in the public cloud and we leverage some well-known services like Redis and Apache Kafka, as well as some up-and-coming services like SingleStore. There are lots of challenges when running a distributed system at scale, especially one that involves billions of API calls and real-time streaming updates to thousands of concurrent consumers. So we’re always on the lookout for new and emerging technologies that we can explore and incorporate into our system.
What’s the most interesting or challenging project you’re working on right now, and what do you enjoy most about it?
Real-time streaming data is a very interesting challenge. At IEX Cloud, we’re building a system that can handle millions of concurrent subscribers and deliver massive amounts of data in as low latency a way as possible. Operating at this scale, you often run up against bugs or problems in your code and the services that you use. It is exciting to explore what things are breaking and how they’re breaking. Having the opportunity to architect and build new systems that operate at scale is something every engineer dreams of doing.
What’s something unique about your team?
Coming out of the age of microservices, operating in a codebase where all parts of the system have the same language and runtime environment yields some really nice team dynamics. Additionally, everyone is in charge of projects whether you’re a junior or senior engineer. These two things together mean that we spend a lot of time pair programming and working together. Junior engineers can learn from the experience and expertise of senior engineers, while being empowered to become experts and lead projects of their own. Our project management and technology stacks are designed to foster a creative, collaborative, learning-focused environment.
Giant Machines designs, codes, integrates and launches web apps, mobile apps and digital systems to help businesses reach long-term goals. With a team of product managers, engineers and designers, the company has delivered experiences and applications for clients in industries like financial services, e-commerce, healthcare, and more.
Give us a bit of insight into your tech stack. What are some of your favorite tech tools your team is using?
We use a lot of React and Redux for our front-end development. One of my favorite tools for component development is Storybook.js. It’s really helpful for previewing components while we build them in isolation before dropping them onto a page or application.
What’s the most interesting or challenging project you’re working on right now, and what do you enjoy most about it?
Right now I’m working on a project that aims to take an idea and build it up from scratch into a new business and application. There’s a lot of challenges with projects like this in translating business goals and abstract ideas into working code. We also have to make an effort to establish trust between the engineering team and the client. I enjoy watching that trust get established and taking a small idea into a working product.
What’s something unique about your team?
At Giant Machines, we have a lot of team members who switched into tech after working in another professional field. I think it helps bring an interesting diversity of perspectives into our projects and workflows that we might not get with a group of people who all worked as software engineers for their entire professional career.
Galileo provides users with immediate access to a team of physicians who specialize in personalized healthcare. Through Galileo’s mobile app, patients are able to connect with their own team of doctors to ask questions, keep up to date with chronic care and even renew prescriptions.
Give us a bit of insight into your tech stack. What are some of your favorite tech tools your team is using?
My team loves to experiment with new tools and frameworks, which allows us to always stay up to date with the best and most widely supported solutions. From Python libraries to observability tools and serverless application infrastructure, we’re constantly redefining our stack and adding a new tool to the belt.
One of the most recent additions to our stack has been implementing the SQLAlchemy ORM for Python, on top of our MySQL database. The ORM has changed the way we think about code, in addition to optimizing query speed at a minimal cost to code complexity. The ORM, along with Python native syntax, also helped set the foundation for automated database seeding for integration tests, made possible by Factoryboy, a Pytest fixtures replacement tool that makes it easy to mock test data. On the front end, we use Cypress to facilitate end-to-end testing on our React web platform.
On the infrastructure side, we run a serverless API and several microservices on AWS, with the most recent addition of AWS Step functions to orchestrate the multitude of Lambda services that support our application.
What’s the most interesting or challenging project you’re working on right now, and what do you enjoy most about it?
I’ve recently teamed with one of our senior software engineers to tackle a major version upgrade for our e-prescribing tool, which allows patients on our platform to seamlessly request medication renewal. The project involved upgrading to a new industry standard supported by our third-party e-prescribing vendor. I was brought on board to tackle database upgrades to comply with the new standard, update a Lambda-based service to enable directory syncing between our vendor and our database, and refactor the API to switch to the new standard using feature flags to preserve backward compatibility and safely control the transition.
What’s been exciting about this project is the chance to learn from a brilliant engineer while refactoring a large legacy feature, and modernizing it. We’ve also had the chance to refine coding styles and standards across our organization through the refactor, making the code more readable and extensible in the long term.
What’s something unique about your team?
For starters, our product manager loves alliterations, which makes even the most somber of retros quirky and enjoyable. Our VP of engineering likes to start every all-hands with dad jokes in an attempt to overcome the awkward silence at the start of large Zoom meetings, our SRE team is at times more knowledgeable than AWS documentation itself, and two of our recent hires built and sold an advanced clinical intake software before graduating college. There is a real team bond that has developed despite the unusual circumstances surrounding our workplaces.
I started in July 2020, in the middle of the pandemic, and came in with some hesitation at having to find my place in a tight-knit group without even being in the same room as my colleagues. But they all made sure that I felt included, supported, and that I was given all the necessary tools to succeed.
Clyde is a product protection platform that’s designed to help companies drive revenue. The company works with organizations of all sizes to add extended warranties and accident protection into their existing workflows.
Give us a bit of insight into your tech stack. What are some of your favorite tech tools your team is using?
We are a full JavaScript shop for the most part, Node.js on the back end, and React on the front end. I enjoy the fact that I need to only know one language to work across the stack – there is a little paradigm shift when switching between back and front-end work. For persistent storage and caching, we use PostGres and Redis. We also incorporate TypeScript for some of our newer microservices, which adds type safety to JavaScript, but is still easy to work with.
What’s the most interesting or challenging project you’re working on right now, and what do you enjoy most about it?
In the past we have had to build out a messaging queue from scratch. It’s an interesting challenge with a heavy reward (easy scaling). It breaks the general pattern of web development that we work on most of the time and allows us to build something new, different and unique.
Our current challenge is the match and categorization of data-based or dynamic inputs. It’s enjoyable because it’s a freeform problem where the variables are changing with each new client we onboard. Finding the “perfect” extrapolation is like a game where the rules change just when you think it started to get easy.
What’s something unique about your team?
I’ve worked on small teams and large teams in the past, but I’ve never been on a team from an early growth point onward. This is a unique and ultimately enjoyable experience because you get to shape the growth and be a part of something small that is developing into something big. You will get to see almost every step in the process along the way.
Another distinct feature of the team is that we have a particularly kind and thoughtful culture. We collaborate and don’t intimidate.
Check is a payroll-as-a-service API that lets clients embed payroll directly into their vertical SaaS, HR, or time-tracking platform. This enables companies to build fully integrated payroll products to offer their customers and clients.
Give us a bit of insight into your tech stack. What are some of your favorite tech tools your team is using?
I mainly work on our core payroll platform, which is written in Python, using Django and Django REST Framework (DRF). It’s been really fun to use both of these frameworks. They have a lot of functionality right out of the box and great documentation. One of our most complex API resources is our payroll resource, which has many underlying sub-resources and stateful calculations. Django and DRF have really supported the way we need to model and interact with that resource’s data.
Another great thing about Django is its automatic admin interface. It allows us to very quickly create internal tools for tax operations and payroll compliance, which have become integral to our day-to-day work. Even if a project is deeply technical, it’s important that across the team we have a shared understanding of what our system does. For that reason, it’s awesome to have tools like the Django admin at our disposal, to create quick report prototypes or user-friendly ways to access and edit our internal data.
What’s the most interesting or challenging project you’re working on right now, and what do you enjoy most about it?
Recently, I’ve been one of the primary engineers working to add payroll support for all 50 states. Before joining Check, I had no payroll or tax experience, so I’ve been constantly learning new things about the domain. Building support for a new state requires a lot of collaboration between different teams at Check, and I really enjoy that cross-cutting work. When we look to support a new state, product and engineering work with domain experts to understand tax agency requirements around calculation and reporting. Synthesizing those requirements, with the needs of our partners and their customers, is often the biggest challenge and one that I really enjoy.
What’s something unique about your team?
Every few weeks we have an engineering all-hands meeting where any engineer can raise an issue they notice, source the entire engineering organization for input, or show off an interesting part of the system they’ve been working on. Topics range from code review culture, reconsidering API design choices, how to handle a particular type of payment failure, and tips on how to set up your local environment. Across the company, we prioritize transparency and it’s cool the way that it’s manifested in our engineering traditions. We set aside this time to discuss topics that don’t make it into our day-to-day conversations but ones that we care to discuss with everyone.