Things to keep track of as a professional application developer and consultant...
A lightly currated list.
Write a corollary story to an Autobiography in Five Short Chapters, but add something about I'm facing a new software problem... And then at the end add a goto chapter 1.
Software Engineering Lessons from RCAs of world's greatest disasters, this article was amazing. It just takes everything from below and sums it up in terrible tragities and how those tragities could have been avoided.
Every Programmer Should Know, contains the following topics: Introduction, Falsehoods, Algorithms, Data Structures, Numbers, Strings, Latency, Time, Memory, Distributed Systems, Security, UX/Usability, SEO, Architecture, Code Design, Engineering Philosophy, Practices, Career, Fine-tune Your Resume, Open Source, Remote Work, Problem Solving, Soft Skills, Mental Health, Papers on Programming, Services, Licenses, Where To Look For Further Info, and Coding Practice Sites.
Curated list of falsehoods programmers believe in.
Personal names around the world
Personal names around the world 1
Personal names around the world 2
Falsehoods Programmers Believe About Search
Why are the username and password on two different pages?
Everything you ever wanted to know about building a secure password reset feature
The Tech Lead’s New Project Checklist
The traits of a proficient programmer
The fine art of fast development
7 Skills of Highly Effective Programmers
Humility in Software Development
Laws, Theories, Principles and Patterns that developers will find useful.
Payments 101 for a Developer, Hacker News Discussion
10 Java security best practices
How To Write Unmaintainable Code
S.O.L.I.D. Software Development, One Step at a Time
Test-Driven Development: Really, It’s a Design Technique
Test-driven development: Theory and Practice
Emphasis is mine.
In fact, these two concerns (test coverage and product quality) are independent: one can easily imagine a high-quality system running in production, delivering a lot of value to its users, and not having a single automated test at all – just delete all the tests after deploying and completing extensive validation of the system. On the other hand, it is conceivable to achieve 100% test coverage and have an extremely brittle or unusable system; in this case the tests do not provide any value at all, and are just as useless as the system itself.
A Taxonomy for "Bad Code Smells"
Refactoring.Guru makes it easy for you to discover everything you need to know about refactoring, design patterns, SOLID principles, and other smart programming topics.
Learning Writing and Coding from a Con Artist
Get something that works, no matter how silly and brittle. Don’t think too hard about it: don’t worry about it being DRY, or being as fast as possible, or properly encapsulated, or anything else. Just get something that works. If it’s garbage, throw it out and start over; you barely spent any time on it anyway. Once it’s mostly not garbage, begin a refactoring pass. Make sure that what the code is doing is clear, concise, efficient, and above all, makes sense to read — because you will forget where your head was at in six months when you inevitably have to do some maintenance on this code.
Never say “no,” but rarely say “yes.”
So the principle is easy: Set the conditions of “yes” such that:
- If they say “yes,” you’re happy because the terms or money are so good, it more than compensates for the distraction, possibly even funding the thing you really want to do.
- If they say “no,” you’re happy because it wasn’t a great fit anyway, so it’s not worthwhile for a small return on your time and effort.
How to Get Lucky: Focus On The Fat Tails
Mike Monteiro: F*ck You, Pay Me - from CreativeMornings - YouTube
Mike Monteiro: 13 Ways Designers Screw Up Client Presentations - YouTube
Documenting your relational database using SchemaSpy
This is kind of cool because there is a docker image that allows you to run all the tools without having to install any of the tools. https://tech.asimio.net/2020/11/27/Documenting-your-relational-database-using-SchemaSpy.html
The 5 Types of Architecture Diagrams: The flow, service, persona, infrastructure, and developer diagram
Spring Transactional Pitfalls [Spring & JPA Pitfalls Series]
The @Transactional annotation is probably the most randomly used annotation in the whole Java development world - and it’s terrifying!
Caching is harder than expected to setup: Hibernate EhCache Configuration Tutorial
When and how to use hibernate second level cache?
A database connection does not equal a hibernate session:
This stack overflow post states that there is one database connection per hibernate session, but I believe that is no longer true. The accepted answer was written in 2013. Number of Hibernate Sessions Per Request or Per User? https://stackoverflow.com/questions/19180358/number-of-hibernate-sessions-per-request-or-per-user
However, after 2013 hibernate introduced a more aggressive database release mode. AFTER_STATEMENT
hibernate.connection.release_mode
How ICE Score Method Helps to Choose Better Product Features
RICE Scoring: Quick Prioritization for Product Managers
On the importance of a Team Manifesto
Failure on demand – Scenes from an agile transformation
The credo must be: Everything and everyone in the company must work toward enabling developers to work effectively and without disruption. Only then can developers focus on creating value for the company and advance the company’s product.
What’s the difference between a junior and a senior engineer
The Art of Scholarly Mentoring
10 Executive Functioning Skills: The Ultimate Guide
HubSpot Engineering Performance Rubric
A Rubric for Evaluating Team Members’ Contributions to a Maintainable Code Base
Software Engineering Assessment Rubric
One Rubric Changed Box's Engineering Performance — Here's How, Box's SVP Engineering Sam Schillace on the rubric that has helped the company build and maintain a culture of high performance.
HTTP headers for the responsible developer
Let's Encrypt Certificates for localhost
API Practices If You Hate Your Customers
Smart PNG and JPEG compression
Hemingway App makes your writing bold and clear.
Need some mock data to test your app? Mockaroo lets you generate up to 1,000 rows of realistic test data in CSV, JSON, SQL, and Excel formats.
Things I Wish I’d Known About CSS
This article references the Java API Design Checklist above.
https://github.com/wkorando/taking-off-with-jfr (pdf)
12 Factor Apps with Spring Boot
Java Microservices: A Practical Guide
About Pool Sizing Hacker News Discussion
How to Manage Connections Efficiently in Postgres, or Any Database
MY ADVICE TO DEVELOPERS ABOUT WORKING WITH DATABASES: MAKE IT SECURE
Things I Wished More Developers Knew About Databases
Basic writing and formatting syntax
Git rebasing: What is it and how can you use it?
Commit Often, Perfect Later, Publish Once: Git Best Practices
Tips for a disciplined git workflow
Git Cheat Sheet: Commands and Best Practices
https://rogerdudler.github.io/git-guide/files/git_cheat_sheet.pdf
Write good git commit message, Hacker News Discussion
What Is Linting + When to Use Lint Tools
Broken by default: why you should avoid most Dockerfile examples
Intro Guide to Dockerfile Best Practices Hacker News Discussion
The Ultimate Docker Cheat Sheet
10 Usability Heuristics for User Interface Design
Fundamental design principles for non-designers
Dark Patterns: 10 Examples of Manipulative Consent Requests
roughViz - Reusable JavaScript library for creating sketchy/hand-drawn styled charts in the browser
The easiest way to keep your web apps accessible: Just use text
Notes on Distributed Systems for Young Bloods, Hacker News Discussion
CRDT stands for “Conflict-free Replicated Data Type”. That’s a long acronym, but the concept isn’t too complicated. It’s a kind of data structure that can be stored on different computers (peers). Each peer can update its own state instantly, without a network request to check with other peers. Peers may have different states at different points in time, but are guaranteed to eventually converge on a single agreed-upon state. That makes CRDTs great for building rich collaborative apps, like Google Docs and Figma — without requiring a central server to sync changes.
Cheat Sheets to link to:
- maven (rebellabs)
- sql (rebellabs)
- intellij idea mac os x keymap (JRebel (pdf), JetBrains, ShortcutFoo)
- git (nina jaeschke ninagrafik.com, jrebel, atlassian)
- Java Streams (JRebel (pdf))
- Java 8 Best Practices (JRebel (pdf))
- HTML5
What we look for in a resume, Hacker News Discussion
A well written article that talks about how to write a resume that can be read by humans, showing true impact with your work and how you get work done.
Improve Your Résumé by Turning Bullet Points into Stories
How to use numbers to make your resume more impressive to potential employers
The two questions I ask every interviewer Harker News Discussion
Why I Don't Prepare For Job Interviews Harker News Discussion
How candidates are evaluated in coding interviews at top tech companies
Ask HN: What are good software architecture interview questions?
Job negotiation for programmers: the basic principles
Contracts you should never sign, Hacker News Discussion
Pramp - An interview prep website.
How to Talk About Yourself in an Interview
The Science Behind Making Software Engineering Interviews Truly Predictive of Job Performance
Refactoring Backend Engineering Hiring at Slack
How NOT to hire a software engineer
What we've learned about hiring engineering managers
How we interview engineers at CircleCI
Why we re-designed our engineering career paths at CircleCI
Send interview questions about 1 hour to 1/2 hour before the interview.
How to hire great software engineers with interview rubrics
Engineering interviews: grading rubric, Part three of a three part guide to conducting engineering interviews at Medium. Beginning article Engineering interviews: refining our process
The Golden Rubric for Technical Interviews
Ask HN: What do you talk about in 1-on-1s with your managers?
It is perfectly OK to only code at work, you can have a life too
HOW TO REGISTER A COMPANY IN THE USA: COMPREHENSIVE GUIDE FOR FOUNDERS
Have I Been Squatted? Check if your domain has been squatted