Career & CS
Computer science foundations, software architecture and the career side of the job.
Tech
Where it connects
- Cloud & infra
- Greenfield vs Brownfield Projects: What Actually Changes in Engineering
- Why Terraform Does Not Deploy Your Lambda Container Image
- Versioning Terraform Resources to Meet CIS Security Standards
- Implementing Resilient Architectures in AWS: Strategies for Automated Recovery and Testing
- The AWS Well Architected Framework
- Data pipelines
- Distributed systems
- Analytics & BI
- Programming
- Data modeling
- Storage
All posts (78)
-
Greenfield vs Brownfield Projects: What Actually Changes in Engineering
Greenfield vs brownfield software projects: constraints, risks, architecture decisions, and the patterns that work for each — from blank repo to legacy system.
-
Why Terraform Does Not Deploy Your Lambda Container Image
When teams start packaging AWS Lambda functions as container images, a common misunderstanding appears quickly: “I created the Lambda with Terraform, so why is AWS saying the image does not exist?”
-
Daily Failure Reporting in DynamoDB Using Lambda, EventBridge Scheduler, and SES
Operational monitoring requires structured visibility into failures. If your processes write execution logs to DynamoDB and mark failed executions with status = FAILED , you can implement a
-
Understanding ip-api Batch Limits and Effective Throughput
When integrating IP geolocation into a data pipeline, understanding rate limits and batching constraints is essential. This post analyzes the practical limits of the ip-api free tier and how to
-
From OLTP to OLAP: How Data Moves from 3NF to a Dimensional Data Warehouse
Modern data architectures typically separate operational systems from analytical systems. This separation is not accidental—it reflects fundamentally different workloads, data models, and optimization
-
How PostHog Uses ClickHouse for High-Performance Product Analytics
Modern product analytics platforms must process billions of events while still delivering low-latency queries for dashboards, funnels, and retention analysis. PostHog addresses this requirement by
-
Google Bigtable vs. Amazon DynamoDB: Understanding the Differences
When choosing a NoSQL database for scalable, low-latency applications, two major options stand out: Google Cloud Bigtable and Amazon DynamoDB . While both are managed, highly available, and
-
Designing a Semantic Layer for Athena + Power BI
Modern data architectures benefit from a clear separation of layers: Ingesta , Staging , and Semantic (Presentation) . When using Amazon Athena as the query engine and Power BI as the visualization
-
Understanding the Strategy Design Pattern
In the landscape of software design, maintaining flexibility and scalability is crucial. One of the most effective ways to achieve these qualities is by leveraging design patterns. Among the
-
Versioning Terraform Resources to Meet CIS Security Standards
Infrastructure as Code (IaC) has become a foundational practice for modern DevOps and cloud-native teams. Terraform, as one of the most widely adopted IaC tools, enables infrastructure automation,
-
Choosing Between DynamoDB and Cassandra for a Crypto Exchange
When designing the backend of a crypto exchange, selecting the right database architecture is crucial. Two common NoSQL databases often considered for this type of application are Amazon DynamoDB and
-
Did Early Personal Computers Really Have a CPU? A Look at the von Neumann Architecture
When we think of a personal computer (PC), we typically imagine a processor, memory, a keyboard, and a display. But a deeper question often goes unasked: Did all early personal computers actually
-
What Is Serialization?
In the world of data engineering and software systems, serialization is a fundamental concept that allows you to efficiently store, transmit, and reconstruct data structures. If you’ve worked with
-
How to Implement MVC in CodeIgniter to Clean Up Your Views
When building web applications, it's easy to end up with PHP logic mixed directly into your HTML views, especially in smaller projects. However, this can lead to messy, hard-to-maintain code. The
-
Implementing Resilient Architectures in AWS: Strategies for Automated Recovery and Testing
Implementing resilient architectures in AWS is essential for ensuring high availability and reliability of your applications. In this blog post, we'll explore strategies for automating recovery and
-
The AWS Well Architected Framework
Discover how to effectively design, utilize, and manage workloads in the cloud by translating requirements into architecture and operations while adhering to best practices. The Six Pillars:
-
On Undertanding Programs - Dijkstra
In my life I have seen many programming courses that were essentially like the usual kind of driving lessons, in which one is taught how to handle a car instead of how to use a car to reach one's
-
Testing, Computers and society in Notes On Structured Programming
The computer scientist Dijkstra, has some strong opinions about tesing, the art of programming and the impact of the computer in the society. Let's take a second to read the opinion he wrote in Notes
-
Concepts, Techniques and Models of Computer Programming
Introduction: In the realm of programming, there are three fundamental elements that form its backbone. Understanding these components is crucial for any aspiring programmer. Let's delve into the
-
Human Resources and Analytics: Enhancing Personnel Selection
Human Resources and Analytics: Enhancing Personnel Selection Introduction In today's dynamic landscape, the convergence of Human Resources and Analytics presents an unprecedented opportunity to
-
Management Skills for developers
Leadership and direction Vision The business vision ("vision speaks of the future") should be: Specific: Clear and simplified. Avoid redundancy and overly sophisticated words. Objective: It should be
-
Learn to speak in public
First steps to public speaking When giving a presentation or starting to speak, it is sometimes common to inform the audience about things they are unaware of, which may cause stress. For example,
-
A short introduction to the art of programming
Edsger W. Dijkstra - A short introduction to the art of programming Link: E.W.Dijkstra Archive: A Short Introduction to the Art of Programming (EWD 316) 1. Preface For those readers who identify the
-
Career management during our professional life
I’m not a veteran in the field. I’m in the middle of my thirties. But I found that there are some qualities I really appreciated when it appeared in the leaders and mentors I had. I would like to
-
The element of programming style
When the book saw the lights, programming wasn't as important as today. But, some of the ideas around the style of writing are a worth to notice and to know it. For that reason reading the book
-
The elements of programming style: Common Blunders
Chapter 6: Common Blunders A major concern of programming is making sure that a program can defend against bad data. But even with correct data, there is no guarantee that a program will work. In this
-
The elements of programming style: Control Structure
Chapter 3: Control Structure A computer program is shaped by its data representation and the statements that determine its flow of control. These define the structure of a program. There is no sharp
-
The elements of programming style: Documentation
Chapter 8: Documentation The best documentation for a computer program is a clean structure. It also helps if the code is well formatted, with good mnemonic identifiers and labels (if any are needed),
-
The elements of programming style: Don't Be Too clever
Preface to the Second Edition The practice of computer programming has changed since The Elements of Programming Style first appeared. Programming style has become a legitimate topic of discussion.
-
The elements of programming style: Efficiency and instrumentation
Chapter 7: Efficiency and instrumentation Machines have become increasingly cheap compared to people; any discussion of computer efficiency that fails to take this into account is shortsighted.
-
The elements of programming style: Epilogue
Epilogue There are many good books on languages, algorithms and numerical methods available to those who want to learn programming in greater depth. Our goal was not to teach languages or algorithms,
-
The elements of programming style: Expressions
Chapter 2: Expressions Writing a computer program eventually boils down to wanting a sequence of statements in the language at hand. How each of those statements is expressed determines in large
-
The elements of programming style: Input and output
Chapter 5: Input and output Test input for validity and plausibility Make sure input cannot violate the limits of the program Terminate input by end-of-file or maker, not by count Identify bad input,
-
The elements of programming style: Program Structure
Chapter 4: Program Structure Most programs are too big to be comprehended as a single chunk. They must be divided into smaller pieces that can be conquered separately. That is the only way to write
-
Refactor or rewrite?
While I was reading The elements of programming style found the following quote: Don't patch bad code - rewrite it The element of programming style - Chapter 4 - Page 1 Its make me think about an
-
Dijkstra: The Humble programmer
Dijistra wrote some interesting things about the activity of programmer. In this opportunity I'm going to make some quotations and notes about the article: The humble programmer Rules "discovered" for
-
Coders at Work
Coders at work is a series of interviews made by Peter Seibel in 2009 where different programmers talk about their views about the technology, development, how they work as a programmer and the
-
Notes about: On the cruelty of really teaching computing science
Radical Novelty 1: "The programmer is the unique position that his is the only discipline and profession in which such a gigantic ratio, which totally baffles our imagination, has to be bridge by a
-
While you learn while you build it?
The quotation and the necessity of understand what you have done is really important when you try to understand some concepts. For that reason when I found this video:
-
People in tech are aware of history? Donald Knuth
Seibel: Do you feel like programmers and computer scientists are aware enough of the history of our field? It is, after all, a pretty short history. Knuth: There aren’t too many that are scholars.
-
The relation between academic computer science and the industrial practice. Donald Knuth overview
Seibel: You’re an academic but also have worked on big systems and have done some work in industry. How do you see the relation between academic computer science and industrial practice? Knuth: It’s
-
Programming is harder than writing books? - Vision of Donald Knuth
Seibel: Do you think you were a dramatically better programmer when you finished TeX than when you started? Knuth: Well, yes, because of literate programming. Seibel: So you had better tools, but had
-
Freshman computer scientists shouldn't touch a computer. What does Donald Knuth think about that?
The most named person in the book: Donald Knuth. The author of "The Art of computer programming" Many people, including me, have not read it. But it justifies us. Seibel: Uh-oh; you just revealed your
-
Why to choose a Data Lake?
There are some reason that will take you to choose to use a Data Lake as solution for your Data Operations. The most importants are: Increase operational efficiency Make data available faster Lower
-
Why Ken Thompson's son was not encouraged to study computer science?
Ken Thompson. One of the most famous Computer Scientist of the book and in the field. He become famous because a series of creations, being Unix the most relevant. Seibel: In a 1999 interview you
-
Coder, programmer or computer scientist? Peter Deutsch gives us an answer
Seibel: You were the only person I contacted about this book who had a really strong reaction to the word coder in the title. How would you prefer to describe yourself? Deutsch: I have to say at this
-
How to be a lead by Dan Ingalls
Daniel (Dan) Ingalls is one of the creators of Smalltak. Other interesting development of engals was the Context Menu Seibel: Do you have any tips on how to be a good technical leader? Ingalls: The
-
Talent as a programmer and talent as system-level thinkin. Peter Deutsch talks about that
Perhaps the most forgotten for the massive public of the book. But, if you use the REPL you you are making a silent tribute, because the first REPL was created by Laurence Peter Deutsch. Link to
-
Readability and efficiency in your code. Guy Steele analyze this trade-of
Seibel: So when you’re writing English, you’re obviously writing for a human reader and you seem to contrast that to writing software, which is for a computer. But lots of people—such as Knuth—make a
-
The language nowadays are easier? Guy Steele's answer
Seibel: Do you think languages are getting better? You keep designing them, so hopefully you think it’s a worthwhile pursuit. Is it easier to write software now because of advances that we’ve made?
-
Being a better reviewer and a good architect by Peter Norvig
Seibel: So what makes the better reviewers better? Norvig: Well, that they catch more things. Some of it is the trivial stuff of you indented the wrong number of spaces or whatever but some of it is,
-
Choice the correct language by Guy Steele
Seibel: How much does a choice of language really matter? Are there good reasons to choose one language over another or does it all just come down to taste? Steele: Why shouldn’t taste be a good
-
Peter Norvig: programing as a Craftmanship
Seibel: As a programmer, do you consider yourself a scientist, an engineer, an artist, or a craftsman? Norvig: Well, I know when you compare the various titles of books and so on, I always thought the
-
Programming: Now Vs Then by Guy Steele
Guy Steele is an academic know particularly because the "Lambda Papers". Seibel: What has changed the most in the way you think about programming now, vs. then? Other than learning that bubble sort is
-
Peter Norvig and the idea of test to drive design
According the point of view about the way of doing software, that we can resume that try to develop the solver problem element. Another interesting topic where we can focus is the way to using testing
-
How programming has changed over the years by Peter Norvig
Continue the Peter Norvig series. The first post was about: What Peter Norvig Learn about ‘Industrial Programming’? now it's time to talk about the way of learning to work on a team during the time.
-
It's necessary and apprentice approach, according to Peter Norvig
Seibel: I’m surprised you think the master-programmer model is such a dumb idea. In your “Teach Yourself Programming in Ten Years” essay you make the point that programming is a skill that, like many
-
Peter Norvig and the Computer Science Curriculum
Seibel: Speaking of things that aren’t taught as much, you’ve been both an academic and in industry; do you feel like academic computer science and industrial programming meet in the right place?
-
Peter Norvig: everything in your head
Seibel: Though your job now doesn’t entail a lot of programming you still write programs for the essays on your web site. When you’re writing these little programs, how do you approach it? Norvig: I
-
What makes a good programmer by Joe Armstrong. Who does Joe Armstrong hire?
Joe Armstrong has talked a lot about the topic or being a good programmer as we can see in the previous posts: What Joe Armstrong did to be a better programmer? , Joe Armstrong and the Print
-
What Peter Norvig Learn about 'Industrial Programming'?
Peter Norvig is known for his technical abilities, for his degree and for being the Director of Research at google. But, he also made a big contribution to the learning discussion about how to learn
-
Joe Armstrong and the importance of the writing skills
Besides the opinion of Joe Armstrong about What Joe Armstrong did to be a better programmer? and Joe Armstrong and the Print Statements he also has an interesting opinion about other skills not
-
Joe Armstrong and the Print Statements
Following the Joe Armstrong quotes, there is one about the print statements. Seibel: What are the techniques that you use there? Print statements? Armstrong: Print statements. The great gods of
-
What Joe Armstrong did to be a better programmer?
Joe Armstrong the co-designer of Erlang was asked about what he did in order to improve as a programmer. Seibel: Is there anything that you have done specifically to improve your skill as a
-
Joshua Bloch and the religion about the computer languages
Continuing the ideas that Joshua Bloch gave us, that has started on this post: Joshua Bloch and his tier list of book here we can see an interesting one: Seibel: Why do people get so religious about
-
Brendan Eich and the age of the programmers
The creator of JavaScript, Brendan Eich was asked about the programming languages and the time Seibel: Do you feel at all that programming is a young person’s game? Eich: I think young people have
-
Brendan Eich and the languages over time
The creator of JavaScript, Brendan Eich was asked about the programming languages and the time Seibel: In general do you feel like languages are getting better over time? Eich: I think so, yeah. Maybe
-
Joshua Bloch and his tier list of book
Joshua Bloch a software engineer related, contributor and (in some way) evangelist of Java has been asking at the time Coders at Work was published about the books of every programmer should read.
-
How Douglas Crockford detects the talent
Douglas Crockford, well known because he was the first person who specified the JSON format was asked about the question of detect the talent in a programmer. Seibel: When you’re hiring programmers,
-
Jamie Zawinski in Coders At Work
Jamie Zawinski is known about some things he has created. But, besides that, when he was asked about how he see himself he gave a really interesting answer: Seibel: That brings me to another of my
-
Three ideas to consider to develop a microservice
In the post about: Is microservice architecture the silver bullet? we can find the explanation about why is not a good idea the microservice architecture to the following applications: real-time
-
What is programming?
've finished reading "Coders at work" a series of interviews between @peterseibel and well-known programmers/coders/(etc). The first edition was in 2009. And in the preface you can read: Yet despite
-
Peter Norvig Paper: Oh shinny! antidote
Dark Knights In the TED talks The mind behind Linux | Linus Torvalds https://www.youtube.com/watch?v=o8NPllzkFhE&ab_channel=TED One of the comments that Linus Said was: Edison may not have been a nice
-
Difference between Framework and Libraries
Software Development has tricky words. Some Jargon that seems as unreachable when we are starting. Even though is not a game changer understand this difference is a nice to have and in one or two
-
Is server-side rendering gives more importance to JavaScript?
In the last time, server-side rendering has become more important. I don't know how important. But this gives me a question about future jobs from JavaScript vs other Back end languages like Python.
-
Event Driven Architectures
In the Gartner Submit of 2006 Mani Chandy talked about the existence of a misconception of Event Driven Architecture (EDA). So, he proposed to talk about the understanding of EDA and its Return of
-
Empowerment for the new leaders in tech
Once a new hire is designing as a team leader of a team. One of the first challenges is how it could be possible that this new person could achieve ownership of the project and the inspiration of the
-
Good Guidelines to improve as Software Developer
After learning the basics about programming and understanding the first steps necessary to become a competent beginner software developer, I've started to think. I'm trying to understand whats are the