White boards

My reflection on being the first designer at a tech startup (Letter to Julia)

Hi Julia,

Hope you had a great weekend. It’s so great to hear about your new position! (Can you share a link of your new company? Would love to check it out!) Here are some of my thoughts as the first designer in a tech startup.

Know Where To Deploy Your Energy And Time (or, Solving The Right Problem)

I remember when I first joined Panorama, I felt like there were so many design opportunities. At the time, I noted in my mind: The software itself looks ancient. The website is dark and rigid, there are lots of opportunities for the logo and branding… where to start?

Once you go through on-boarding at work, there will be a lot of ideas and requests thrown at you. “Julia, can you design this power point? Can you design this icon? And Julia, by the way…”.

It can also be dangerous to generate a to-do list based on these requests and start the work in the company. It’s quite exciting to work at an early-stage startup, and it’s great to feel like your skills can be put to use to help your teammates. Startups usually attract a great team of passionate and competent problem solvers, but it’s also very fragile. A startup company usually competes with limited resources and is always running against time. In this context, for us designers, the worst thing is to work on the wrong problem.

Remember, your time is limited, so dedicate your time where it’s needed the most.

You’ll find out where to dedicate your time by asking yourself and even others, “Will this project or task help my company succeed?”

For example, at one stage, your company might focus on building out the product, to make a workable application. Then, as your company’s only designer, all eyes on shipping. Getting that critical function out the door, so people can use the product and you can learn from how people use it. Or maybe, at another stage, the company already has a working application, it’s clunky but working. The company goal could be to improve the sales funnel, increase retention, or expand the client base. As a designer, you might first approach the marketing website and sales materials to help generate potential client leads. If the company already has a large client base, and your product is meeting their needs and desires, then you can start thinking about the company’s larger goals. Carve out time to push the brand and establish a strong brand voice in your industry. For designers, we can craft that voice by producing a coherent brand and visual identity for the company’s assets across the business.

How to Identify and Focus on The Company’s Needs?

When I first joined Panorama, I had 28 fellow employees. I sent out a survey to the entire company, asking for opinions about where design help was needed the most. My new teammates submitted responses to the question: “which part of the product do you think need the most design work?”.

“Which part of the product do you think need the most design work?”

Looking back on that time, I would seek feedback about design work in a different way. I would meet with every single team member, ask them the same set of questions over coffee, and have a conversation. A personal dialogue would have enabled me to ask follow-up questions and build a contextual view of the design needs of my company. Also, I would seek out a more in-depth conversation with the co-founders, and give more weight to their opinions.

Understand Your Company’s Customers

Building context is expensive.
When I was working as a design consultant, in the beginning of every project, I would spend one-third of the time building context, understanding the client and the client’s users. The better you can gain an understanding of your client and the end user, the better a design you can make. Building context is the best knowledge base for you and your teammates to reference as you make design decisions. Having a knowledge base to reference helps the decision-making focus on the user’s real needs, rather than your team member’s personal taste.

From my experience, you will understand your customers better by:

Sitting in on sales and client calls.

Establishing a user research practice in the company. Schedule in-depth conversations with at least five users every month.

Using analytics tools to help you gain a quantitative understanding of your end users. For example, tools like to use Heap + Fullstory.

Think About Hiring Your Next Designer

I know it sounds ridiculous. You’re thinking, “I just got here…?!?”

It’s not an easy task to find the right design candidate. It took us more than a year to hire our second designer Terrence. And we went through about more than 250 candidates until Terrence accepted our offer. The reason is that it’s hard to find the right fit, a candidate with the right skill set, experience, and work ethic.

It’s important not only because hiring and recruiting take time. It’s important to us because we are choosing our “partner in crime”. We are choosing our future design partner, you will likely spend a lot of time with her/him, and finding the right designer can help your grow.

The best place to start is to work with the hiring team to develop a strategy and roadmap for the next hire. Understand when it will likely be time to add an additional designer? What level of experience do we want this candidate to have? Where are the best places to find him/her and how will you build a presence at those places? For example, maybe your next hire will be someone with great data visualization skills. Then it would be a good idea to attend a Boston Data Viz Meetup. Or, if your next hire is someone with great visual skills, you would want to visit Dribble or an AIGA Meetup.

Your work is your studio

Lastly, here is some advice. It’s not just for starting work in a startup, but working as a designer.

A supportive environment with great feedback

Your workplace is your studio to practice your craft. Practice regularly, in a supportive environment. Find adequate opportunity to practice design. Seek and provide rapid feedback about the correctness of thoughts and designs. Work hard and be nice. You can build this type of environment with no ego but only great work 🙂

