Leisurely exploring the software development world
Β
Β
Hi! I'm Javier Feliu, a full-stack web developer from Panama City, Panama. I consider myself a curious and self-directed individual.
These qualities make an excellent match for web development, which requires mastering the basics while staying on top of constantly changing trends.
I currently work in a fully distributed development team, maintaining a large-scale web application. I love my job because:
- π‘ I get to work closely with a group of highly talented developers, and thus, I'm constantly learning from them.
- π€ My contributions are valued by the rest of the team and the team lead, giving me a sense of self-worth.
- π§ I get to work every day on complex tasks, helping hone my problem-solving skills.
Below, I share some more details about myself.
- π» My laptop runs on Ubuntu 22.04
- π οΈ Some of the tools I use are PyCharm, DBeaver, and Postman for IDE, database browsing, and API development.
- π¬ For team communications, we mostly use Slack and Google Meet.
- π For version control, I use Git with Git Flow.
- π¦ For package management, I use pip and npm.
- π³ For containerization, I use Docker and Docker Compose.
- ποΈ For databases, I mainly use PostgreSQL.
- π» For back-end development, I use Python with Flask, SQLAlchemy, Alembic, Flask Admin, and UnitTest.
- π₯οΈ For front-end development, I use React, Jest, and Puppeteer.
- π For ci/cd we use Jenkins and the jobs are deployed to DigitalOcean.
- βοΈ For production deployments we use AWS.
- β I get in pretty early, around 5:00am. I like to have a few hours of overlap with my team mates from Asia. I find that real time communication with the rest of the team is invaluable. I also like starting at this time because it get a chance to put in at least 4 hours of work before our daily standup at 9:20am.
- π¨ If I'm in Sentry duty, I'd have the Sentry call with the other developer on Sentry duty at these time.
- π¨ After that, I go over the Slack and email messages.
- π οΈ Then, I review any PRs that are in place, asking for clarifications or requesting changes, if needed, or approving them.
- π After that, I pick the top task from the To Do column in our Jira board.
- π€ If the task is complex, for instance a new feature, I'd usually share the approach I'll take with the team, to get validation and feedback, before writing any code.
- π Once the task is complete, I go through the process of creating a PR, staging the changes, and addressing any concerns raised during the code review.
- π Upon final approval, I deploy the changes to production.
- π Flask Web Development is a great hands-on book by Miguel Grinberg on building a web application using Flask. It covers everything, from creating a virtual environment to application deployment. I use Flask a lot, and I often refer to this book. Miguel's blog is also a great source of information.
- π Effective Python by Brett Slatkin is a great book full of advice that will help anyone write better Python code. The book contains a bunch of self-contained lessons that shine a light into the language strengths and expressiveness. It is truly excellent!
- π¦ Essential SQLAlchemy by Jason Myers and Rick Copeland covers everything you need to know about this useful library in less than 200 pages, including the SQLALchemy core, the SQLAlchemy ORM, Alembic, and a short cookbook.
- π Six-Step Relational Database Design by Fidel A. Captain is an excellent practical book. It covers the entire database design process from studying the customer's requirements to design implementation. To illustrate each design step, the author uses three case studies of different degrees of complexity.
- β‘ Cracking the Coding Interview. This book is pretty dense, but it's an excellent resource for preparing for a technical interview in any language.
If you'd like to get in touch, you can find me on LinkedIn or my blog. I'm always happy to chat with other developers or people interested in technology. Let's learn and grow together!
Also, feel free to browse my GitHub profile and check out some of the projects I've worked on. While some of them may not completely reflect my current skill set, I believe they provide a glimpse into how I approached development problems earlier in my career. Keep in mind that I am no longer doing freelance or side projects, as my current contract forbids it.
Thank you for taking the time to read through my profile. I look forward to hearing from you!