Nathan's Brain
  • Introduction
  • Incubator
  • American Sign Language
  • Art
  • Behavior Change
    • Akrasia
      • Beeminder
      • Procrastination
  • Career
  • Civil Discourse
  • Communication
  • Computer Science
    • Artificial Intelligence
  • Creativity
    • Writing
  • Design
    • Color
    • Design Process
    • Stock
    • Web Design
  • Economics
  • Engineering
  • Entrepreneurship
    • Customer Development
    • Marketing
      • Newsletter Publishing
    • Pricing
  • Environment
    • Energy
    • Transportation
  • Failure & Vulnerability
  • Freelancing
    • Estimating
  • Futurism
  • Governance & Politics
    • Representation & Voting
  • Health
  • Humane Tech
    • Phone Usage
  • Infotainment
  • Linguistics
  • Minimalism
  • Personal Finance
    • FIRE Movement
    • Investing
  • Productivity
    • Attention Management
    • Audio for Focus
    • Automation
    • Task Management
    • Time Management
  • Programming Languages
    • JavaScript
      • Snippets
    • PHP
    • Python
      • Development Environments
      • Package Management & Distribution
  • Psychology
  • Quantified Self
    • Experience Sampling Method
  • Rationality
    • Bayes' Theorem
    • Cognitive Biases
  • Religion
    • Adventism
  • Remote Work
  • Research
    • Note Taking
  • Science
  • Self-Study
    • Accessibility & Usability
    • Algorithms
    • Artificial Intelligence
    • Cryptography
    • Data Science
    • Design Patterns
    • Freelancing
    • Functional Programming
    • Game Development
    • Graphic Design
    • Grid Layout
    • Microservices
    • PWAs
    • SaaS
    • Software Craft
    • Software Management
    • Statistics
    • SVG
    • UI Design
    • Web Animation
  • Software Development
    • API Design
    • Collaboration
    • Command Line
    • git
    • Integrated Development Environments
    • Knoxville Scene
    • Paradigms
    • Refactoring
    • Self-Care
    • Testing
  • Technology History
    • People
    • Timeline
  • Web Development
    • Accessibility & Usability
    • APIs
    • Browsers
    • Content Management Systems
    • CSS
    • Email
    • Frameworks
      • React
    • Libraries
    • No Code & Low Code
    • Performance
    • Serverless
    • Static Sites
    • Testing
    • Twig
    • Type
Powered by GitBook
On this page
  • Abstract Syntax Trees
  • Analytics
  • API Design
  • Cloud Services
  • Community
  • Continuous Deployment
  • Continuous Integration
  • Deep Work / Deliberate Practice
  • Error Handling
  • Feature Flags
  • Security
  • State Machines & Statecharts
  • Sources

Software Development

PreviousWeb AnimationNextAPI Design

Last updated 3 years ago

#video - "In this video I explain the 7 habits of successful software developers from my interactions and observations with some very skilled developers."

#thread - "Founders if you ever come across this rare breed of engineers, grab them. If you have a 10x engineer as part of your first few engineers, you increase the odds of your startup success significantly." .

Bayesian Methods for Hackers: Probabilistic Programming and Bayesian Inference #book

Think Bayes: Bayesian Statistics in Python #book

#video - "Learning any new skill is challenging and I've definitely noticed a recurring theme that most everybody faces: how to stay motivated when progress seems to be non-existent (also know as the intermediate plateau). There's is no easy answer or magic pill but I definitely laid out a few pieces of advice of how to overcome it."

#article - Wikipedia. "Database normalization is the process of structuring a in accordance with a series of so-called in order to reduce and improve . It was first proposed by as part of his ."

- "Scalable, end-to-end management for third-party code, license compliance and vulnerabilities."

- "frp™ is a reliable Enterprise level face recognition system for commercial use"

- A collection of the most-read and most-popular books on software development on GoodReads.

#article - "Pseudocode is an informal high-level description of a computer program or algorithm. It is written in symbolic code which must be translated into a programming language before it can be executed."

#software - "The goal of the project is to create a beautiful and extensible experience for command-line interface users, built on open web standards. In the beginning, our focus will be primarily around speed, stability and the development of the correct API for extension authors."

- "Increment is a print and digital magazine about how teams build and operate software systems at scale."

#software - "A Lean GitHub Gist Client"

- "Lobsters is a computing-focused community centered around link aggregation and discussion, launched on July 1st, 2012. The administrator is ("pushcx"), contact him with any support issues. Lobsters was created by with some specific design goals in mind to avoid problems faced by other link aggregation sites." .

