Computer Science
What is it like in the wild blue yonder?
Dani Tornow
2019
Agenda
- Types of Jobs for Computer Science Majors
- Types of people you may work with
- My Experiences (Sanford & Before)
- Sanford's Tech Summit
Different Types of Software Engineers & Developers
- Website Developer
- Web Application Engineer
- Application Developer
- Embedded Engineer
- Hardware Engineer
A not 100% inclusive but mostly inclusive list.
Website Developer
- Responsible for creating the front end and back end of websites
- Likely uses/used Wordpress or other CMS
- 28.9% of the internet uses Wordpress
- Technologies you may use: Javascript, PHP, Java, Node.JS, MySQL
Source: https://www.codeinwp.com/blog/wordpress-statistics/
- Likely support a couple of websites or create new before moving onto the next project
- Typically smaller in scope
Web and Mobile Engineer
- Work on a website or app that is custom built and dynamic
- Requires more knowledge of networking and systems
- Technologies you may use: Java, PHP, React, Javascript, Apache
- Typically larger teams than a website development team
- Requires more interaction with different roles to drive direction, requirements, and acceptance
- Maybe partially or entirely mobile
- Examples: Facebook, Amazon, Snapchat
Application Developer
- Work on developing systems that run within an OS
- Need an understanding of the OS developed on and the functionality available
- A new deployment requires upgrades on the user's computers
- Runs outside of the scope of the internet though might be used for upgrades
- Game Development falls mostly in this realm (some mobile)
- Example Applications: Microsoft Word, Photoshop, Minesweeper
- Example languages: C, C++, Java
Embedded Engineer
- Work on devices that require hardware level programming
- The type of device could be a smart fridge, a farming device, or a cell phone
- Team size is usually large but broken down by feature or product
- Technologies you may use: C, C++, Javascript, Java
- There are frameworks and languages built to support embedded development
- May hear devices called an IoT device (Internet of Things)
Hardware Engineer
- Responsible for developing the components that run all other developer's work
- Lowest level you can get and still be programming
- Awareness of how operating systems work a must
- Technologies you may use: C, C++, Assembly Language, HDL
- Companies may work for: Intel, AMD, HP, IBM
- Examples: Writing CPUs, RAM drivers, GPUs, etc.
Other options
- Database Engineer / Administrator
- Create databases and care for them
- Manage new features that need database support
- Network Engineer / Administrator
- Enforce network security and new changes
- May write little code
- Server Engineer / Administrator
- Set up servers that will be used for development
- Keep servers secure and clean
- Security Engineer / Administrator
- Concerned with the security of the whole of the organization
- May write little code
Average Median National Salary
- Website Developer
- $68,228/yr
- Web Application Engineer
- $88,488/yr
- Application Developer
- $76,195/yr
Source: Glassdoor.com
- Embedded Engineer
- $83,732/yr
- Hardware Engineer
- $98,001/yr
Woah! A lot of options!
Why does this matter?
- The first full-time job will refine your skills
- Usually, those skills learned at the first job help land the second job
- By the second job it is much harder to break out of a niche
- Switching focus may cost either money or title, depending on the situation
- My advice: choose something you are interested in and unlikely to be dissatisfied
Who you may work with
- Business Analyst
- Project Manager
- System Engineer
- Product Manager / Product Owner
- Subject Matter Expert (SME)
- Other IT
A less than 100% inclusive list but some key ones.
Business Analyst
- Work alongside the developers as a bridge between developers and stakeholders
- Refine the requirements and needs of the customer/end-user to work understandable to the engineers
- When not done well, easy for engineers to develop features that are not needed or incorrectly understood
Project Manager
- Responsible for dictating the direction of the project
- Takes input from both Business Analyst and Engineers to determine timelines and work to do
- Strive to balance time, resources, and work (not easy)
System Engineer
- Designing and managing the systems you will be developing
- Have a technical background but not likely to be a developer or write much code
- Focused at the level of the whole, much like the project manager, but with how to achieve it technically
Product Manager/Owner
- Product Manager/Owner is the person who drives the vision for the team
- They are the customer or work with customers to define the roadmap of features
- Their focus is the business and/or organization's success
- These people likely will not be very technical and will not understand the jargon of an engineer
Subject Matter Expert (SME)
- This is a title that can be applied to many people at different levels
- Used to indicate that the person is, according to the company, the foremost expert in a particular thing
- That thing is usually a skill, a knowledge, a product, or even a technology
- You typically work with these people either prior to a new project to get understanding or when you run into an issue and need to debug the problem
Other Information Technology
- Database Administrators (DBA)
- You'll work alongside these people when you need to interact with the database
- New tables, new databases, even new database technology will be within the DBA's domain
- System Administrator (SA)
- You'll work alongside these people when you need new servers for new or existing applications
- They maintain the servers and will be the people to ask about new technology on the servers within the SA's domain
Other Information Technology Cont.
- Helpdesk
- Frontline for support and dealing with customers
- Typically the people who know your product best
- These people are your allies, treat them well
- Application Support
- The users who work within the application to help maintain other users
- Power users
- Another great resource for insight into application
My experiences
What I'm doing now: Sanford Imagenetics
- Lead Software Engineer (Web Application Engineer)
- Working on bringing genetic understanding to preventive healthcare to better treat the populations in the Sanford footprint
- Complex web systems that interact with both patients and lab equipment
- Work with: Lab Directors, Genetic Counselors, Bioinformaticians, & other engineering staff
- Technologies: Ruby, AWS, Microservices
What I did before: Raven Industries - ADT
- Software Engineer (Web Application Engineer)
- Developed communication tools to interface between IoT devices and website
- Used by farmers for spraying fields with detailed precision
- Only a portion of what Raven does
- Technologies: PHP, AWS, MySQL
What I did before that:
USGS EROS
- Software Engineer (Web Site Developer) and Database Administrator
- Worked with satellite data and processing, data websites serving data
- Landsat data is used by Google for large-scale images
- Technologies: PHP, PostgreSQL, Drupal
Other people doing cool stuff.
- DocuTap
- Building software for healthcare clinics (much smaller than Sanford)
- SDN
- Bringing internet and networking solutions to the greater area
- Avera
- Another huge Healthcare organization on our doorstep
- BANKS!
Disclaimer: This is not a full list of cool companies in Sioux Falls!
Sanford Tech Summit Oct. 5-6th
Win CASH and build on your experience
- Collaborative Hackathon style event
- Teams of 4
- Focused on the Following problem types
- Frictionless Patient Experience
- Treatment Transparency
- Seamless and Secure Data Transitions
South Dakota Code Camp
- Hosted by Sioux Falls Developer Group
- Saturday, November 9th, 2019
- Free event with local speakers! (Including me)
- For more information find their webpage:
Thank you!
- Take a business card. Networking is important!
- Find these slides at: https://slides.com/danitornow/computer-science/
- I hope these ramblings have been helpful
- Find me at:
- LinkedIn:
- www.linkedin.com/in/dani-tornow/
- Twitter: @danitornow
- GitHub: danitornow
Questions?
Learn More Programming
- Hacker Rank
- Udemy
- Tutorial's Point
- Code School
- Code Wars
- Stack Overflow
- Code Academy
- Coursera
- Edx
- Project Euler
Pick a couple of skills and learn them. Don't try to learn everything at the same time.
Shapes of Learning
Fin.
Computer Science
By Danielle Tornow
Computer Science
- 211