
Software Engineer
Title: distinguished engineer- a lead level position for software engineer
Reports directly to the CTO of his company (Keysight technologies)
Keysight technologies has over 15,000 people with 3,000 engineers
Mostly hardware products, but some software products are included
His responsibilities include:
- Prototyping (if there is a problem they would like to solve/make, he would be the person to find a solution)
- Filing a lot of patents
- Leading the technical direction: with any given problem, there are a dozen different ways to solve it. He is responsible for narrowing down to a specific approach and dividing jobs into pieces (one team for a specific part)
- Freeing stuffed projects: if a team is getting behind schedule or if there is a problem that cannot be solved, he assists by getting them out of the situation and redirects them to a different solution


- Introducing many new technologies = has many talk and presentations and papers about how to use the company's technology and teaches people about it
- Technical backup to the sales team (ex: selling to Verizon)
- Due diligence: when companies buy other companies to their technology (He must evaluate technology of the company being bought (quality, pricing, etc))
Thus, software development has a wide variety of roles

Writing software - for research and development
A software engineer just out of college will start working as a generalist
- You must know how to write/evaluate software since you have no specialization
- Will eventually learn something special through your job
Huge variety of subject matter expertise that people focus on (ex: UI development, specific types of technology, medical devices)
- An advantage when you are computer scientist with other area of expertise is that you can write software catered to that area
If you are not interested in writing software all day: all of the following are potential career areas:
- Test engineer- when new technologies are being made, check for problems
- Sales engineer- completely separate from research, manages sales, takes software that has been created and applying it to a real world problem
- Product manager - attached to business, look at the markets, communicate customers' requirements to development for things that need to go in the product
- IT - know and manage things that are used within the company itself (database, networks)
- Operations (for companies that sell services) - manages day-to-day processes (ex: Netflix runs 24/7)
- Liability engineer (new, sub field of operations)- write automaton that will fix the problem automatically
- Marketing- someone needs to understand what the company builds and makes sure other people understand/know about it
They still use computer knowledge, but includes other focuses as well. People can move back and forth between areasAverage annual salary: $85,000/year
How to work in software engineering
The typical way to start is a computer science/engineering undergraduate degree
Optional: masters or PhD degree (boosts your salary a level since you have specialized knowledge)
Should compare whether graduate degree is necessary (better salary with schooling or experience?)
People can still work in software engineering without a computer science/engineering degree:
- Breaking Point Systems: boss/founder/CEO has a music degree
- Director of Internet security development had no college degree (however, he created an open source project: Metasploit, most popular hacker tool)
- Sister majored in English, but now works in software development
However, some things about development that are learned in college may be hard to learn on your own. Without a degree, you must have really good skills to compensate for your lack of education

Steps to help get a job:
Create an open source project or fix bugs of an existing one
Internships: gives experience that distinguishes yourself from others
Technical certifications: taking a class a test from Cisco on network switches, useful for IT
Some companies have corresponding technical and management positions since some people want to switch out of pure programming
When big companies hire, they survey the salaries within the company.
Management increases your salary until you reach the top of your salary band
Then you move to the bottom of the next salary band
You must take initiative to order to raise your salary, so:
Do not be passive about your advancement, be active
Make strategic changes
Do jobs interviews on a regular basis to measure if a job is paying you accurately
Low stress-interviews can be used as practice
Example: his first job was with a telecom company
- took a job interview where he was offered double his current salary, then used this as a bargaining point to raise his own salary to more than double with a two-level promotion
Head hunters may help: professional recruiters, send your resumes to many companies and then compares different salary offers
How to get an interview for a job:
Create a resume (long-form resume): everything that you've ever done that may be impressive
Apply for job: go to a job description, go to long-form resume, and pull points that match what they are looking for (you don't need to match everything)
Condense into one to two pages
Provide a cover letter: one paragraph, make your emotional case (ex: enthusiastic employee, interested in something specific)
Reuse letters and notice which ones have better feedback
Fastest way to advance your career is through a startup
A successful startup grows very rapidly, constantly hiring new people, you get a higher leadership position
90% of startups fail
Learning to evaluate startups (is it ethical/has fair distribution for all employees)
Risk is everything: biggest risk gets biggest payoff
So, choose selectively
Interested in software engineering?
Here are some great resources!



