In [27]:
from watsongraph.item import Item
from watsongraph.user import User
This is Me, I would like to learn something DEEPLY in the Python world, but I am not sure what I should learn. This isn't for purely academic reasons either, I would like to be paid to code someday.
In [28]:
Mike = User(user_id='mike')
These are my interests in no particular order
In [29]:
Mike.input_interests(["Python", "Servers", "Database", "Software Development", "Internet of Things", "Automation", "Systems Admin", "GUI", "Android", "OSX"])
List out the interests...
In [30]:
Mike.interests()
Out[30]:
In [33]:
Mike.input_interests(['web app', 'linux'])
In [34]:
job1 = Item('Python Developer', '''Design, build and maintain backend applications that our internal teams use on a
daily basis to power our solutions. Examples include lesson management systems, roster management tools, and
operational reports, as well as tools to automate our daily and periodic student personalization processes.
What We Are Looking For
Strong desire to work in a highly collaborative, fast-paced start-up environment
2-3 years of experience developing professional console and web based applications with at least 2 years developing
professional grade solutions using Python
Experience with web frameworks such as Django, Django REST framework, or Flask.
Comfort with Git
Familiarity with the MEAN stack (Mongo, Express, Angular, Node)
General familiarity with Linux
Deep expertise in database centric development using MS SQL server
(2012 preferred) and Postgres, using FreeTDS and PyODBC
Understanding of scalability patterns including message-centric design
(e.g., Rabbit MQ and Celery) and distributed caching (e.g., Memcached)
Intimate understanding of advanced OOP concepts.
Proven experience building maintainable solutions; emphasis on managed extensibility,
versioning, logging and instrumentation
Familiarity with Test Driven Development fundamentals, including the creation and management
of tests using popular testing frameworks and approaches (Isolation/mocks, regression testing, etc.)
Familiarity with C# or Java huge plus.
''')
job2 = Item('Systems Programmer/Analyst', '''ECU is recruiting a Systems Programmer/Administrator to join our Enterprise Linux team. We are looking for a talented Systems Administrator who wants to be part of a team of Systems Programmers supporting Linux systems for East Carolina University. The position supports the University's mission critical ERP, Course Management, HPC and many other related systems. The position will be involved in various platform projects while provisioning new systems and managing them using IT automation tools. If you are familiar with Linux administration and looking for an opportunity to grow professionally apply today!
Skills:
1.Linux Systems Administration (Red Hat Enterprise Linux, Oracle Enterprise Linux, or similar)
2.Systems programming (shell scripts, Python, Perl).
3.Strong analytical and troubleshooting.
4.Ability to manage projects effectively.
5.Strong organizational and planning skills.
6.Excellent communication skills to work efficiently with employees at all level within the organization.
Minimum Qualifications Bachelor's degree in Computer Science, Computer Information Systems, Computer Engineering, or closely related degree from an appropriately accredited institution; and three years of experience in operations analysis and design systems programming or closely related area; or Associate's degree in Computer Information Technology, Computer Engineering Technology or Networking Technology from an appropriately accredited institution and four years of experience in operations analysis and design, systems programming or closely related area; or an equivalent combination of education and experience.
Preferred Education and Experience Preferred Skills:
1.Technical expertise in supporting Linux or UNIX Operating Systems.
2.Understanding clustered systems, server virtualization, and IT automation.
3.Kickstart, JumpStart, Puppet Enterprise, Cluster technologies.
4.IT Automation using shell scripts, Puppet Enterprise modules, Python, Perl, or other programming languages.
5.Three years of Systems Administration, Systems Programming, Systems Analysis, or a closely related field.
6.Experience configuring server hardware (rack optimized, standalones, and blades) from various vendors. ''')
job3 = Item('Devops engineer', '''Excellent system-level thinking and the ability to move up and down the stack
5+ years of relevant experience
Knowledge of several scripting languages (Powershell, Python, bash, Ruby, Grunt )
Knowledge of system automation frameworks and their applications
Have experience supporting distributed web applications, in a large, complex and evolving environment
Experience with Amazon Web Services
Believer in Continuous Deployment / Integration / Delivery throughout the software engineering lifecycle
Experience with Windows and/or Linux administration, and Infrastructure management
Experience with Configuration Management and Desired State (Chef, Puppet, Ansible, DSC)
Experience with Continuous Integration platforms (Teamcity/Jenkins)
Experience with Logging and Alerting platforms (Splunk/Datadog/Nagios/Cloudwatch)
Experience with Relational Databases (MSSQL, MySQL) You'll help build the tools and systems that help Xero's Engineering, Quality Engineering and Operations teams to deliver high-quality software, fast.
Work throughout the full infrastructure, including design, architecture, communication, monitoring, availability, scaling, failover and recovery.
You’ll utilize your passion to learn new technologies, enthusiasm about sharing knowledge and experience.
Put your “try anything once” attitude to work.
''')
job4 = Item('Software Engineer in Test', '''
Piper Enterprise Solutions is seeking a Software Engineer in Test for a growing software organization in Durham, NC (Durham, North Carolina). The Software Engineer in Test will join a company voted as one of the best places to work by Glassdoor. The Software Engineer in Test will become an integral member of an automation testing team with advanced growth opportunity. The ideal candidate for the role of Software Engineer in Test will possess a background with experience in QA automation and an understanding of how software is built in addition to knowledge of object oriented programming. The Software Engineer in Test will be responsible for the design, development, and implementation of the automated testing framework and overall testing and validation to ensure product quality.
Requirements for the Software Engineer in Test include:
2 plus year of professional testing experience in QA automation
1 plus year of programming experience preferably in Java, Ruby, or Python
Selenium WebDriver experience is a huge plus
Strong verbal and written communication skills''')
job5 = Item('openstack software engineer', '''An OpenStack Software Engineer at Blue Box is responsible for building and maintaining software, tools and services to support our OpenStack private cloud offering and advancing the development of our Infrastructure Automation and Configuration Management tooling.
We are a small distributed team, so a cultural fit is very important. We’re a friendly group that enjoys kicking out code and creating brilliant solutions that make our customers’ lives easier. Our modern infrastructure is built upon a diverse and ever changing toolset. The candidate will need to be an autodidact that is willing to commit their passion for learning to our goal of making our infrastructure best in class.
Job Responsibilities:
Improve our infrastructure and internal systems
Help us refine and evolve our OpenStack service offering
Take initiative to substantially improve customer and colleague workflows
Meet with team members for regular sprints, develop and complete agreed-upon stories
Develop modular, clean code with comprehensive tests
Work across teams to determine most efficient path to meeting service requirements
Provide clear documentation for completed work
Mentor other engineers and be willing to share their knowledge and expertise
Required Knowledge, Skills and Abilities:
Understanding of modern cloud (compute, storage, networking) with an emphasis on OpenStack
Chef or Ansible - Belief in infrastructure-as-code
Ruby or Python
Virtualization (Kernel Virtual Machine (KVM), Vagrant, OpenVZ or Link XIO Control (LXC)) Containers experience is a plus)
Continuous Integration (CI) (Jenkins or Travis)
Linux - Red Hat Enterprise Linux (RHEL) and Ubuntu
Serving high-traffic web applications in production environments
Exposure to Ruby on Rails applications and common deployment tools
Familiarity with multiple data stores. We work with a lot of MySQL, PostgreSQL, Redis
Git and github experience in a collaborative development environment
Understanding of Representational State Transfer (REST) Application Program Interfaces (APIs), how they are used and the ability to create their own
Required Technical and Professional Expertise
At least 5 years experience in working as a software engineer
At least 1 year experience in CentOS / Red Hat or 1+ year Debian / Ubuntu
At least 1 year experience in working with configuration management tools (Chef, Ansible, Puppet)
At least 1 year experience in MySQL and MySQL Replication, PostgreSQL, MongoDB
At least 1 year experience in Linux, Apache, MySQL, PHP (LAMP) stack
English: Fluent''')
job6 = Item('systems engineer', '''Specific Responsibilities include but are not limited to:
Odyssey is seeking experienced software engineers with expertise developing Python applications in a Linux environment.
On one program, a software engineer will be responsible for developing extensions to two large software packages:
Python library for virtual machine control (Open Stack Nova)
Python web application for virtual machine cluster administration (Open Stack Horizon)
On the other program, a software engineer will be responsible for:
Python web application development with Django
Distributed workflow automation with Docker and Celery/RabbitMQ
Further, the software engineer will be responsible for participating in release engineering, specifically in the following areas:
Debian/Ubuntu packaging and release of software
Use of version control, automated testing
Integration testing with other software projects
MINIMUM QUALIFICATIONS
4+ years of software engineering experience in Python
Experience developing in a Linux environment
Either a BS and 5 years experience or an MS and 3 years experience. Degree must be in a technical discipline.
Must be a U.S. citizen with the ability to obtain and maintain a DoD security clearance
PREFERRED QUALIFICATIONS
Experience with C# or Java, AngularJS, Node.js/Grunt, REST-ful web service architecture, and web security is desired.''')
In [35]:
job1.relevancies()
Out[35]:
In [36]:
job2.relevancies()
Out[36]:
In [37]:
job3.relevancies()
Out[37]:
In [38]:
Mike.express_interest(job1)
Mike.express_interest(job5)
Mike.express_interest(job3)
In [39]:
Mike.interests()
Out[39]:
In [40]:
Mike.exceptions = []
best_fit = Mike.get_best_item([job3, job1, job5])
best_fit.name
Out[40]:
In [41]:
Mike.exceptions = []
best_fit = Mike.get_best_item([job1, job5, job3])
best_fit.name
Out[41]:
In [42]:
Mike.exceptions = []
best_fit = Mike.get_best_item([job5, job1, job3])
best_fit.name
Out[42]:
In [43]:
Mike.exceptions = []
best_fit = Mike.get_best_item([job5, job3, job1])
best_fit.name
Out[43]:
In [ ]: