OpenLampTech - Developer Interview with Shawna Brookes
LAMP stack developer Shawna Brookes paves her own path with full-stack development and a vision for a better web experience.
Hi and welcome to this OpenLampTech developer interview with Shawna Brookes.
For the past several months, I have been reading Shawna’s posts on LinkedIn when I am on the platform and I noticed that she shares quality content (and opinions) on web and LAMP stack development.
With a determination that I as a self-taught developer understand and relate to, I knew I had to get Shawna on for a developer interview for the OpenLampTech publication audience.
Needless to say, I am super excited to share this text-based interview with Shawna in the OpenLampTech publication.
Shawna shares insights on everything from choosing the LAMP stack for web development architecture, to working on a product as an indie hacker and the challenges involved.
And now without any further adieu, on to the interview.
Q: Please tell us about yourself, and what you currently do for a living.
I’ve been in science and tech for 2 decades now with 4 years teaching English in Japan. I’ve had to reinvent my career to stay relevant and make my way in the tech world. I am obsessed with LAMP stack programming and I am entirely self-taught.
I have two jobs-
#1 I currently work as an Engineering Manufacturing Technician and UI developer at Intel. I work in the clean room doing electromechanical repair on semiconductor processing equipment and do Windows App and Web App UI development when gigs come available.
#2 I am the sole creator of Mingler Suite [ www.minglersuite.com ]
Q: With the wide range of programming languages, CMSs, and frameworks out there, why choose the LAMP stack? What do you like about working with these technologies?
I choose LAMP stack because I value simplicity and stability over the hassles and frustrations with bleeding edge trendy technologies and Content Management Systems. Trendy frameworks/libraries have their merits and are clever, however with constant change comes headaches, vulnerabilities, incompatibilities and documentation that is incomplete or out of date...which kills productivity, not to mentions the over-engineering and complexity introduced by CMS and frameworks can lead to more problems than they are supposed to solve.
To me LAMP operates under the “KISS” principle. Sure, php isn’t sexy and cool like the latest JS-framework-come-lately but when it comes to being lightweight, getting things done and deploying relatively easily and cost-effectively, for me, LAMP stack is the way to go!
After a lot of reading and trial and error, I’ve developed my own full stack “framework/ library” from scratch using vanilla JS, AJAX and PHP. It’s very fast and straightforward and I am not dependent on 3rd party frameworks or libraries. It is also modular and very lightweight. Building this from scratch has really provided great insight on how things work at the ‘nuts and bolts’ level which is great for debugging; I also have peace of mind that I know the code and I have done my due diligence ensuring front end and back end validation. And so far, the modular design of the code seems very performant as I am passing minimal KB’s over the network.
Q: At the time of this publication, you've released a beta version of Mingler Suite. What is Mingler Suite and who is this software for?
Mingler Suite is the beginning of a MASSIVE idea that I’ve had for years now. It has two main objectives, one objective being for end users and the other being for developers.
First I will start with the end users. I hear so many people complain about how today’s modern website/ web app experience is awful, frustrating and downright invasive and creepy. Pop-ups are so frustrating; websites are slow loading from dynamically rendered ads and all the extra stuff they put into nowadays; all the tracking and spying on you; terrible User Interfaces (UI); UI that changes all the time and poorly thought out; the “gamification” of apps to create user engagement...everyone is stuck using all the “Big Guys” and I don’t see anyone really stepping up to offer any alternatives. So I decided that I would! And you can call me absolutely crazy for having such a bold and crazy idea – but here I am, a year and a half into this project and have a working Beta app...which is just the beginning of more apps to come!
I really think that when people see that there is an alternative web app – a web app that put’s users first – web app that doesn’t track and spy on you - there is a lot of value in that alone...on top of the features and functions of what Mingler Suite offers. I also thought about those who rely on big platforms for eCommerce and gig work - the fees that some of those platforms are outrageous and who knows what they are doing with your data and Intellectual Property (IP)! Someone has got to offer an alternative!
I really dislike how modern UI is going. Everything is so convoluted and hard to find (gamification, horrible settings and menus, all done on purpose to keep you engaged and prevent you from easily leaving the platform if you so chose). While it is nice to have big graphics and flashy UI elements, ultimately people want to either get information or use the app – and when a website takes 10 seconds to load for some big movie or animation, who really wants that? Sure, if I want to see an art gallery or film festival website, that’s fine – but if I want to upload images, read the news or do a chat, I don’t want to sit for 10 seconds for some video to load. Mingler Suite is designed to have a tasteful “back to basics” interface where users can get stuff done! Your time is valuable! And once I get enough feedback from test users, the app’s UI will stay the same...and if I do want to make changes, I will as the users what they’d like! Wow – a democratic app where users have a voice? YES!!!
My vision is for people to have an alternative to all the big apps out there, created by someone who truly cares about people’s privacy and User Experience.
Regarding Mingler Suite on the development/ developer side – Mingler Suite will be the “tried, tested and trued” code base for which all future apps will be built upon. By building out Mingler Suite Beta and testing it, I can shake out all the bugs and corner cases I may have missed as well as get people’s feedback to create good UI/UX that most people will like. I realize I cannot make everyone happy but the end goal is general ease of use, clarity and performance – something people have been forcefully made to be forgotten about by Big Tech! Once I get some return on the time and effort I have invested, I plan to make a tutorial series and website on how to build an entire social media and eCommerce web app from scratch using LAMP stack!
Q: In building out and designing Mingler Suite, what part(s) of the application development process did you find most difficult and how were you able to overcome those challenges?
I will break this up into front end and back end.
On the front end, the most challenging thing was getting particular elements to “flow” properly. One frustrating element I had a hard time with was creating an avatar that had a silver border around the image. I was using absolute and relative properties so that the images would stack on top of each other, which was no problem...but the problem afterward was getting the parent divs to flow properly. I had two divs side by side, assigning them an html style class of inline-block and I struggled making the thing work the way I wanted to regarding spacing, alignment and to stop text from overlapping onto the avatar image! I had a similar thing with a two-sided flappable image that a user can click on – there is just something about using absolute and relative positioning styles within inline and inline-block assigned divs that messes up the flow of the page, margins and paddings!
I understand why people like frameworks/ libraries like Bootstrap because it takes the frustration out of dealing with things like this.
As far as back end goes, I would say that the documentation for PHP has a bit of a learning curve to it. The PHP manual [ www.php.net/manual ] is really hard to understand when first starting out so using w3schools’ php guides were much better. [ www.w3schools.com/php ].
Trying to find good examples of how to use and implement mysqli or PDO methods that have good explanations were hard to find. But after you get some experience and find examples that work for you, things become less mysterious.
Also in the backend when starting out, I had a lot of frustrations because of lack of knowledge and not so good documentation. One example is dealing with uploading files from your web app, ensuring that you have you php.ini file configured correctly. You have to change things in your
php.inifile in order to increase the max amount of things like
if you want to upload files beyond the default sizes and files. This was frustrating because I was able to upload small images when I was first learning and testing but when I started uploading large files sizes, they stopped working! It was very frustrating, debugging to no end, brought to tears saying “why isn’t this working” until I found a StackOverflow response to check your
Similarly when I built my encrypted chat application, I had to understand everything involved with setting up the ssl related keys for the server in the apache configs. It does not seem like many people venture into this realm of php encryption so this is really getting into esoteric territory!
Another thing that had a bit of a learning curve was php output buffers. I built an EXIF Obfuscator app and a watermarking app that used output buffers and that took a bit of time to understand why and how they are used.
Q: Do you think it is important for developers to learn SQL? Why or why not?
Absolutely YES! While front end developers may not use SQL directly it would be good that they know of it and have a general idea of how it works. This way they have an understanding of what full stack and back end developers do with the input data they are sending to the back end and the importance of validation, especially regarding SQL injections. A front end developer may not be a specialist in backend but at least they would understand how important front end input validation is to mitigating/ preventing SQL injections.
Of course SQL is crucial for back end and full stack developers! Having a website that is just some HTML, CSS and some JS is pretty cool – but being able to push data and save it to a database and pull data to display it really makes the web come full circle – and it truly gives the web its greatest power and potential! Without SQL (and other query languages) the web would just be a one way conversation with the world!
Q: What's your favorite text editor or IDE?
I started out with Sublime, which is a good editor; but I ran into too many times where changes in the code I made did not get updated, even after refreshing and clearing my browser cache/ history. Eventually I graduated to Visual Studio Code as my workhorse IDE. I also use Visual Studio when working on Windows apps.
Q: Do you have a blog, newsletter, book, podcast, or another resource you would recommend to other developers that you find valuable? (Can be non-programming related)
Brad Traversy videos helped a lot when I was first getting started.
Regarding LAMP and development, w3schools [ www.w3schools.com ] is a great place to start. The documentation is clean, straightforward and easy to understand when first staring out. As I got more advanced, StackOverflow has been helpful. But what really got me to where I am today was Adam Khoury’s work:
Adam is a hardcore LAMP stacker and does such a great job with all his tutorials and gives out code snippets.
Q: What advice, shortcuts, or tips would you give to developers who are just starting out in their programming journey?
- Remember, learning to code is not a race, it is a marathon. If your goal is to become a professional developer, I know you don’t want to read this but, as a self-taught developer, breaking into the industry is very hard because you will be passed over by recruiters and HR for more senior devs, kids younger than you with Computer Science degrees and people with React/Angular and Vue experience – but don’t be discouraged! There are opportunities out there, which will come along. They may not pay well but if you can get a chance, take it and get the experience on your resume.
But remember this – if you can get to the point where you can build and deploy your own platform, you have a skill relatively few people have – and THAT IS POWERFUL! As a full stack web developer, you are VERY POWERFUL – something that HR and recruiters overlook.
And realize that once you have that skill, NO ONE CAN TAKE IT FROM YOU! And realize that there is nothing stopping you from building something the world cannot ignore.
- Learn a framework/ front end framework. It’s the way of the world these days – and if you really want a better shot at getting professional work, you’ll need to pick up a framework like Angular, React or Vue. But that doesn’t mean giving up on LAMP with vanilla JS though! Having that skill is invaluable!
- Get a computer science degree – sadly, you’ll be better off spending 4 years in college and getting a piece of paper that “justifies you potential capability” than spending 4 years of making projects that shows you’ve got the proven skills and initiative people want but will often overlook – sadly, it’s the way of the world! But as I wrote earlier – if there is a will this is a way!
To become a good developer, there are not really any shortcuts. It just comes with trial and error and time and experience – especially if you want to be a nitty-gritty nuts and bolts developer who codes vanilla without using frameworks.
Frameworks may be a “shortcut” but by taking the “long way around” coding everything from scratch, you’ll catch unto frameworks and libraries much faster AND understand why they are built that way.
You’ll eventually get to a point where you have enough skill that you don’t need to look at some example to build what you want to build – it will become second nature – give it time.
- Early on in your journey, it is important to understand that organizing your code and directories are really important – which goes hand-in-hand in modularization of your code. That is how the industry works, especially at the enterprise and frameworks.
- It is really important to learn how to modularize your code so you can write code more effectively. One example would be writing the html code for a footer that will be on each of your pages. Instead of writing out the entire footer code on each page, you could write it in a
footer.phpfile and simply render it by doing something like this:
<?php require 'COMPONENETS/FOOTER/footer.php'; ?>
- Also, realize that loops and arrays are really powerful and once you learn how to use them, they can reduce the amount of code to write!
- Make sure you get exercise, sunshine and social interaction. I’ve been working 6 days a week for well over a year and a half working my day job while working on Mingler Suite (and other projects) – it is really important to set a routine to get some exercise and stay in shape – it is good for your body and mental health.
- I am a lone wolf INFJ but even I need some social interaction. So be sure to find some time to socialize with people. Coding day in day out for 5 to 14 hours a day isn’t the best and it can wear you out mentally...
- Which leads me to say take mental breaks! You need them – especially after coding 5 to 8 hours non stopped. You need to take at least 1 day off a week and give your brain a break. I know that I get brain fog after lon coding sessions, especially after 3 or 4 days of coding, which is not good and can be counter productive! So please take a break!
- One thing that will tell you that you are becoming serious and good at developing is when you start dreaming about coding. That means your mind is really integrating coding into your consciousness!
- If you make a change in your code, and hit the refresh button in your browser and it still doesn’t change...if you hit CTRL+ left click and it still doesn’t change and you know it should, it’s likely your browser cache is being very stubborn! I’ve had this happen on Brave browser as well as Chrome and I have nearly pulled my hair out because of stubborn caching! You’ll have to go into your browser setting and clear all the data! UGH!
Q: Any hobbies or other interests outside of programming and development?
I was big into swimming, cycling, running and going to the gym before I started Mingler Suite. These days I do a minimal amount to stay in decent shape. I write poetry (have published a book of poems) and I also write satire. I like to study and speak Japanese. I like gourmet coffee. I like to go for peaceful drives in the mountains. I like to 3D print but have not had much time either.
Q: Where can readers go to learn more about your work and projects?
My “Doing Business As”
Future community-give back project:
Stuff I did in Japan
My 3D Printing Startup Idea I had a few years ago
A little out of date but still relevant
Please take a moment and share this fantastic interview with others.
Thank you Shawna for participating in the interview and sharing your knowledge with the OpenLampTech audience!
Thank you for reading. I hope you have a great rest of your week.
Visit my developer blog, Digital Owl’s Prose, where I write regularly on CodeIgniter, PHP, WordPress, and SQL.
If someone awesome shared the OpenLampTech newsletter with you and you are not yet subscribed, consider joining the community with a free subscription:
Thanks for reading OpenLampTech! Subscribe for free to receive new posts and support my work.
OpenLampTech is a reader-supported publication. You can support the publication with a virtual coffee for as little as $3 (USD).