Cory's Notes

Cory’s Notes
CS 476
Speaker: Chris Rees
1/31/2017

Discussion:
• Graduated from University of Central Florida in 2001.
• Feb 2012 was first day at UrbanCode located in Cleveland (was 8th developer)
• Worked in both start up companies as well as enterprise level.
• Worked for IBM
• Currently works at CoverMyMeds
• Was at the Healthcare meetup earlier this semester.
• Worked on build automation: UrbanCode build
• Big difference between startups and an enterprise company
o Lots of resources and teams at IBM
o Worked globally with teams when at IBM
o Worked with people in Sweden, Canada, various other US locations
• Lots of meetings at work
• Tough working when the people you work with live in different time zones (China, Sweden)
o Makes the hours on some days odd for everyone (early mornings, late nights)
o You just have to make it work best you can
• Had no product owner for project at IBM
• For a long time he did developing and support, scrum master things
• Lots of planning into the future (6, 10 ,12 months out)
• Just under 1 year ago decided to leave his job
o Lots of Java developing there, wanted to move on (.NET)
• Wanted to see what other jobs are out there
• Now works at CoverMyMeds, been there for 8 months
o Healthcare IT
o Helps people get medicine they need
o Automated the process where you have to previously fill out a lot of forms
• Brought time from weeks down to 5 minutes
o 50 million people get medicine a year through them
• Does not do front end code at new job
o Works the pipeline on the backend
o If what he does goes down (servers) the whole system goes down
• About to work for a team called Integrations
o There will be 4 of them on the team, different than is current 18 person team
• Things he wished he knew before graduation
o If you have the opportunity to do a co-op or internship take it
o Hard getting a job without one, he says he got lucky without one getting a job
o Good to have experience
o Have side projects so you can help prove concepts and know what you are doing better
o Take note of professionals, you can learn a lot from them
o Makes pong when he wants to learn a new language
• Writes the program in the new language
o Write code when you are bored so you get experience with the code
o Give projects to potential employers (on resumes)
o You’re going to feel like you know nothing, look up imposter syndrome(self doubt and how to get around it)
• Don’t worry that you don’t know anything, look for help and ask questions
• Once you get by the mental block things will get easier
• Was a team leader early in his career and felt self doubt a lot
• Starting to learn Elixir language right now
• What it’s like working for a startup:
o 25 employees
o 8th developer to be hired
o Was put on a new product right out of the gate
o Worked close to the CEO (office was next door)
• Always had something to say about the products
o First version of code was rough around the hedges
• One person worked on it originally and wrote the code his way, now it’s hard to understand since they didn’t have good comments
o Lack tooling and consistency at a small company, may not be there or isn’t followed well
o Not always a code review at the company
• Led to a lot of things ‘breaking’ in the code
o Lots of change (co-workers, company practices)
• Start making sales
• Code style
o Continuous delivery is very fast at a small company
o Lots of old, free software at a startup
• Sometimes 10-15 years old
• Dojo, JQuery code
o Some code was new
o They will have a different feeling to them (faster pace)
o
• Sometimes code is hard to fix (lots of dependencies in the code)
• CoverMyMEds Employee #350 when hired 8 months ago, now they are at 500
o Want to keep growing but at a faster rate
o Maintaining company culture even with the rapid growth
• Slightly different atmosphere at CLE/Columbus offices
o Company puts employees first
o Can work on whatever he wants during the day, as long as he gets his work done
o Can join many teams at once if he wants to
• Good thoughts on how to look at a problem arise with collaboration with other teams
• Lots of tech companies in Cleveland
o Interviewed at many companies here when looking for a job
o Lots of really good companies here
• Culture is more important than you think
o Enjoy where you work
o Makes people happy if surrounded by a culture that fits you
• Employees more likely to stay if they are happy
o Interviews look to see whether someone will fit the culture of company
• Don’t be afraid to ask dumb questions about the company or culture
o Helps to see if the company is for you