#article - "When developing a package for say, , you’d want to incorporate that package into your vendor folder so that you can test its integration into the project and how it would behave as if someone had pulled it from ."

#article - Wikipedia. "In , a monorepo ("mono" from Greek μόνος, mónos, 'single, alone' and "repo" short for ) is a software development strategy where code for many projects is stored in the same . As of 2017 some forms of this software engineering practice were over a decade old, but the general concept had only recently been named. Many attempts have been made to differentiate between and other, newer forms of monorepos. "

Abstract Syntax Trees

Analytics

API Design

Cloud Services

Amazon Web Services

Google Cloud Platform

Community

Continuous Deployment

Continuous Integration

Deep Work / Deliberate Practice

Build in public

Project Euler

StackOverflow

Write a blog

Error Handling

Feature Flags

Security

State Machines & Statecharts

Sources

#article - "It should come as no surprise to anyone who reads this blog that I love to program "by hand." I happen to practice a degree of ascetical programming practices, and I believe that they help me to more deeply internalize and understand problems, ultimately delivering higher quality solutions. One of the ways that I do this is the use of paper programming."

“Show a man a program and frustrate him for a day. Teach a man to program and you frustrate him for a lifetime” (via ).

#video - Great advice on running an effective site reliability team and software teams in general.

#webapp - "**swimlanes.io** is a simple online tool for creating _sequence diagrams_."

- "The developer dashboard . Open source editor plugins for metrics about your programming."

#video - "When I was a teenager, I wrote some terrible code. Here's why." #algorithms

#article - "Yagni originally is an acronym that stands for "You Aren't Gonna Need It". It is a mantra from that's often used generally in agile software teams. It's a statement that some capability we presume our software needs in the future should not be built now because "you aren't gonna need it"."

#article - Wikipedia. "In , an abstract syntax tree (AST), or just syntax tree, is a representation of the structure of written in a . Each node of the tree denotes a construct occurring in the source code."

#webapp - "Paste or drop some JavaScript here and explore the syntax tree created by chosen parser. You can use all the cool new features from ES6 and even more. Enjoy!"

#article - "Because Python is a “batteries included” language, the tools you need to use ASTs are built into the standard library."

#software - "jscodeshift is a toolkit for running codemods over multiple JavaScript or TypeScript files."

- "The module helps Python applications to process trees of the Python abstract syntax grammar. The abstract syntax itself might change with each Python release; this module helps to find out programmatically what the current grammar looks like."

#software - "Recast exposes two essential interfaces, one for parsing JavaScript code (require("recast").parse) and the other for reprinting modified syntax trees (require("recast").print)."

#webapp - Product intelligence. "See how Amplitude helps you use customer data to build great product experiences that convert and retain users."

- "Create powerful dashboards from your company’s data and quickly discover insights with Chartio."

#webapp - "The easiest way to mock REST APIs! (Check out )"

#software - "Simplifies API Development. Get easy, API-First solutions with the industry's only complete API Development Environment."

- "Beautiful static documentation for your API"

- "Swagger open source and pro tools have helped millions of API developers, teams, and organizations deliver great APIs."

- "Monitor serverless apps on AWS."

- "The Open Source Q&A Platform." . .

- "Learn from the founders behind hundreds of profitable online businesses, and connect with others who are starting and growing their own companies."

- "The home of the maker community. Makerlog is where 4,000+ indie hackers & makers get things done together."

- "Spectrum makes it easy to grow safe, successful online communities that are built to last." Has a lot of developer communities.

- "We are a community of makers"

- "Automate deployments with CircleCI orbs A fast, out-of-the-box solution for integrating with AWS Lambda, GCP, Kubernetes, and other deployment services."

- "AWS CodePipeline is a fully managed service that helps you automate your release pipelines for fast and reliable application and infrastructure updates. CodePipeline automates the build, test, and deploy phases of your release process every time there is a code change, based on the release model you define. This enables you to rapidly and reliably deliver features and updates. You can easily integrate AWS CodePipeline with third-party services such as GitHub or with your own custom plugin. With AWS CodePipeline, you only pay for what you use. There are no upfront fees or long-term commitments."

- "Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early. ❡ By integrating regularly, you can detect errors quickly, and locate them more easily."

#video - "Continuous Integration is when a software development team has a habit of doing multiple merges per day and have an automated verification system that checks those merges for problems. Our team does this in order to waste less time hunting down problems in monster merges."

- "Static analysis at ludicrous speed. Find bugs and enforce code standards"

