The document discusses 30 skills that software engineers should master to become senior engineers, including skills with programming languages like PHP, databases, SQL, HTML, CSS, JavaScript frameworks, build tools like Gulp, version control with Git, server-side frameworks like Laravel, object-relational mappers, and using database seeding and migrations. It emphasizes the importance of being well-rounded and having experience with both front-end and back-end technologies as well as tools that improve productivity and maintainability. Mastering these skills can lead to higher salaries, more leadership opportunities, and building more robust applications.
You've got your tests, your metrics, your database migrations and your system provisioning automated, but how can you deploy everything with a push of a button and not be scared something goes wrong? Welcome to the continuous PHP Pipeline. In this talk I take the code, the tests, the metrics and the provisioners and show you how you can have a continuous delivery pipeline setup based on certain criteria you define upfront, your code gets automatically deployed to staging or to production with all the arbitrary tasks along with it. Never get stressed again about deployments. Make deployments as easy as committing to your repository and get home on time to enjoy your well deserved weekend.
Enterprise PHP development teams, no matter the maturity level, focus on one thing, releasing stable apps that perform. They also want to avoid reinventing the wheel. Therefore, make the investment to listen to the top lessons we've learned from across industries to deliver PHP code faster without sacrificing quality, user experience, or existing workflows.
You will learn:
How to dig deep into application behavior and performance at runtime
How to maximize existing continuous delivery principles and tools
When to take advantage of existing frameworks and extensions and when to do it yourself
How to avoid reinventing the wheel each time you deploy, upgrade, or rollback
Behaviour testing for single-page applications and API’sAndrew Kirkpatrick
Talk given at ExploreTech Toronto in August 2017 by Andrew Kirkpatrick on behaviour testing for single-page applications and API’s using Gherkin, Behat and containerization
Laravel Forge: Hello World to Hello ProductionJoe Ferguson
With the recent release of Laravel Forge, Envoyer and Homestead, it has never been easier to go from nothing to something with an easy to use PHP Framework. This talk will cover creating a basic Laravel application using the Laravel specific Vagrant box "Homestead", connecting to a server (Linode, Rackspace, Digital Ocean), and deploying the application via Forge. The talk will also cover tips and tricks on customizing Homestead to fit custom needs as well as how to use Forge & Envoyer to deploy new versions of our application.
Mastering Test Automation: How to Use Selenium Successfully Applitools
** WATCH FULL WEBINAR RECORDING HERE: https://youtu.be/06H-6hjyyvI **
What is Selenium? Why should you use it? And how do you use it successfully?
In this webinar, Automation expert Dave Haeffner answers these questions as he steps through the why, how, and what of Selenium.
Dave also discusses how to start from nothing and build out a well factored, maintainable, resilient, fast and scalable set of tests. These tests will not only work well, but across all of the browsers you care about, while exercising relevant functionality that matters to your business.
Watch this webinar and learn how to:
* Decompose an existing web application to identify what to test
* Pick the best language for you and your team
* Write maintainable and reusable Selenium tests that will be cross-browser compatible and performant
* Dramatically improve your test coverage with automated visual testing
* Build an integrated feedback loop to automate test runs and find issues fast
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...Pantheon
Greg Anderson's slide deck from BADCamp 2016.
Having a fine-tuned continuous integration environment is extremely valuable, even for small projects. Today, there is a wide variety of standalone projects and online Software-As-A-Service offerings that can super-streamline your everyday development tasks that can help you get your projects up and running like a pro. In this session, we'll look at how you can get the most out of:
- GitHub source code repository
- Packagist package manager for Composer
- Travis CI continuous integration service
- Coveralls code coverage service
- Scrutinizer static analysis service
- Box2 phar builder
- PhpDocumentor api documentation generator
- ReadTheDocs online documentation reader service
- Composer scripts and projects for running local tests and builds
You've got your tests, your metrics, your database migrations and your system provisioning automated, but how can you deploy everything with a push of a button and not be scared something goes wrong? Welcome to the continuous PHP Pipeline. In this talk I take the code, the tests, the metrics and the provisioners and show you how you can have a continuous delivery pipeline setup based on certain criteria you define upfront, your code gets automatically deployed to staging or to production with all the arbitrary tasks along with it. Never get stressed again about deployments. Make deployments as easy as committing to your repository and get home on time to enjoy your well deserved weekend.
Enterprise PHP development teams, no matter the maturity level, focus on one thing, releasing stable apps that perform. They also want to avoid reinventing the wheel. Therefore, make the investment to listen to the top lessons we've learned from across industries to deliver PHP code faster without sacrificing quality, user experience, or existing workflows.
You will learn:
How to dig deep into application behavior and performance at runtime
How to maximize existing continuous delivery principles and tools
When to take advantage of existing frameworks and extensions and when to do it yourself
How to avoid reinventing the wheel each time you deploy, upgrade, or rollback
Behaviour testing for single-page applications and API’sAndrew Kirkpatrick
Talk given at ExploreTech Toronto in August 2017 by Andrew Kirkpatrick on behaviour testing for single-page applications and API’s using Gherkin, Behat and containerization
Laravel Forge: Hello World to Hello ProductionJoe Ferguson
With the recent release of Laravel Forge, Envoyer and Homestead, it has never been easier to go from nothing to something with an easy to use PHP Framework. This talk will cover creating a basic Laravel application using the Laravel specific Vagrant box "Homestead", connecting to a server (Linode, Rackspace, Digital Ocean), and deploying the application via Forge. The talk will also cover tips and tricks on customizing Homestead to fit custom needs as well as how to use Forge & Envoyer to deploy new versions of our application.
Mastering Test Automation: How to Use Selenium Successfully Applitools
** WATCH FULL WEBINAR RECORDING HERE: https://youtu.be/06H-6hjyyvI **
What is Selenium? Why should you use it? And how do you use it successfully?
In this webinar, Automation expert Dave Haeffner answers these questions as he steps through the why, how, and what of Selenium.
Dave also discusses how to start from nothing and build out a well factored, maintainable, resilient, fast and scalable set of tests. These tests will not only work well, but across all of the browsers you care about, while exercising relevant functionality that matters to your business.
Watch this webinar and learn how to:
* Decompose an existing web application to identify what to test
* Pick the best language for you and your team
* Write maintainable and reusable Selenium tests that will be cross-browser compatible and performant
* Dramatically improve your test coverage with automated visual testing
* Build an integrated feedback loop to automate test runs and find issues fast
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...Pantheon
Greg Anderson's slide deck from BADCamp 2016.
Having a fine-tuned continuous integration environment is extremely valuable, even for small projects. Today, there is a wide variety of standalone projects and online Software-As-A-Service offerings that can super-streamline your everyday development tasks that can help you get your projects up and running like a pro. In this session, we'll look at how you can get the most out of:
- GitHub source code repository
- Packagist package manager for Composer
- Travis CI continuous integration service
- Coveralls code coverage service
- Scrutinizer static analysis service
- Box2 phar builder
- PhpDocumentor api documentation generator
- ReadTheDocs online documentation reader service
- Composer scripts and projects for running local tests and builds
How To Use Selenium Successfully (Java Edition)Sauce Labs
Dave Haeffner, a Selenium expert and active member of the Selenium project, steps through the why, how, and what of Selenium (the open-source automated web-testing tool for functional testing).
He also discusses how to start from nothing and build out a well-factored, maintainable, resilient, fast and scalable set of tests in Java. These will test your app across all of the browsers you care about, while exercising relevant functionality that matters to your business.
These slides are about my personal experience from creating a continuous delivery process in the last 2 years.
The main focus lies in the tools I used and my experience with them.
A presentation on PHP's position in the enterprise, its past & present, how to get ready for developing for enterprise.
Inspired by Ivo Jansch's "PHP in the real wolrd" presentation.
Presented at SoftExpo 2010, Dhaka, Bangladesh.
Testing Your Code as Part of an Industrial Grade WorkflowPantheon
There are a lot of obvious benefits to using version control for your projects, but there are a lot of non obvious benefits too. In this SlideShare, learn how to create an industrial grade version control workflow using Git and automatic testing. Topics include:
- How to Use Git Branches: Instead of having all of the developers work on the same “master” branch, you can have developers work on separate branches that can be created per developer, per feature, or even per ticket in your project management system.
- How to Do Performance Testing: Instead of crossing your fingers when you site gets a lot of traffic, be sure that your site can handle the traffic by doing performance testing on each deployment that you do.
- How to Do Cross Browser Testing: Instead of firing up a bunch of Virtual Machines to test different browsers and devices, set up an automatic script so that every time you are looking to do a deploy you get a bunch of screenshots to review.
- How to Do Visual Regression Testing: If you are pushing a change that shouldn’t effect the front end of the site, wouldn’t it be nice to verify that? Learn how to visually compare a “before” and “after” version of your site to see where (if anywhere) visual changes happen.
- How to Notify You Of Deployments: Instead of wondering if code has been deployed, learn how to integrate your workflow with chat solutions like Hipchat/Slack or more traditional solutions like SMS or Email.
If you are a developer or manage developers on web projects, this session will help you learn how to level up your workflow and do a lot of really powerful testing on your project every time you do a commit.
Organizing Your PHP Projects (2010 ConFoo)Paul Jones
By using a few simple organizational principles, developers can make their project structure predictable, extensible, and modular. These techniques make it easy to de-conflict and share code between multiple projects. They also make it easy to automate project-support tasks such as testing, documentation, and distribution. This talk will discuss these principles, how they can be discovered from researching publicly available PHP projects, and how they are used (or not used) in popular applications and frameworks.
Beyond the Release: CI That Transforms OrganizationsSauce Labs
When DevOps talk meets DevOps tactics, companies are finding that Continuous Integration (CI) is the make or break point. And implementing CI is one thing, but making it healthy and sustainable takes a little bit more consideration.
In this webinar, Chris Riley (DevOps Analyst) and Andy Pemberton (CloudBees) will show you how Jenkins and Sauce Labs can work together to build a comprehensive CI tool set to help you release faster, at a higher quality and with more visibility.
Selenium RC: Automated Testing of Modern Web Applicationsqooxdoo
This talk is concerned with automated testing of Web applications. It
looks at testing Web apps in general, its goals and challenges; it will
present Selenium and Selenium RC in particular as a testing platform;
and will then focus on adaptions made to Selenium to ease the effort
to test apps made with qooxdoo, a JavaScript framework.
Evolve or Die! How many times havethey told you, „You still coding in that?“. Come to this session to discover the infamous land of legacy ColdFusion applications, their why and existence motivations. We will then discover how to finally evolve them and take them to the wonderful land of Modern ColdFusion. Come and be inspired to kill the legacy monsters that have haunted you for far too long. We will deliver you once and for all of these inhumane beasts, so you can be proud of writing kick-ass applications with kick-ass tools in ColdFusion. Evolve or Die!
Why Your Site is Slow: Performance Answers for Your ClientsPantheon
Surface-level technical issues like slow queries and redundant JavaScript files are often blamed when a site is slow, although there are numerous factors that can affect performance. In practice, web teams need to ask “why” repeatedly in order to get to the root cause. This presentation will dive into the many answers to this question and look for the root causes of slow sites.
San Francisco Java User Group presents Chris Bedford who talks about:
- How to write functional tests with Selenium (including explaining its IDE, architecture, RC, and alternatives like Canoo WebTest)
- How to set up Selenium testing for web apps in continuous integration using Maven, Ant, Cargo, etc.
- How to use Hudson for build server (brief overview)
January 12, 2010 in San Francisco, CA
http://www.sfjava.org/calendar/11982857/
Hosted by SUPINFO International University
Sponsored by TEKsystems, Guidewire Software, Sun, O'Reilly, JetBrains, and Marakana.
Video by Max Walker
Organized by Marakana
How To Use Selenium Successfully (Java Edition)Sauce Labs
Dave Haeffner, a Selenium expert and active member of the Selenium project, steps through the why, how, and what of Selenium (the open-source automated web-testing tool for functional testing).
He also discusses how to start from nothing and build out a well-factored, maintainable, resilient, fast and scalable set of tests in Java. These will test your app across all of the browsers you care about, while exercising relevant functionality that matters to your business.
These slides are about my personal experience from creating a continuous delivery process in the last 2 years.
The main focus lies in the tools I used and my experience with them.
A presentation on PHP's position in the enterprise, its past & present, how to get ready for developing for enterprise.
Inspired by Ivo Jansch's "PHP in the real wolrd" presentation.
Presented at SoftExpo 2010, Dhaka, Bangladesh.
Testing Your Code as Part of an Industrial Grade WorkflowPantheon
There are a lot of obvious benefits to using version control for your projects, but there are a lot of non obvious benefits too. In this SlideShare, learn how to create an industrial grade version control workflow using Git and automatic testing. Topics include:
- How to Use Git Branches: Instead of having all of the developers work on the same “master” branch, you can have developers work on separate branches that can be created per developer, per feature, or even per ticket in your project management system.
- How to Do Performance Testing: Instead of crossing your fingers when you site gets a lot of traffic, be sure that your site can handle the traffic by doing performance testing on each deployment that you do.
- How to Do Cross Browser Testing: Instead of firing up a bunch of Virtual Machines to test different browsers and devices, set up an automatic script so that every time you are looking to do a deploy you get a bunch of screenshots to review.
- How to Do Visual Regression Testing: If you are pushing a change that shouldn’t effect the front end of the site, wouldn’t it be nice to verify that? Learn how to visually compare a “before” and “after” version of your site to see where (if anywhere) visual changes happen.
- How to Notify You Of Deployments: Instead of wondering if code has been deployed, learn how to integrate your workflow with chat solutions like Hipchat/Slack or more traditional solutions like SMS or Email.
If you are a developer or manage developers on web projects, this session will help you learn how to level up your workflow and do a lot of really powerful testing on your project every time you do a commit.
Organizing Your PHP Projects (2010 ConFoo)Paul Jones
By using a few simple organizational principles, developers can make their project structure predictable, extensible, and modular. These techniques make it easy to de-conflict and share code between multiple projects. They also make it easy to automate project-support tasks such as testing, documentation, and distribution. This talk will discuss these principles, how they can be discovered from researching publicly available PHP projects, and how they are used (or not used) in popular applications and frameworks.
Beyond the Release: CI That Transforms OrganizationsSauce Labs
When DevOps talk meets DevOps tactics, companies are finding that Continuous Integration (CI) is the make or break point. And implementing CI is one thing, but making it healthy and sustainable takes a little bit more consideration.
In this webinar, Chris Riley (DevOps Analyst) and Andy Pemberton (CloudBees) will show you how Jenkins and Sauce Labs can work together to build a comprehensive CI tool set to help you release faster, at a higher quality and with more visibility.
Selenium RC: Automated Testing of Modern Web Applicationsqooxdoo
This talk is concerned with automated testing of Web applications. It
looks at testing Web apps in general, its goals and challenges; it will
present Selenium and Selenium RC in particular as a testing platform;
and will then focus on adaptions made to Selenium to ease the effort
to test apps made with qooxdoo, a JavaScript framework.
Evolve or Die! How many times havethey told you, „You still coding in that?“. Come to this session to discover the infamous land of legacy ColdFusion applications, their why and existence motivations. We will then discover how to finally evolve them and take them to the wonderful land of Modern ColdFusion. Come and be inspired to kill the legacy monsters that have haunted you for far too long. We will deliver you once and for all of these inhumane beasts, so you can be proud of writing kick-ass applications with kick-ass tools in ColdFusion. Evolve or Die!
Why Your Site is Slow: Performance Answers for Your ClientsPantheon
Surface-level technical issues like slow queries and redundant JavaScript files are often blamed when a site is slow, although there are numerous factors that can affect performance. In practice, web teams need to ask “why” repeatedly in order to get to the root cause. This presentation will dive into the many answers to this question and look for the root causes of slow sites.
San Francisco Java User Group presents Chris Bedford who talks about:
- How to write functional tests with Selenium (including explaining its IDE, architecture, RC, and alternatives like Canoo WebTest)
- How to set up Selenium testing for web apps in continuous integration using Maven, Ant, Cargo, etc.
- How to use Hudson for build server (brief overview)
January 12, 2010 in San Francisco, CA
http://www.sfjava.org/calendar/11982857/
Hosted by SUPINFO International University
Sponsored by TEKsystems, Guidewire Software, Sun, O'Reilly, JetBrains, and Marakana.
Video by Max Walker
Organized by Marakana
Automatic Assessment of Programming AssignmentsPetri Ihantola
Slides from my Koli Calling 2010 presentation:
Petri Ihantola, Tuukka Ahoniemi, Ville Karavirta, Otto Seppälä (2010). Review of recent systems for automatic assessment of programming assignments. In: Koli Calling ’10: Proceedings of the 10th Koli Calling International Conference on Computing Education Research. Koli, Finland: ACM, pp. 86–93. ISBN: 978-1-4503-0520-4. http://dx.doi.org/10.1145/1930464.1930480
Exploring how technology caters to your students multiple intelligencesKelly Walsh
Instructional Uses of Technology and Gardner’s Multiple Intelligences Theory Work Hand-in-Hand
SlideShare based on article of same title, originally published on EmergingEdTech.com [URL: http://www.emergingedtech.com/2016/02/technology-caters-to-students-multiple-intelligences/]
Career Path by TalentGuard transforms how employee development is managed in the work environment. Employees are looking at careers in new ways. For them, it has become less about ascending methodically from job to job within a single company until the corner office is theirs. Instead of climbing the corporate career ladder — vertical and inflexible — employees are navigating career lattices. Career lattices provide strategic insight into lateral, upward and downward career paths.
Today, employees feel stumped, bored, and frustrated in their current positions, likely because they’re craving change, growth and development. It’s becoming easier and easier for people to change jobs, especially considering the growth of online job boards and company careers pages, which make it less cumbersome to both find opportunities and pursue them.
When this problem is left unresolved, companies will face major turnover and job satisfaction issues, forcing them to look externally for employees that fit their experience and competency requirements. For many companies, a constantly in-flux workforce has become a daily challenge of doing business. This trend is due in part to companies either placing an insufficient emphasis on supporting the professional development of their employees or simply lacking the skills and expertise to do so. Investing more time and energy into recruiting, holding onto, and developing their best employees can be unexpectedly complicated. Yet, it would be highly beneficial for companies to develop their existing employees in order to create a steady source of highly qualified talent from within.
Career pathing resolves these issues through a structured, communicated and holistic development plan to help employees visualize their career growth within the company. In companies that organize themselves this way, employees are better equipped to:
Enhance career progress
Identify and pursue employment opportunities within the company
Excel through aligned learning and development
Receive coaching and mentoring from managerial, HR and business leaders
Without active career planning, employees will be much more likely to see their best opportunities as lying elsewhere and leave for competitors in pursuit of their self-interest. Career planning assistance programs are not reserved for thriving, expanding companies with a wealth of resources to devote to human resource initiatives. Rather, career pathing is for every organization, whether it is flat, single-location or, multinational, whether in the high-tech, government, consumer packaged goods sectors, or any other industry. Keeping employees motivated, positive, and productive during stressful times is not easy, but actively providing career guidance can help maintain morale and reinforce a sense of loyalty when it’s needed most.
Employee recruitment system project - complete Software Requirement Specification (SRS).
Employee Recruitment System (ERS) is a system in which job seekers can register themselves online, view organization requirements and apply for the suitable job.
It also makes it possible for organization to post their staffing requirements and view profiles of interested candidates.
The primary purpose to develop this system is to optimize the recruitment process for an organization.
The aim of this list of programming languages is to include all notable programming languages in existence, both those in current use and ... Note: This page does not list esoteric programming languages. .... Computer programming portal ...
Michael Choi's process for designing web application(s), including which programming language to use, when to use Node.js, when to use a light-weight framework vs a heavy MVC framework, how to set up git for collaboration based on complexity of the project, how a tool like Jenkins can be used for continuous integration, continuous delivery, and continuous deployment, where to host the data, what services to use for orchestrating containers or servers.
We know that having a website is not only thing that you need to shine on the internet.
you need efficient SEO and SMO services. as you may also need some local marketing along with some digital marketing.
Top Backend Frameworks for Mobile App Development in 2023ZimbleCodeAustralia
Application development frameworks simplify the process and enable developers to innovate at scale. Fortunately, several alternatives are available to developers when creating applications that work across platforms and operating systems. At Zimble Code, we assist businesses in developing mobile applications that strengthen their relationships with their consumers. We select the ideal framework for mobile app development for our customers based on the unique requirements for generating limitless possibilities with technology.
How to choose the best frontend framework in 2022Katy Slemon
Take a look at most in-demand and best frontend frameworks and libraries for the year 2022 based on awareness, company size, overall satisfaction and interest.
Node.js vs PHP, What should SMBs prefer for web development.pdfMindfire LLC
Unfortunately, stacking software against one another doesn’t solve all your problems. Any small or medium business must take on an analytical role and consider each advantage and shortcoming to determine best.
PHP may not be as event-driven or fast as Node.js, but maybe database connectivity will be a significant factor in the specific software you choose to build. Depending on the project and the vision you have in mind, you have to choose the right option.
LAMP is a shorthand term for a web application platform consisting of Linux, Apache, MySQL and one of Perl or PHP or Python. Together, these open-source tools provide a world-class platform for deploying web applications. LAMP has been touted as "the killer app" of the open-source world.
Cross platform technologies have changed considerably. Should you even write an app using one of them in 2018? What tooling, processes and best practices can’t you live without? Which problems will you face and how will you overcome them? How would you organize your team and project? Join us as we share valuable lessons from the last two years of engineering the Covve Ionic/Angular cross platform app.
Are you seeking the best Digital Marketing institute in Chandigarh? Look no further! At Excellence Academy, we offer world-class Digital Marketing course in Mohali, tailored for learners, housewives, and those aspiring to master Web designing. With over a decade of experience, we’ve empowered more than 6000 students.
Introductory slide set on the new client side framework on SharePoint platform which introduces by Microsoft. This slide-deck has been used by me in the local user group speak-up had in the year 2016. @kushanlahiru
Everything is new for you if you’re a newbie in the tech world. But one thing you are sure about is becoming a MERN stack developer. Today, MERN stack development is a lucrative career that opens several doors of opportunities. But do you know the roadmap to becoming a MERN stack developer? What are the technologies you should learn at the tip, and in what order? So many questions might be hitting your mind, and you definitely want the answer to all. Right? Well, this guide got you covered.
In this blog post, we have rounded up about mastering this technology and becoming a skilled MERN stack developer. So, what are you waiting for? Why not take a tour of this guide?
Let’s start.
8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx75waytechnologies
Did you know that tech giants like Amazon, Netflix, Tumblr, PayPal, and Reddit use Node.js? Quite fascinating stats, right? No surprise, Node.js has gained wide popularity in the realms of technology. But why is all this Node.js buzz? To be honest, Node.js is popular because it uses JavaScript, which is the only choice to develop web apps in the browser. Not only this, but this technology also supports microservices architecture, which is powerful and suitable for organizations of any distinct size.
With 61,000+ stars on GitHub, 7.49K votes on StackShare, and 2450 contributors, there is no shadow of a doubt that Node.js is the fastest-growing open-source project every developer is interested in learning.
The Positive and Negative Aspects of Node.js Web App Development.pdfWDP Technologies
There shouldn’t be any second thoughts over JavaScript being regarded as one of the most popular and widely used client-side programming languages. It is basically employed as a web front-end development tool and proves to be more than a handy customer for the building of cross-development platforms.
Similar to 30 Skills to Master to Become a Senior Software Engineer (20)
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
30 Skills to Master to Become a Senior Software Engineer
1. 30 Skills to Master to Become a
Senior Software Engineer
Dr. Sean Coates
February 6, 2016
2. About Me
• CTO at CircleBack Lending - Boca Raton, FL
• @fooyay
• scoates@circlebacklending.com
3. Why I Care
• hired 15 PHP developers in the past 18 months
• reviewed hundreds of candidates
• 95% of candidates simply do not measure up
• really wish more people embraced these skills
• we always need more senior software engineers
4. Why You Should Care
• Senior Software Engineers command higher salaries
• software development done the right way makes for
more reliable applications that are easier to expand
and grow
• well-rounded individuals are more likely to be tasked
with mentoring and leading others, to spread the
knowledge
• a lot less time wasted on technical debt
5. Fair Warning!
• this is a highly opinionated presentation
• I favor open source and PHP related technologies,
but there are certainly other paths to success
• your mileage may vary
• going to cover a lot of ground quickly - there is a
link to the slides at the end
6. If You Want to Keep Score
There are 30 skills, if you want to score yourself, give
your self points on each slide based on which
solution matches your practice.
• 0 points for poor
• 3 points for fair
• 7 points for good
• 10 points for excellent answers
7. 1. A Server-Side Programming Language
In the early days of the web, this
might have been all you needed.
Also, we’re going to assume web
applications here - things are
different for other applications.
Other types of applications include
mobile apps, video game
development, data science
applications, embedded / device
development. These will require
different technologies and tools.
8. 1. A Server-Side Programming Language
Poor: C, Fortran, COBOL,
Pascal, Lisp
Fair: Perl, Node.js, Scala
Good: Ruby, Java,
Python, C#
Excellent: PHP, of course.
9. 2. Database Technology
The database is the foundation
of your application and can be
the source of many problems if
not implemented correctly.
Not only is it the retention of all
of your data, it also defines how
you are modeling your business
objects. Do it wrong, and you
can have all kinds of difficulties.
10. 2. Database Technology
Poor: Just using flat files.
Fair: Mongo or some other NoSQL store only. Or, using a
commercial database product.
Good: SQL on MySQL or PostgreSQL
Excellent: Experience with an RDBMS (MySQL,
PostgreSQL, MariaDB Aurora), a columnar store (Amazon
Redshift), and a key/value store (Mongo, Redis, others).
Great with several DBs.
11. 3. SQL and Data Modeling
Improper and inefficient use
of SQL is the most common
source of performance
problems in applications.
Data modeling covers
concepts like normalization,
naming schemes,
performance considerations.
It also communicates your
understanding of the data.
12. 3. SQL and Data Modeling
Poor: Relies on ORMs to perform database queries.
Fair: Writes basic SQL. Works with a DBA to create tables.
Good: Good with complex queries. Understands
normalization. Has a style guide.
Excellent: Can explain a query plan. Handle extremely
complex queries. Strong skills with normalization and
modeling. Follows a style guide.
13. 4. HTML
Used to describe web
documents, HTML5 has added
new features including
multimedia elements and
support for scalable vector
graphics and mathematical
formulas.
14. 4. HTML
Poor: Relies on word processors or web publisher
tools to create web pages.
Fair: Can write documents in raw HTML.
Good: Uses some of the new multimedia features in
HTML5.
Excellent: Full understanding of HTML5. Developed
replacements for Flash components. Uses MathML.
15. 5. CSS
Cascading Style Sheets
allow developers to control
the styling of web elements
independently of the HTML
source code. CSS3 adds
new features giving web
designers more control.
Now, Sass and other tools
are available to make writing
CSS easier.
16. 5. CSS
Poor: Limited or no use of CSS styling.
Fair: Limited use of CSS files.
Good: Using Bootstrap and templates. Using other
CSS tools like Less.
Excellent: Extending past Bootstrap using Sass, highly
customized styles reflecting your corporate identity.
17. 6. JavaScript
This browser-side language has
been used to push logic down to
the client, enabling for more
interactive websites.
Using techniques like AJAX it is
possible to create single-page
applications which are popular in
some places.
18. 6. JavaScript
Poor: Spaghetti code that causes problems for everyone who
encounters it.
Fair: Simple animations and rendering.
Good: Can perform basic AJAX functions, making interactive
websites.
Excellent: Excellent use of AJAX, ECMAScript, JSON, and
related tools to create client-side programs that run in the
browser. Follows OOP techniques and pursues the same level of
code quality as seen on the server.
19. 7. A Client-Side Framework
While most people at this
point are programming with
jQuery, there have been
several frameworks and
libraries in recent years that
greatly advance the state of
the art. And while it may be
premature to pick a winner
at this point, AngularJS has
the mindshare currently.
20. 7. A Client-Side Framework
Poor: Limited or no use of jQuery or other tools.
Fair: Moderate use of jQuery only. May also use older
libraries like Ext JS and Prototype.
Good: Strong use of jQuery with one of the other
frameworks (Backbone, React, Vue)
Excellent: Robust use of AngularJS and jQuery,
supplemented with additional special-purpose JavaScript
libraries like D3.js.
21. 7. A Client-Side Framework
It’s 2016.
There’s more to life than just jQuery.
22. 8. Gulp
Gulp is a toolset that automates
part of your workflow. It covers
many areas including CSS
preprocessing, CSS and JS
minification, running unit tests,
refreshing your browser when
saved files change, and many
more.
23. 8. Gulp
Poor: You’re doing these things mostly by hand.
Fair: A collection of random scripts. Apache Ant, YUI
Compressor, etc.
Good: Using an alternative instead, or just using Gulp for a
couple of things. Grunt, Broccoli, Brunch, Mimosa are
among the many options.
Excellent: Making use of Gulp to automate several parts of
your workflow.
24. 9. Node.js
Server-side JavaScript got a huge resurgence with
the development of Node.js. We generally prefer PHP
for server-side development, but there are a lot of
great tools (Gulp included) that are built using Node,
so knowledge of Node has become required.
25. 9. Node.js
Poor: No experience with Node.
Fair: At least one application using Node.
Good: Using Node to serve up pages instead of PHP.
Excellent: Automating several server-side operations
and development workflows using Node and tools
built on Node.
26. 10. Virtual Machines
With virtual machines, you can
create a Linux environment
running on your laptop that
resembles your production
environment more closely than
just running applications
natively on OS X.
With Vagrant, provisioning
these virtual machines
becomes easier, often pre-
loaded with a full suite of
applications.
27. 10. Virtual Machines
Poor: Still running on dedicated servers.
Fair: Passive experience with VMs, such as using
Amazon AWS.
Good: Using Vagrant to load and develop on Homestead.
Excellent: Creating your own VMs and sharing them with
your team, to save the work of installing all the various
libraries and tools.
28. 11. SSH
OpenSSH is the most popular
implementation of SSH. SSH is a
key tool used for accessing
systems remotely, copying data,
and creating secure pipelines
between systems.
Working with SSH requires an
understanding of public-key
encryption.
29. 11. SSH
Poor: the 80s called they want their telnet and ftp
back
Fair: Just ssh.
Good: Using ssh and scp.
Excellent: Proper use of public key encryption, key
sizes, ssh, tunneling, and secure copy.
30. 12. Version Control
Being able to maintain
multiple concurrent versions
of the software is crucial for
professional software
engineering.
While git is widely used by
most, not everyone uses the
advanced features or follows
the gitflow method.
31. 12. Version Control
Poor: Ancient systems like cvs, or often no use of
version control at all.
Fair: Instead of git, uses svn, Mercurial, Perforce, or TFS.
Good: Using git, typically with feature branches.
Excellent: Using git with
gitflow, with separate
develop, master, feature,
release, and hotfix
branches.
32. 13. A Server-Side Framework
Laravel has become the most
popular MVC framework,
bringing not only a great
collection of best practices and
supportive ecosystem, it also
incorporates a great collection
of tools and components.
Examine Sitepoint’s 2015 survey
of PHP frameworks to see
Laravel ahead of all others for
use at work and in personal
projects.
33. 13. A Server-Side Framework
Poor: A custom built, “in-house” framework. Or non-
MVC frameworks like Drupal, Wordpress.
Fair: Zend Framework 2, CodeIgniter, Phalcon, other
open source MVC frameworks.
Good: Latest version of Symfony, Yii, or CakePHP.
Also Rails (Ruby), Django (Python), Play (Java).
Excellent: Using Laravel and all of its components.
Watching Laracasts, following Laravel blogs.
34. 14. An Object-Relational Mapper
With the rise of the MVC pattern and the Repository
pattern, ORM tools have been created to make life
easier and keep developers from writing the same
code in every application.
Most implementations follow the Active Record or the
Data Mapper pattern.
35. 14. An Object-Relational Mapper
Poor: A custom built ORM, or worse, not using an
ORM at all.
Fair: Propel. Also, other ORMs in other frameworks.
Good: Doctrine - A Data Mapper implementation used
by many other frameworks.
Excellent: Eloquent - Laravel’s Active Record
implementation.
36. 15. Database Seeding and Migrations
Database seeders are scripts that set initial data in
tables, or sometimes define the entire contents of a
reference data table.
Migrations are scripts used to create and alter
database tables as part of a software change.
These scripts ensure the database has the correct
data and schema across the various versions.
37. 15. Database Seeding and Migrations
Poor: Database changes performed by hand.
Fair: Migration scripts are in use.
Good: Seeders and migrations are in use.
Excellent: Seeders and migrations are always used,
and maintained in version control. A key part of using
Laravel, for example.
38. 16. View Templates
In the early days PHP itself
served the purpose of view
templates, but we’ve come a
long way since then and there
are very powerful tools available
now. These keep application
logic completely separated from
presentation logic, and allow
front-end developers to focus
on the view.
39. 16. View Templates
Poor: In-house custom engine, or none at all.
Fair: Smarty - was good in its day but we have much
better options now.
Good: Twig, which has a great following.
Excellent: Blade. That means you’re using Laravel.
40. 17. Security
Any real business has to be
acutely concerned with
security. Web applications have
a long history of being subject
to hacks due to weakness in
application security.
Hackers, script-kiddies, DDOS
attacks, corporate espionage,
negligence, and criminals
provide an ever-growing pool of
threats that we must be vigilant
against.
41. 17. Security
Poor: Having a purely reactive approach.
Fair: Occasional security scans.
Good: Adopting some security techniques and scans,
often in response to an audit.
Excellent: Guided by a
CISO, following OWASP,
building a security maturity
model, making security a
part of every code review.
42. 18. Creating APIs
Most systems will end up talking to other systems.
Sometimes it’s a simple matter of breaking up the
monolith, and sometimes it’s relying on 3rd-party
services outside your company in order to more
efficiently perform your business functions.
The connections between these systems need to be
developed in a clear, predictable, manageable way
that is easy to improve and expand.
43. 18. Creating APIs
Poor: Custom-built XML-based APIs, trading
messages via csv files or fixed-length records.
Fair: Good old SOAP. APIs are documented but dated.
Good: REST with XML, but some of the above is
missing.
Excellent: Sending JSON data via REST commands,
properly versioned, documented, and authenticated.
Asynchronous messages land in queues. Use industry
standards where available.
44. 19. Composer
As applications increase in
size, the number of packages
included grows dramatically.
Using a tool like Composer
allows you to manage your
libraries and dependencies
easily.
45. 19. Composer
Poor: Including libraries and automatically asking for
the latest, untested version. Every build is an adventure!
Fair: Including hundreds of libraries and packages, not
sure if they are all still in use.
Good: Using Node’s npm, or Ruby’s bundler. Depending
on outside repositories to build.
Excellent: All of your libraries are managed by
Composer, and local copies of properly vetted versions
of libraries are kept.
46. 20. Packages
Don’t reinvent the wheel.
Don’t spend countless
resources developing some
common functionality that
can be had much more
easily by using a package or
library.
47. 20. Packages
Poor: Custom-build all the things.
Fair: Using old, dated packages. Struggle with
maintenance.
Good: Using the latest packages, even some obscure
bleeding edge ones.
Excellent: Recognize which packages and libraries to
use, which versions are best, and stick to those
which are popular and widely used.
48. 21. Creating Dummy Data
When creating large amounts
of test data for your test
suites, you want that data to
look realistic. At the same
time, using production data is
considered to be too risky.
Fortunately, there are tools
available to help. Faker is
among the best of these.
49. 21. Creating Dummy Data
Poor: Not creating any test data. Or using production
data and exposing customer private information to a
test environment.
Fair: Copying production data and then writing scripts
to scrub out the private information.
Good: Using your own scripts to generate test data.
Excellent: Robust use of Faker to generate test data.
50. 22. Unit Testing
One of the biggest indicators
that separates the senior
software engineers from the
rest of the pack is the use of
unit testing and test driven
development.
When people say they don’t
“have the time” to write unit
tests, they always spend ten
times as long fixing bugs and
battling technical debt.
51. 22. Unit Testing
Poor: Not writing tests. Thinking you don’t have the
time to write tests.
Fair: Writing some phpunit tests after the fact, aiming
for better code coverage.
Good: Doing TDD with phpunit or phpspec, covering
happy path and some failure cases.
Excellent: Doing BDD with Behat and TDD with
phpspec. Covering all your edge cases.
52. 23. IDE
Many old-school developers
often rely solely on a text
editor to write their code.
Others use advanced editors
with nice plugins and
integrations. An integrated
development environment
provides much more
functionality and power to the
skilled developer.
53. 23. IDE
Poor: Simply using a text editor.
Fair: Sublime Text or vim power-user with lots of
plugins and integrations.
Good: Using other IDEs like Eclipse.
Excellent: Using PhpStorm with XDebug and taking
full advantage of its features.
54. 24. NoSQL
Sometimes known as document
stores or key-value stores, NoSQL
databases like MongoDB,
CouchDB, Redis, Memcached,
Dynamo, Cassandra and others
provide a simple way for storing
unstructured data. Also used in
situations where database
schema changes rapidly.
While the best product depends
on the application, there are
certain guidelines in the use of
NoSQL databases.
55. 24. NoSQL
Poor: Storing data in text files.
Fair: Storing data in obscure proprietary databases
(Access) or custom-built databases. Or using a NoSQL
database for everything.
Good: Using a NoSQL database for storing session data
and a couple other common applications.
Excellent: Using appropriate NoSQL databases for certain
applications involving unstructured data or data with single
keys. Using RDBMS for highly structured, relational data,
and columnar stores for data warehouse applications.
56. 25. Automated Deployment
The process of assembling
software, running tests,
integrating libraries, compiling
code, and building packages
can be complex and prone to
error. Thus it is wise to apply
as much automation as
possible to these processes.
57. 25. Automated Deployment
Poor: No automation, processes handled manually.
Fair: A random collection of custom scripts.
Good: Some use of Jenkins, or using other CI tools
like Bamboo or Travis.
Excellent: Using Jenkins with the Jenkins Best
Practices.
58. 26. Business Analysis
This is the art of identifying
business needs and
determining solutions.
Typical work products
include storyboards, use
cases, UML diagrams,
flowcharts, wireframes, and
requirements documents.
59. 26. Business Analysis
Poor: You receive and react to random requests from the
business all the time.
Fair: You’re working with excessive business
requirements documents filled with outdated information.
Good: You can develop robust functional specifications
and have a strong understanding of the business.
Excellent: Not only can you write excellent specifications,
you also have a deep understanding of the business and
help design new processes and systems.
60. 27. Project Management
When projects grow in size
and require the efforts of
several individuals or teams, it
becomes necessary to
manage the project’s
dependencies and resource
constraints.
61. 27. Project Management
Poor: No planning or coordination.
Fair: Proactive efforts are made, planning occurs.
Good: You’re using some project management tools.
Plans are documented and tracked.
Excellent: You can coordinate the efforts of several
teams while maintaining the Agile principles, making
strong use of tools that integrate with the ticket
tracking system and other tools.
62. 28. Ticketing System
With a good issue tracking
system, you not only
manage the present
requirements, you also
provide historical statistics
and reference material.
63. 28. Ticketing System
Poor: Physical tickets like post-its or 3x5 cards.
Spreadsheets.
Fair: Older open-source tools like Mantis and Bugzilla.
Other commercial products lacking in features.
Good: Other professional tools such as Rally, Pivotal
Tracker, Microsoft TFS. A healthy implementation of
Redmine also works.
Excellent: Using JIRA to track all issues, bugs, projects,
and desired features. Customizing JIRA to model your
company’s workflows.
64. 29. Teamwork
A highly effective team can
accomplish much more than
individuals acting separately.
Strong teams also learn faster
and lower defect rates.
65. 29. Teamwork
Poor: A cowboy culture of rock stars, coding ninjas,
and primadonnas.
Fair: A co-located team working on the same project.
Good: Peer-level code reviews using pull requests. A
collaborative culture.
Excellent: Using pair programming regularly. Team in
constant communication via Slack or HipChat.
66. 30. Patterns of Enterprise Engineering
In software development,
common problems reoccur
regularly. This leads to
general, re-usable solutions.
By learning these patterns,
we gain a common language
for describing these
situations and, at a high
level, their solutions.
67. 30. Patterns of Enterprise Engineering
Poor: Ignorance of patterns leading to random
solutions each time.
Fair: Occasional use of a few patterns.
Good: A software architect on the team understands
several common patterns and provides guidance.
Excellent: Everyone on the team understands the
patterns widely used in solving the company’s
software problems. Pattern solutions used
appropriately (don’t overdo it).
68. So, that’s all you need to know.
Now you’re ready to be a senior software engineer!
You got 300 points, right?
72. It Never Ends.
Never stop learning. If you’re not learning new things
all the time you’ll never keep up.
That’s the joy of this business. You never run out of
exciting new things to learn.
73. Thanks for listening.
Dr. Sean Coates, CTO at CircleBack Lending
@fooyay
scoates@circlebacklending.com
legacy.joind.in/16794
now hiring in Boca Raton, FL!