Questions:
• How much time do you spend programming at each company?
o UrbanCode - the majority of the day
o IBM - 50% of day but had many other responsibilities
o CoverMyMeds - 80-90% of day but not a lot of meetings
• Did you have any classes that taught you about Scrum? First impression?
o Yes/no, one class that helped with project management (Processes)
o Knew Waterfall vs agile, but only slightly heard about scrum
• Knowing what you know now, do you think you should know if a company does code reviews or not?
o Being in the industry it is better to have a company that has a code review, it is very important for the success of the company, and it is worthwhile to find out, but don’t base your whole decision around it.
• How important is having your masters in Computer Science?
o Not entirely important, can be hired because of many other reasons, most companies will help you get your masters once you work for them
• When switching between companies or starting up for the first time what were some of the training you got to get accustomed with the environment?
o Threw him into the fire
o Less than 6 weeks at CoverMyMeds of training
o Find your own ways to make it work for you
o Part of starting there they make you fix a bug or add a feature to the employee lookup page.
• Should you start at a startup company first of at a larger company?
o Personally he thinks a startup
o He likes a small environment, he knows everyone
o Definitely a different environment between the two
o A startup feels more open but may have more challenges
• Can you share your experience with software patents?
o Lots of time and money is spent at Apple/IBM for patents
• IBM wants you to patent anything you think is worthwhile
o Filled out a form and sent it to patent lawyer
• Told them to try and find that same idea elsewhere
• Had to tweak their idea slightly
• If you can’t then you can send it to another patent office and they will check themselves whether or not it’s unique.
o Lengthy process
• Do you own part of a patent? Do you get royalties
o Its owned by IBM but his name is on it
o Since he left he doesn’t get anything out of it
• What was the biggest thing you learned transferring from a small to large company?
o Everything is different
o Different technologies, they all have their own way to do something and you’ll need to learn to do it their way
o Security scanning is more important at a large company
o A lot of things become very important very quickly at a large company that weren’t before
o Large companies want to use their own technologies and products instead of others
• Did you have any background with Healthcare IT prior to CoverMyMeds
o None besides his mother working at the hospital
o Learned everything on the job
o Kinda difficult not knowing healthcare but just wanted to write code so he didn’t care that he didn’t have prior knowledge of it
• What has been more helpful, learning new languages or new tools?
o Learning a language is easy, once you know one you know them all
o Tools are interesting but doesn’t think they have benefited him too much
• When you talk about training at a company, what does that consist of?
o Going through exercises
o Getting walked through things
o Got paired up with someone to go through the whole process of deploying something
• Do you have a go-to place to learn something new?
o Taking a program and writing it in different language to learn the mappings between languages
o Exercism.io
• Practices test driven development to learn a new language
• How expensive is it to rewrite code?
o Lots of different factors play into it
o 6 months of work for once of his projects
o Risk assessment
• How often do you learn a new language?
o Around every year
o Whenever he gets bored and wants to
• How do you find out about new technologies (languages)?
o From the companies or just because they are similar to other languages and you hear about them online
o Hearing them from colleagues
o Going to conferences
• Have you had programming questions come up in an interview?
o Brain teaser questions
Problem solving questions
• FIZZ BUZZ
• Reversing a list
o Sitting down with a developer sometimes
• What languages do you recommend we learn?
o .NET
o Depends on what you want to do though mainly
o Web Frameworks
o Learn about the things that interest you or that you want to know
• With regards to people that you work with that are not here, how do you stay in touch?
o Video conferencing
o Teammate (SSH into each other machine to edit each others code)
• Language barrier when working with people overseas?
o Yes, especially with China
o Had to have a translator in some cases
o Mainly talked through phone so hard to understand accents
• Did you practice code structure principles?
o Yes, there was one in place already
o Wouldn’t let code be saved unless it met the standards
• Learn one thing and be the best at it or know many little things?
o Prefers to know many little things because it’s easy to expand that knowledge
• In interviews, they emphasize more about projects rather than your college education, is it better to go to college or just learn the skill?
o College is better for theory but it all depends
o He doesn’t like companies asking where you came from
o Prefers a company to hire him for who he is and his potential.