- "Support for Open Source Software. A community with 75,087 members hunting for bounties and earning rewards"

- "Code Kata is an attempt to bring this element of practice to software development. A kata is an exercise in karate where you repeat a form many, many times, making little improvements in each. The intent behind code kata is similar. Each is a short exercise (perhaps 30 minutes to an hour long). Some involve programming, and can be coded in many different ways. Some are open ended, and involve thinking about the issues behind programming. These are unlikely to have a single correct answer. I add a new kata every week or so. Invest some time in your craft and try them."

- "Improve your skills by training with others on real code challenges"

#video - Most practical stuff starts 30 minutes in. She talks about different exercises for practicing how to read and understand confusing code. These practices could be done in a deep manner.

#article - Wikipedia.

#article - "Effortful study means constantly tackling problems at the very edge of your ability. Stuff you may have a high probability of failing at. Unless you're , you're probably not growing professionally. You have to seek out those challenges and push yourself beyond your comfort limit." #deep_work

#video - "What happens when things break? What happens when software fails? We regard it as a normal and personal inconvenience when apps crash or servers become unavailable, but what are the implications beyond the individual user?"

#video - "Handling errors in programs is tricky. We want to write systems that work reasonable well even if there are errors in the code. This is possible, and the results have been used in production systems for many years. This talk outlines the do's and don'ts of error handling. Things you should do if you want to write fault tolerant code, and things you should not do."

- "Sentry provides self-hosted and cloud-based error monitoring that helps all software teams discover, triage, and prioritize errors in real-time."

- "The Hub for Feature Flag Driven Development"

- "Fast and reliable feature management for the modern enterprise."

- "Below are the tactics and technique representing the MITRE ATT&CK Matrix™ for Enterprise covering cloud-based techniques. The Matrix contains information for the AWS platform."

- "Below are the tactics and technique representing the MITRE ATT&CK Matrix™ for Enterprise. The Matrix contains information for the following platforms: , , , , , , , , ."

- "The NVD is the U.S. government repository of standards based vulnerability management data represented using the Security Content Automation Protocol (SCAP). This data enables automation of vulnerability management, security measurement, and compliance. The NVD includes databases of security checklist references, security-related software flaws, misconfigurations, product names, and impact metrics."

#article - Wikipedia. "STRIDE is a model of threats developed by Praerit Garg and at for identifying . It provides a for security threats in six categories."

#article - Wikipedia. "Threat modeling is a process by which potential threats, such as or the absence of appropriate safeguards, can be identified, enumerated, and mitigations can be prioritized. The purpose of threat modeling is to provide defenders with a systematic analysis of what controls or defenses need to be included, given the nature of the system, the probable attacker's profile, the most likely attack vectors, and the assets most desired by an attacker. Threat modeling answers questions like “Where am I most vulnerable to attack?”, “What are the most relevant threats?”, and “What do I need to do to safeguard against these threats?”."

#video - "What are state machines? How are they helpful? In this episode, David Khourshid () walks us through refactoring a React component to use xstate, which helps us clear up some bugs and add more predictability."

- "Explore how your product should work, before building it. Sketch.systems helps software designers think about complex product behavior. Sketch out states, add prototypes, and clarify questions quickly."

- "Statecharts are a precise, visual way of modeling the behaviour of complex reactive systems. They describe how things work, and can help you get your code doing exactly what you want."

- "Put simply, a statechart is a beefed up . The beefing up solves a lot of the problems that state machines have, especially that happens as state machines grow. One of the goals of this site is to help explain what statecharts are and how they are useful."

- "JavaScript State Machines and Statecharts"

#blog - "by Robert C. Martin (Uncle Bob)"

#video - "Write code that sings. Elevate your skill with software training videos for impassioned developers."

#blog - by Jeff Atwood. "Programming and human factors"

#video #channel - “I make tutorials based on your requests. I will cover any topic you can imagine. I upload new programming videos on Saturday and Wednesday morning. I Live Stream at 8PM EST on Monday and at 7PM EST on Tuesday, Thursday and Friday.”

- "DEV is a community of software developers getting together to help one another out. The software industry relies on collaboration and networked learning. We provide a place for that to happen."

- "Hi there! I am Felienne. I am associate professor at the at , where head the that researches programming education. I am fascinated by the question how we can teach all people to program. In my PhD I studied how we can help people working with spreadsheets better, by repurposing methods from software engineering." Author of .

- "Trending repositories from GitHub, HackerNews & Reddit"

