Nadya Primak – Lead Front End Developer and Game Developer

Tell us about yourself
Probably the best way to describe me is as a “Jill” of all trades. It took me a long time to figure out what I wanted to do with my life, because there were so many things I was passionate about: art, writing, animals, games, and technology to name a few.

Even in college I could not really commit to a standard major. Instead I chose to get a degree in Art, with a concentration in Computer Science. At the time I was most interested in web design, but in the years following I discovered I had quite a knack for programming and data visualization, which caused me to change course working on big data applications for a number of different companies. I’m still figuring it out, though. All I know for sure is that I love to be creative AND solve problems. I am also very passionate about video games.

Currently I’m enrolled in a Game Design Certification at American University, and exploring the world of ‘serious’ games that have a purpose such as education or social impact. I think I’ve reached the point where making games on my own is not really teaching me what I want to learn. It’s exciting to no longer be working in a vacuum and I’m looking at working with a professor who has been awarded a grant for a serious game project.

 

How did you first get started in your career in tech?
I went to Oberlin College about an hour’s drive southwest of Cleveland, Ohio. For the first couple of years I thought I wanted to be a designer, and I took the majority of my classes from the Oberlin College Art Department. I was curious about Computer Science but after taking my first serious programming class I became intimidated.

I worked for many hours every weekend to get A’s on my take home programming projects and then still did poorly on the exams. Then everyone was talking about how much more difficult the next class required for Computer Science majors would be, that it would make the class I took look like a joke.

After hearing this, I decided that I didn’t have “what it took” to be a Computer Science major, so instead I settled for majoring in “Visual Art with a Concentration in Computer Science”.

When I graduated I had enough technical skills that the Art Department decided to hire me as a Computer Lab technician, helping students with printers, running workshops, and assisting professors. It was a pretty low key job that gave me ample free time to build up a programming portfolio of what I loved to code best: games. I was fortunate to have a lot of free college resources at my disposal, such as Safari Books and Lynda for tutorials.

I was also fortunate that my fiance, now husband, had lived in Saint Louis and knew about a non-profit called LaunchCode that helped people with programming skills get their foot into the door with startups. We ended up moving there after living in Oberlin for an additional two years post graduation. LaunchCode convinced me that I had what it took to get a software development position. I ended up getting placed at a startup there called Label Insight.

Tell us about your first tech job
It’s hard to define what my first tech job was, because I had a brief freelancing position followed by what was meant to be a one month “hackathon” that ended up turning into a 4 month endeavor. Both of those experiences gave me a little bit more exposure to the tech industry and helped me overcome some of the initial terror. However I still think of my position at Label Insight as my first real tech job, where I actually had the title of Software Engineer.

As I mentioned earlier, I got the Label Insight position through LaunchCode, a nonprofit that operates like a mix of a recruiting agency, mentorship center, and general hub for tech in Saint Louis. I was vetted by someone at LaunchCode and did a practice interview to help prepare me for my next position. I interviewed at several startups that LaunchCode put me in touch with, and ended up doing very well on the coding test that Label Insight assigned me.

After showing my portfolio, chatting with the Lead Engineer, and doing a brief in person interview, I got the job. I think it helped me tremendously that I had spent two years working on coding games and other projects in my spare time. I also would not have known where to begin looking if I didn’t have the help of LaunchCode. They helped keep me motivated and inspired to work harder.

Working at Label Insight was definitely a rollercoaster, I had a lot of self doubt and felt pretty overwhelmed by the complexity of the codebase when compared to my personal projects. I was lucky to have co workers who were patient with me and willing to answer questions, because without that I think I would have crashed and burned. Although I always felt nervous that asking questions would get me yelled at or fired, over time I became more comfortable and realized that asking questions was part of the job. Nobody in tech has all the answers, and the people that claimed to were usually the worst developers.

Tell us about your role as Lead Front End Developer at FactSquared. What are the most important skills to have for someone in your position?
FactSquared is a startup still in the very early stages, and I felt lucky to be the first full time developer hired by the company. My first major task was to build from scratch a completely new version of the user interface for searching Factbases, our core product. I was excited about this opportunity because it was the first startup I ever worked for that used machine learning. Basically we transcribe and analyze audio from a speaker (one factbase = one speaker), and then make all of that transcribed text searchable. We also use machine learning to analyze sentiment, grade level of speech, and data extracted from the speaker’s voice.

One of the biggest challenges for the front end was finding an efficient way to display and manage the vast quantities of data without overwhelming the user. Knowing Angular, a very robust javascript framework that plays well with large datasets, was key to my early success at the company. A few years ago I also completed a UI/UX Certification from UC San Diego which made me much better at avoiding pitfalls while redesigning the search interface and making it easy for users to understand what data we were presenting them.

How do you keep up with changes in technology?
I would be lying if I said this wasn’t one of my biggest struggles. Existing front end frameworks (which tend to speed up development significantly) are constantly being reinvented, and to make matters worse new ones are being created as well. I have found that I come back to frameworks that are well maintained, have great documentation, and a large community that has already been established around the framework.

The better the community, the easier it is to keep up with changes in a framework. Because I worked with Angular at Label Insight and started to have a better understanding of how that framework worked, it seemed natural to continue building on that expertise. The downside of course is the more expertise you develop around one framework, the harder it can be to switch to a different one later on. It helps to find a programming niche you are passionate about that you can work on in your spare time, to try out tutorials in frameworks you want to learn.

How did you get into Game Development?
Game development was what drew me to programming in the first place, because I grew up playing games. My parents were immigrants from Siberia that came to America on students visas, so much of my childhood involved playing games in the lab while my parents worked furiously in order to receive their PhD’s in Physics.

My first exposure to game development was through an independent study with my favorite computer science professor in college. In that experience I thought that it was more difficult to create games because I was building the game physics and other basic components from scratch. When I found out that there was software and engines that provided all of that stuff for you, I got hooked.

I was learning to make games when HTML5 was the new cool kid on the block, so a lot of my early games were built with the Canvas element and WebGL. The first engine I played around with was Phaser, now a very popular javascript game engine. I primarily followed along with tutorials in one specific book I found on Safari Books, basically about building different types of web games. I benefited from learning to make games with plain old simple javascript. It made learning javascript frameworks much easier later on.

Tell us about the favorite game that you developed
This is a tough one. Although it is one of my older games, I would say my favorite would be Hnefatafl. It was the first big development project I took on after doing a lot of tutorials, and I honestly wasn’t sure I would be able to pull it off. I think completing that game was the first time I truly felt real confidence about my ability to code.

Hnefatafl is an ancient viking board game that many theorize inspired chess. There are two players, and the pieces on the board are black and white like chess. Unlike chess, the white pieces are in the center, with a king in the middle that has to escape to one of the four corners of the board in order to win. The black pieces surround the white pieces, and have to corner the king on all four sides in order to win. That’s the basic premise, but you can check out the rules on the site for the details.

It was tricky to code all of the game logic and re-render the board on every turn with the way the HTML5 canvas element works, but I felt tremendous pride when I completed the project. Though the game h

as some bugs now because it has been hard to maintain with my other projects, I still feel like it was the most serious game project I ever took on.

What advice would you give to someone who is considering a career in tech?
Baby steps. The tech industry is so overwhelming that it is very easy to look at it and just run away screaming. Hundreds of thousands of articles are posted every day, not to mention the number of coding projects on Github and other platforms. When I was starting out I forced myself to ignore all of the noise and just focus on completing a small project.

I think this is how I maintained my sanity and also built my confidence. After many of these small projects I realized I was qualified for more senior positions and suddenly people were looking to me for advice. I honestly never expected that would happen, and still feel surprised when it does.

Previous Post