Enjoy your first day at work! And the coffee house I mentioned on Friday is Ogawa Coffee.

All the best!

Roger


Post Script:

Roger: I have an idea. What if you wait a few weeks, then write a reflection in the new year about your first few weeks at Crayon? We can see how closely my advice matched your experiences?

Julia: That would be awesome. Then we can share with other designers working at startups, and see what they think too.

Read More

Our Git Workflow

As happy git users, we love learning how other people use our favorite version control system. So, we thought we’d add to the discussion and share how we use git and other tools to drive our engineering work. We’ve been improving our git workflow for a few years, and our current solution is optimized around:

  • Easing work parallelization
  • Communicating who’s working on what
  • Allowing us to prioritize tasks
  • Allowing external stakeholders to view task progress
  • Preventing us from deploying un-QA’d code
  • Creating a clear path for engineers to take their tasks through the pipeline of development, testing, QA, all the way to production without blocking on work from others

We’ve been pretty satisfied with our setup – check it out, and let us know what you think!

Read More
Designing Reports

Designing educational products with emotions

What is unique about designing for educators?

A new team member asked this question during her recent design on-boarding session at Panorama Education. This isn’t an easy question to answer. Just as there’s no perfect architecture for a building, it is difficult to define one single design that solves every problem for teachers and principals.

Read More
code

Support Engineer: Experiments & Learnings

Each year Panorama Education helps thousands of teachers, principals and school administrators across the country to gather feedback from their stakeholders in a several different ways. Our relatively small engineering team (we just hired our 10th engineer!) strives hard to make sure that it is not only a great experience for millions of students who take our surveys but also a delight for schools and districts to gather and analyze feedback. With ever-increasing engineering needs, teams in a growing startup like ours often have to balance product development with operational and support-related tasks. And one of the ways we address this at Panorama is by a weekly support engineer rotation process.

Read More

Generating PDFs From Webpages With A Large Number Of Graphs

When we generate survey reports for clients, along with online reports with interactive graphs we also generate PDFs that clients can print out and share. Converting our online reports-each of which sometimes has several hundred graphs spread across multiple pages-to PDFs has been an interesting challenge.

Read More

What I’ve learned after half a year of working remote

Early last year my wife and I got the great news that she had been accepted for a research fellowship at the NIH in Bethesda, MD. Although very excited for the opportunity, that unfortunately meant that we had to move down there and leave Boston. At the time I had been working for Panorama for just a few months, but it was definitely enough time for me to get hooked with the company’s mission, its energy and above all my coworkers who I already called friends.

It has been over half a year now since I went remote, and with the new year I feel it’s time for a little retrospective.

Read More

Ruby Gem – ExternalFields

ExternalFields

We recently released a rails gem called ExternalFields (Github). As the name suggests, this gem allows you to create the illusion that an object has specific attributes when those attributes actually belong to an associated object. This is particularly useful for different classes within a single-table inheritance table to have access to separate fields in class-specific associations. In addition, this gem gives us more power than standard Ruby/Rails built-in delegation methods by automatically creating necessary objects and associating them.

Read More

How we added accessibility to our web app

We recently held our Fall Hackathon where all teams at Panorama take a 24-hour period to collaborate across the whole company to hack on great things. Many of our Hackathon projects are outside of our day-to-day work, would move Panorama’s efforts forward, or just solve that nagging problem that you just hadn’t gotten around to yet. For the four of us (1 engineer, 2 account managers, and 1 director) on Team A11y, we focused on the accessibility of our product.

Accessibility here refers to the design of products, devices, services, or environments for people with disabilities. Our products are used by students, families, and educators around the world, and we need to be able to serve every user as equally as we can. Fortunately, there are some initiatives in the tech world that provided us a lot of guidance and helped to shape our thoughts on how to approach this, in particular: the a11y project and W3C’s guidance on accessibility.

Read More

A Homemade Distributed Computing Project

One of the things that gets me really excited is making the world a better place. As an engineer, I’m often in the mindset of automating as much as possible. But can we automate making the world a better place?

Read More

Implementing priority lanes for jobs of the same type in Sidekiq

We use Sidekiq Pro to manage all background jobs in our Rails application. While Sidekiq has built-in support for prioritizing jobs of different types, the framework does not inherently support prioritization for jobs of the same type. So we built out that feature ourselves!

Our Sidekiq setup involves workers split into a few different worker types differentiated by memory availability and the concurrency with which jobs are processed. Initially, workers belonging to each worker type had a single designated queue they pulled jobs from. For example, consider two types of jobs, FancyJobA and FancyJobB that are both processed by the same type of worker type_a_worker.

Read More
1 2