#podcast - "A career in technology is full of choices. We’re here to help you make smart ones. In each episode, we meet a software developer who needs to make an if/else choice. From important technical decisions to sticky career challenges, we cover the hard and soft skills you need for a sustainable and rewarding career in tech… at any stage of your career. Hosted by Mayuko Inoue, if/else is an original podcast from CTO.ai, the makers of The Ops Platform."

- "Increment is a print and digital magazine about how teams build and operate software systems at scale. "

- "Software development is a young profession, and we are still learning the techniques and building the tools to do it effectively. I've been involved in this activity for over three decades and in the last two I've been writing on this website about patterns and practices that make it easier to build useful software. The site began as a place to put my own writing, but I also use it to publish articles by my colleagues."

#blog

Robert Martin #article - . "Robert Cecil Martin, colloquially known as "Uncle Bob", is an American and instructor. He is best known for being one of the authors of the and for developing several software design principles. He was also the editor-in-chief of magazine and served as the first chairman of the Agile Alliance" ().

#podcast - "The World Through the Lens of Software"

#podcast - "Software Engineering Radio is a podcast targeted at the professional software developer. The goal is to be a lasting educational resource, not a newscast. Three to four times per month, we publish a new episode talking to experts from the software engineering world about the full range of topics that matter to professional developers."

#podcast - "A Tasty Treats Podcast for Web Developers."

#blog

/ - "A curated list of awesome newsletters."

7 Habits I've Picked Up From Senior Software Developers
10x engineers
Article in case thread is taken down
Biggest Challenge You'll Face Learning to Code (Plus How to Overcome It!)
Convention over configuration - Wikipedia
Database normalization
relational database
normal forms
data redundancy
data integrity
Edgar F. Codd
relational model
FOSSA
frp
GoodReads: Genre > Computer Science > Software
How to write Pseudocode: A beginner’s guide
Hyper
Increment
Lepton
Lobsters
Peter Bhat Harkins
joshua stein
Site code on GitHub
Local Composer Package Development
Laravel
Packagist
Monorepo
revision control systems
repository
repository
[1]
monolithic applications
[2]
[3]
[4]
Paper is dead, long live Paper Programming
phi's forum profile
SREcon20 Americas - 9 Years of Failure: How Racing Crappy Cars Made Me a Better SRE
swimlanes.io
WakaTime
Why My Teenage Code Was Terrible: Sorting Algorithms and Big O Notation
Yagni
ExtremeProgramming
Abstract syntax tree
computer science
tree
abstract syntactic
source code
programming language
AST Explorer
List of parsers.
Deciphering Python: How to use Abstract Syntax Trees (AST) to understand code
jscodeshift
Python AST module
ast
recast
Amplitude
Chartio
mockAPI
docs
Postman
Slate
Swagger
Dashbird
Codidact
Communities
Software Development community
IndieHackers
Makerlog
Spectrum
WIP
Continuous deployment with CircleCI
AWS CodePipeline
continuous delivery
CONTINUOUS INTEGRATION
Continuous Integration - What's the point? - Continuous Integration P1 - Fun Fun Function
Semgrep
Bountysource
CodeKata
CodeWars
How to Read Confusing Code
Kata (programming)
The Ultimate Code Kata
failing some of the time
GOTO 2016 • The Error of Our Ways • Kevlin Henney
GOTO 2018 • The Do's and Don'ts of Error Handling • Joe Armstrong
Sentry
FeatureFlags.io
LaunchDarkly
ATT&CK AWS Matrix
ATT&CK Enterprise Matrix
Windows
macOS
Linux
AWS
GCP
Azure
Azure AD
Office 365
SaaS
National Vulnerability Database
STRIDE (security)
Loren Kohnfelder
Microsoft
[1]
computer security
threats
[2]
mnemonic
[3]
Threat model
structural vulnerabilities
Let’s learn state machines with David K. Piano! — Learn With Jason
https://twitter.com/DavidKPiano
Sketch.systems
spectrum.chat/statecharts
StateCharts
state machine
state explosion
XState
XState Visualizer
The Clean Code Blog
Clean Coders
Coding Horror
Derek Banas
Devchat.tv
Dev.to
DevTube
Felienne
Leiden Institute of Advanced Computer Science
Leiden University
PERL group
dissertation
The Programmer's Brain
GitNews
if/else
Increment
Learn more
Martin Fowler
Robert Heaton
Blog
[2]
software engineer
Agile Manifesto
[3]
[4]
C++ Report
Wikipedia
Software Engineering Daily
Software Engineering Radio
Syntax
ThoughtWorks Insights
zudochkin
awesome-newsletters
https://xkcd.com/1822/